情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsで始めるプログラミング入門講座 第4回 ハローワールド 前編

2016/10/11

この記事は「Node.jsで始めるプログラミング入門講座」という連載記事の4つ目の記事です。

その他の記事に関しては下を参照してください。

ハローワールドとは

おめでとうございます。

遂にやってきました、この時が。

前回まででプログラミングについての概説やプログラミングに必要なソフトのインストールなどの準備が漸く終わりを告げ、今回は晴れて「初めてのプログラミング」という次の大きな、大いなる頂への初歩を踏み出すことになります。

そういう、記念すべき「最初のプログラム」ですから、それに相応しいプログラムを取り上げなければならないと思い、プログラミングを教える者として私は最大限頭を捻りながら思い悩みました。

最終的に出た結論は「ハローワールド」でした。

「ハローワールド」というのは古今東西、超常のインストラクターたちが前途有望なプログラマの卵たちの栄えある未来のために全身全霊を掛けて積年に亘る洞察の上に見出した「最初のプログラム」としてこの上なく取り組むのに相違ないプログラミングの課題のことです。

私は「ハローワールド」以外の様々な選択肢を精査した結果、この「ハローワールド」という課題の伝統と由緒と格式ある「最初のプログラム」としての至高の地位を踏み躙ることは許されることではないと判断致しました。

そこで、この連載記事でも最初のプログラミング課題として「ハローワールド」を採用することにしました。

ここにまた至上の伝統が踏襲されるのです。

「ハローワールド」は永遠也。

閑話休題。

はてさて、どういう課題かと言いますと、

  • 画面に「Hello, world!」という文字列を表示する

という課題です。

・・・。

もしかしたら、拍子抜けしてしまった読者の方もおられるかもしれません。

先程までの荘厳な前置きは何だったのかと。

しかし、それはまだあなたがプログラミングのことを十全に理解していないからに他なりません。

「ハローワールド」というのは最初のプログラミング課題としては丁度良い難易度であり、「ハローワールド」の課題をクリアするために学ばなければならない新しい事項というのは初学者にとって丁度良い量なのです。

実際、このプログラミング入門講座を執筆するに当たり、私が「ハローワールド」を再評価したのは事実です。

というのは、実は、「最初のプログラム」を作る際にはプログラミング以外のもっといろんなことを考えなければならないのです。

たとえば、「最初のプログラム」を作ろうにも、そもそも我々はまだプログラムがパソコンの中で実際のところどういう形で存在するのか知りませんし、仮にプログラムが作成できたとしても、我々はそれを具体的にどうやって動かせば良いのか知りません。

「最初のプログラム」を作る際にはそういったことを知る必要があるのです。寧ろそういったことを学ぶことの方が「最初のプログラム」課題のメインディッシュなのです。

だからこそ、「最初のプログラム」は簡単であれば簡単である方が良いのです。難しいプログラムは今後追々と学習を進めてレベルが上がっていく中で心行くまで堪能すれば良いのです。

プログラマはプログラム作成技術をひたすらに磨き上げ、プログラムの作成に勤しめば良いのかというとそうではありません

プログラマはプログラミングの周縁に確固として存在する「世界」にも目を向け、目を配り、習熟しなければならないのです。

さて、オリエンテーションはこのくらいにして本論に入りましょう。

ハローワールドのソースコード

早速ですが、「ハローワールド」の課題はどうすれば解けるでしょうか?

  • 画面に「Hello, world!」という文字列を表示する

と言っても、皆さんはまだ一度もプログラミングの課題を解いたことがありませんので、解き方など分かるはずもないでしょう。

なので、今回は最初から「答え」を提示してしまうことにします。

「答え」を提示してしまってから、それに対して詳しく解説をしていくという形で進めていきたいと思います。

なので、今回の「ハローワールド」は自主的に取り組むべき課題というよりは「例題」です。今後回を進めていく内に自主的に取り組むべき課題を出すこともあるかもしれません。しかし、それは後々の話です。

では、「答え」を提示します。下の、黒い背景に白い文字で書かれているのが「ハローワールド」のソースコードです(「ソースコード」について忘れてしまった方は第2回を見てください。簡単に復習すると、ソースコードとはプログラミング言語を使ってプログラマが記述するパソコンに対する命令でした)。

