hello world!の二つの意味

hello world の二つの意味。
  • プロセッサ内部の直接は見る事ができない世界を外部に表出する。つまり、これは内部世界から、我々の世界へのごあいさつ。
  • 同時に、プログラミングとは世界を創る行為でもある。
 プログラマ自身が、世界を作り出す、という宣言を、内的機構をして語らしめているのが、この「こんにちは世界」の表示である。
 プログラミング言語を学ぶときに、画面に、hello world! という文字を出す。これは、カーニハンとリッチーによる『プログラミング言語C』の最初の例題である。以来、新しいプログラミング言語のテキストは、儀式のように、この文字列を表示する例題を掲げる。
 しかし、考えてみれば、この文字列は深遠な意味を表現している。
「こんにちは、世界!」
 プログラミングをマスターするということは、自分が世界の創出者になるということをK&Rは熟知しているのだろう。だから、言語の修得の冒頭の文字列は、そうした能力を獲得するぞ、という厳かな宣言にほかならないのだ。
 言語の解説書によっては、「これはこうやるのが儀式のようですから、一応やっておきましょう」(java)という触れかたものもあるが、もっと前向きにとらえていい儀式であろう。
 儀式には形式的で無意味なもの、という理解もあるかもしれないが、大抵の儀式には、重要な、面白い意味がかくされている。プログラミング言語修得のための入り口にあるこの文字列出力は、それ以降のデバッグをふくめた内部処理とのインターフェースである、というテクニカルな重要性に加えて、プログラマーとしての宣言でもある。
(内部処理が、外部の世界に顔をだして、「こんにちは世界」というのが、おおもとの意味なのだろう。これによって、マシン内部の不可視の世界が、我々に見えるようになる。
 自分のつくったプログラムがちゃんと動くようにするためには、この内部状態の外部世界への表出、が不可欠である。それを実現するのが、printfなのだ。)
* 世界の世は、十、廿、に続く30、世。これは、ひと世代を。つまり時間。界は、仏教用語で、四方八方の空間を。世界とは時空のこと。
** これをテーマにしたコラムを以下の二つに書きました。
  • 「JavaでHallo World!」  1996年10月    『NetWorkClipping』マイクロウェーブ刊
  • 「PythonCEでフィルタ作り-君待つと我が恋ひをれば我がやどの-」 2001年9月25日    「モバイルプレス」2001年秋号、技術評論社
カテゴリー: Tools パーマリンク