26歳熱血社長 年商70億の男

仮に本屋で見かけても確実に手には取らないタイトルと表紙の本なんだけど、会社のリラクゼーションルームに置いてあるのをオススメされたので一応読んでみました。それなんて宗教。いや、まぁ、熱いね。借金してまでがんばってくれる社員がいるなんて、たぶん実際に会うとオーラあるんだろうなーと思う。努力も才能だと思ってるけど、そういう意味で天才的な人なんだろうな。でも、本で読むだけだとぶっちゃけ気持ち悪い。これ勤め先の社長が買った本だって聞いたんだけど、ホントかなー。正直ちょっとやだな。

こないだのと合わせて社長本を二連続で読んでみたけど、残念ながら社長業は自分には向いてなさそう。

HelloWorld

http://www.scribd.com/doc/45477/Thinking-in-Erlang-Japanese-version

こんなテキストを発見したので、週末に向けてErlangをちょっと触ってみる。

インストール

$ sudo aptitude install erlang

特にいうことなし。

HelloWorld

$ emacs hello.erl

-module(sample).
-export([hello_world/0]).

hello_world() ->
    io:fwrite("Hello, World!~n", []).
  • 一行目がモジュール名。ファイル名とモジュール名は同じじゃないと駄目。emacsErlangモードを使ってるときはファイル名とモジュール名が違うとちゃんと指摘してくれる。
  • 二行目は公開する関数名/引数の数
  • 四行目が関数宣言
  • 五行目は関数定義

実行

$ erl
Eshell V5.5.2 (abort with ^G)
1> c(hello).
{ok,hello}
2> hello:hello_world().
Hello, World!
ok
3> init:stop().
ok
4> $

  • c(モジュール名) でコンパイル
  • モジュール名:関数名(引数) で関数呼び出し。
  • init:stop() でシェルを終了できる。

おまけ

$ ls
hello.beam hello.erl

コンパイルすると .beam と言うファイルが出来るらしい。

$ erl
Eshell V5.5.2 (abort with ^G)
1> hello:hello_world().
Hello, World!
ok
2> init:stop().
ok
3> $

コンパイル結果が実行ディレクトリにあると、何もしなくても読み込んでくれるのかな?

まとめ

Erlangをちゃんと色付けできるスーパーPRE記法に感動した。

The World Is Mine

ずーっと前にRubyのまつもとさんが「プログラマが行き着く先は3つあって、ハードウェアとOSと言語」みたいな事を書いてたのを読んだんだけど、この分類は別にプログラミングに限らないんじゃないかと気が付いた。つまり、この3つってその人の世界の捉え方をまんま表してるんじゃないかな。

これは勝手な決め付けなんだけど、プログラマって基本的に箱庭好きだと思う。自分が作ったプログラムが自分の思い通りに、だけど自律的に、統制の取れた形で動くのを見るとちょっとした全能感を感じたりしない?もっとはっきり言えば、ちょっとした神様気分になれたり。で、そんな神様気分のプログラマは行き着く先と言うのは、結局その人が「これが世界の根本だ」と感じてるものになるんじゃないかと思う。

一つずつ説明すると、


ハードウェアに向かう人というのは、土台になってる物質や物理法則が世界の根本だと感じてる人。

プログラミングをしながら、あー俺の頭の中でどんどん情報が整理されていく、ということは脳内エントロピーは減少中であるけれども、きっと発散する知恵熱であるとかキーボードを叩くことによって生じる分子運動の乱雑さの増加具合はそれを上回るものであって、系全体としてはやはりエントロピーを増大させることになっていて、やっぱりプログラムなんて無駄、とか考えちゃう。


OSに向かう人は、世界を制度や仕組みが動かしてると思ってる人。

たぶんマルチエージェントシミュレーションとか大好きで、プログラミングをしながら、僕がここでプログラミングをしているのは合理的なエージェントにどういったルールを適用すれば望むような結果が得られるか研究することによって、人が人を支配するための仕組み、権力を使う方法をまなぶためで、社会の権力構造のカラクリを研究しつくし、僕たちが新しい自分たちの王国を築くための準備なんだ、とか考えてる。


で、言語に向かう人は、世界を主に人と人とのコミュニケーションで捉えてる。付き合うならこのタイプ。

プログラミングをしながら、このコードにはどういった意図が込められていて私に何を言おうとしているんだろうか、この言語設計者はどういった哲学からこういった仕様を採用したんだろうか、とか考える。PHP使ったら憤死。


適当な思いつきだけど、六星占術程度にはあたってるんじゃないかな。


[追記] みつけた
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20031224/1/