第2回で書いたように、この連載記事ではNode.jsをプログラミングプラットフォームとして利用します。そして、Node.jsはプログラミング言語としてJavaScriptという言語を使用しますので、下のソースコードはJavaScript言語で書かれたものとなります。当然と言えば当然ですが、「ハローワールド」のソースコードの書き方はプログラミング言語毎に異なるのですが、当面はJavaScript言語によるソースコードのことだけを考えておけば良いです。他の言語に関心を向けるのはJavaScript言語をある程度習得してからにしましょう。

console.log('Hello, world!');

どうでしょうか?

何かよく分からない謎の文字列が書かれています。「Hello, world!」という文字列が含まれていることは見て取れるかもしれませんが。

これは何でしょうか?

これがソースコードです。もっと言えば、JavaScript言語で書かれた「ハローワールド」のソースコードです。

謎の文字列ですが、案外短いと思われたかもしれません。

まあ、とても簡単なプログラムのソースコードですからね。

とても簡単なプログラムではありますが、ここから色々なことが見えてきます。1つずつ見ていきましょう。

まず分かるのはソースコードはテキスト、あるいは、文書、あるいは、文字列だということです。

ソースコードはパソコンに対する命令でした。そして、プログラミング言語という人工的な言語を使って記述するのでした。

言語を使って記述するので、記述したものは当然テキストとなる訳です。

なので、ソースコードというのは、例えるならば仕事のマニュアルのようなものです。

マニュアルは仕事の手順とか、ある事態が起きた場合の対処方法などが記載されている文書です。ソースコードも似たようなもので、パソコンが行う仕事の手順が記述されている文書です。そして、それは、人間から見れば、パソコンに対する命令を順に並べたものです。

しかし、マニュアルは人間が自分自身や他の人間のために作成するものですが、ソースコードは人間がパソコンのために作成するという点が決定的に異なります。

マニュアルは人間同士で理解ができればそれで十分なので、日本語などの「人間の言葉」で書かれますが、ソースコードはパソコンが理解できなければ意味がありませんので、人間も理解でき、パソコンも理解できるような言葉で書く訳です。

そして、そのための言語がプログラミング言語なのでした。

マニュアルの場合、もしかしたら、分かりやすさのために図や写真などの画像を入れたり、一部の文字の大きさやフォントを変えたり、装飾を加えたりするかもしれません。

しかし、これは人間がマニュアルを目で見ることができるからこそのものであり、パソコンには目がありません。

全盲の方には点字を使って文章を読む方もおられますが、ある意味でパソコンもそれと同じで、純粋に文字だけを使って文章を読む(ソースコードに書かれている命令を理解する)のです。

そのため、ソースコードというのは純粋に文字だけから出来ています

プログラマは小説家が言葉を組み合わせて文を作り、文を組み合わせて1つの小説を編み出すように、文字や文字列を規則的に組み合わせて1つのプログラムのソースコードを組み上げます(もっとも、プログラマが書くのはパソコンに対する「命令」なので、小説家よりは法律を作成している法制局の中の人たちの方がプログラマにより近いかもしれません)。

さて、ソースコードが文字だけから成っているということを抑えたところで、次の問題が出てきます。

そのような「テキストとしてのソースコード」はパソコンの中でどのように保持すれば良いのでしょうか?

これに関しては私たちがパソコンで様々な作業を行う際に常日頃から行っているのと同じです。

つまり、ファイルに保存すれば良いのです。

そして、上で述べたようにソースコードは純粋にテキストなのでテキストファイルとして保存します

この点は案外重要です。

たとえば、皆さんもご存じだと思いますが、「ウィンドウズ」に最初から付属している「メモ帳」という文書を書くためのソフトがありますが(「メモ帳」というソフト名から、本来はメモを書くために作られたものなのでしょう。もっとも、メモも立派な文書の1つですが)、このソフトで書いた文書をファイルに保存すると、テキストとして保存されます。

つまり、純粋に文字列のみが保存されます(文字列がパソコンの中でどのように保存されるかまでは、少なくとも今は気にしなくて良いです)。

しかし、たとえば、「ワード」で文書を書いて保存したらテキストとして保存されるかというとそうではありません。

これは、「ワード」で書いて保存した文書を「メモ帳」で開いてみれば明らかかもしれません。きっと「ワード」で書いたはずの文書とは似ても似つかない奇天烈な文字列が出現することでしょう。

もし「ワード」で保存した文書が純粋にテキストなら「メモ帳」でも正しく開けなければならないはずです。

そうならないのは、正に「ワード」で保存した文書が純粋なテキストではないからです。

