Erlangの生みの親を追悼するインストールとHello World

聞いたことはあるけど、やったことのない言語、関数型言語Erlangの生みの親であるジョー・アームストロングさんが亡くなったそうです。
【訃報】プログラミング言語「Erlang」を生んだジョー・アームストロング氏死去
お悔やみを申し上げると共に、なかなか一歩を踏み出せなかったerlangでHello Worldしておきます。

Hello Worldの前にインストール。Ubuntu系ならapt一発。他のディストーションも大丈夫でしょうね。

$ sudo apt install erlang
[sudo] パスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  erlang-asn1 erlang-base erlang-common-test erlang-corba erlang-crypto erlang-debugger erlang-dev
  erlang-dialyzer erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen erlang-et
  erlang-eunit erlang-examples erlang-gs erlang-ic erlang-ic-java erlang-inets erlang-jinterface
  erlang-megaco erlang-mnesia erlang-mode erlang-observer erlang-odbc erlang-os-mon
  erlang-parsetools erlang-percept erlang-public-key erlang-reltool erlang-runtime-tools
  erlang-snmp erlang-src erlang-ssh erlang-ssl erlang-syntax-tools erlang-test-server erlang-tools
  erlang-typer erlang-webtool erlang-wx erlang-xmerl libjs-jquery-metadata
  libjs-jquery-tablesorter libodbc1 libsctp1 libwxbase3.0-0v5 libwxgtk3.0-0v5
提案パッケージ:
  erlang-manpages erlang-doc xsltproc fop libmyodbc odbc-postgresql tdsodbc unixodbc-bin
  lksctp-tools
以下のパッケージが新たにインストールされます:
  erlang erlang-asn1 erlang-base erlang-common-test erlang-corba erlang-crypto erlang-debugger
  erlang-dev erlang-dialyzer erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen erlang-et
  erlang-eunit erlang-examples erlang-gs erlang-ic erlang-ic-java erlang-inets erlang-jinterface
  erlang-megaco erlang-mnesia erlang-mode erlang-observer erlang-odbc erlang-os-mon
  erlang-parsetools erlang-percept erlang-public-key erlang-reltool erlang-runtime-tools
  erlang-snmp erlang-src erlang-ssh erlang-ssl erlang-syntax-tools erlang-test-server erlang-tools
  erlang-typer erlang-webtool erlang-wx erlang-xmerl libjs-jquery-metadata
  libjs-jquery-tablesorter libodbc1 libsctp1 libwxbase3.0-0v5 libwxgtk3.0-0v5
アップグレード: 0 個、新規インストール: 49 個、削除: 0 個、保留: 0 個。
44.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 138 MB のディスク容量が消費されます。

インストール完了。

というわけで、Hello World。ここを参考に。
erlang で hello world してみた

$ cat hello_world.erl 
-module(hello_world).
-export([hello_world/0]).
hello_world()->
	io:format("Hello World~n").
$ erlc hello_world.erl
$ ls hello_world.*
hello_world.beam  hello_world.erl
$ erl -noshell -s hello_world hello_world -s init stop
Hello World

コンパイル言語なんだね。PHPに慣れているとコンパイルを忘れてしまう。

とりあえずHello Worldしておいたけど、まったく意味が分からない。文法についてはまた今度やろう。

ちなみに、最初に引用したGigazineの記事、「なぜオブジェクト指向はクソなのか」で終わっていますが、その後に「Erlangはオブジェクト指向であることに気がついた」らしいです。
その後のJoe Armstrongのオブジェクト指向に対する見解