「ワード」は文字の強調や着色、修飾など、それから、画像の挿入などの、純粋なテキストの表現の域を超える様々な機能を有しています。そして、「ワード」ではそのような情報を保存するために純粋なテキストではない表現形式を採用しています。

要は、「ワード」で文書を書いて保存しても保存されたものは純粋なテキストではないということです。

ということは、仮に「ワード」で「ソースコード」を書いて保存しても、保存されたソースコードは純粋なテキストとはならないということです。

上で言ったようにソースコードは純粋にテキストでなければなりません。

そのため、ソースコードを書くのに「ワード」は使えないということになります(厳密には、「ワード」でも文書を純粋なテキストファイルとして保存する機能が搭載されていない訳ではありません。しかし、文書を純粋なテキストとして編集するなら、「ワード」に備わっている多種多様な機能には殆ど存在意義がありません。そのような機能は殆どが「ワード」独自の文書の表現形式を利用することを前提としているのですから。つまり、純粋なテキストとして文書を編集する際には「ワード」というのは無用の長物でしかありません)。

それでは、ソースコードを書くのにどのようなソフトを使えば良いのかというと、有り体に言えば「メモ帳」のようなものです。

「メモ帳」のような、純粋にテキストとして保存する文書を編集することを目的としているソフトをテキストエディタと言います。

ソースコードを書く際は基本的にはテキストエディタならどのようなもので書いても構いません。お好みのものをお使いください。

ちなみに、プログラマがよく使うテキストエディタとしては「vi」や「Emacs」が有名であり、どのテキストエディタを使うべきかはプログラマの間で度々論争(という名の宗教戦争)となり、「エディタ戦争」という言葉があるほどです。

日本人プログラマの場合には「秀丸」や「サクラエディタ」などを使う人もいます。

最近では「Atom」や「Sublime Text」のようなものもあります。

一度プログラマ向けのテキストエディタを調べてみると良いかもしれません。

この連載記事では「メモ帳」を使うことにしたいと思います

さて、ソースコードはテキストエディタで編集してファイルに保存するということは分かりましたが、保存する際の拡張子は何にすれば良いのでしょうか(「拡張子」が何のことだか分からない方はご自身で調べてください。この記事ではそこまでは解説しません。悪しからず)?

テキストなので、テキストファイルを表す拡張子である.txtでしょうか?

まあ、.txtでも完全に間違いという訳ではありません。ソースコードは純然たるテキストではあるのですから。

しかし、普通はファイルがソースコードを保存しているものであるということを明確にするために、専用の拡張子を付けることが多いです。

JavaScript言語で書かれたソースコードの場合、.jsという拡張子を付けるのが一般的です

このように、ソースコードのファイルにはソースコードのプログラミング言語に応じた拡張子を付けるのが普通です。

これにより、ファイル名の拡張子を見ただけでそのファイルが何のプログラミング言語で書かれたソースコードであるか分かるようになります。

という訳で、上の「ハローワールド」のソースコード(下に再掲しました)はhello-world.jsのようなファイル名で保存すれば良いでしょう。

console.log('Hello, world!');

ちなみに、日本語を使ってハローワールド.jsのようなファイル名で保存しても一向に構いません。

しかし、プログラマには日本語を使うのはあまり好まない人が多く、できる限り日本語を使うのを避ける人が多いようです。

よく聞かれる理由としては、

  • 日本語の文字が上手く扱えないプログラミング環境がある。
  • 外国人と一緒に開発する場合に困る。

などがあります。

個人的には、日本語の文字が扱えないようなプログラミング環境も絶滅しつつありますし、少なくとも他人が関わることのない自分1人だけの開発では、どちらでも良いのではないかと思っています。

特に、プログラミングが不慣れな内は日本語を多用した方が学習が捗るかもしれません。そのような場合は、日本語を積極利用しても全然構わないと思います。

なお、Node.jsでは日本語の文字を使うことに全く問題はありません。日本語の文字に限らず、ギリシャ文字やキリル文字なども使えます。

さて、結構長くなりましたので、ここで一旦纏めておきましょう。

  • ソースコードはテキストエディタで編集し、テキストファイルとして保存します。
  • ファイルの拡張子はソースコードのプログラミング言語に応じて決めます。
  • JavaScriptの場合、.jsという拡張子を使います。

今回はここまで

今回はここまで

お疲れ様でした。

「ハローワールド」の途中ですが、今回はここまでとします。

「ハローワールド」は次回の後編に続きます。

あでぃおすぐらっしあー。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-プログラミング, 講座