結論

はじめに

結局、結論を読むことを選択されたのですね。素晴らしいです。Erlangを学びたい開発言語として選択した場合に、探求できる興味深いトピックをいくつかご紹介する前に、Learn You Some Erlangの執筆がどれほど大変だったかについて少しお話したいと思います。フルタイムで勉強と仕事をしながら、日常生活のニーズにも対応しながら、3年間の努力を続けました(もし子供がいれば、とっくに放置されて死んでいたでしょう)。

このサイトのおかげで、そして幸運とさらなる努力のおかげで、私はErlangトレーナー、コース教材作成者、そして開発者としての仕事を得ることができました。世界中を旅して、たくさんの興味深い人たちと出会うことができました。多くのエネルギーを費やし、運営にはかなりの金額と時間がかかりましたが、想像できるほとんどの方法で10倍の利益を得ることができました。

Erlangコミュニティ全体に感謝しなければなりません。彼らは私が学ぶのを助け、何ページもの資料を無料でレビューし、タイプミスを修正し、英語のライティングと一般的なライティングのスキルを向上させるのを助けてくれました。多くの人が様々な方法で助けてくれました。時間、アドバイス、そして一般的なリソースの面で最も貢献してくれた人たちは、すべてこのサイトのFAQに記載されています。私にビールをおごると言ってくれたことがあるなら、代わりに彼らの一人に買ってあげてください。彼らの貢献は私よりもはるかに感謝されていないからです。

Erlangコミュニティ全体が、私がLYSEで行ってきた活動を歓迎してくれ、読者に知られるようにしてくれました(公式のErlangドキュメントとウェブサイトにも掲載されています!)。Erlangに関わるすべての人々の協力がなければ、このサイトはおそらく4、5章で終わってしまい、インターネットの回線を詰まらせるだけの役に立たないウェブサイトになっていたでしょう。だから、本当にありがとう。

その他のトピック

行き過ぎることなくカバーできるトピックは限られています。このサイトを書籍にすると、おそらく600ページくらいになるでしょう。そこに到達するまで3年かかりました。私は疲れていて、終わって嬉しいのですが(これからできた自由時間、どうしよう?)、それでもカバーしたかったトピックがたくさんあります。以下に簡単なリストを示します。

BIFとDBGのトレース

Erlang VMは内部も外部もトレース可能です。バグや理解できないスタックトレースがありますか?いくつかのトレースフラグを有効にすると、VMがあなたに開かれます。DBGはこれらのBIFを使用して、その上にアプリケーションを構築します。メッセージ、関数呼び出し、関数戻り値、ガベージコレクション、プロセスの生成と消滅など、すべてトレース可能で観察可能です。また、Erlangのような並行言語のデバッガよりもはるかにうまく機能する傾向があります。一番の利点は?Erlang内でトレース可能なので、自分自身をトレースするErlangプログラムを作成できます!もしそれらを調べて少し分かりにくいと思ったら、sysモジュールのトレース関数で十分かもしれません。OTPのビヘイビアプロセスにのみ機能しますが、始めるには十分な場合が多いです。

プロファイリング

Erlangには、プログラムを分析してあらゆる種類のボトルネックを見つけるための優れたプロファイリングツールが多数付属しています。fprofeprofツールは時間プロファイリングに使用でき、cprofは関数呼び出し、lcntはロック、perceptは並行性、coverはコードカバレッジに使用できます。面白いことに、それらのほとんどは言語のトレースBIFを使用して構築されています。

より詳細なイントロスペクション

Erlangには、pmanetopなど、topのようなツールがあります。Erlang デバッガを使用することもできますが、代わりにDBGをお勧めします。ノード全体のスーパービジョンツリーを探索するには、appmonが最適です。

ドキュメント

EDocは、ErlangモジュールをHTMLドキュメントに変換できるツールです。アノテーションと特定のページを宣言する方法をサポートしており、コードを文書化する小さなWebサイトを構築できます。Javadocをご存知であれば、それと似ています。

GUI

Wxアプリケーションは、ErlangでマルチプラットフォームGUIを作成するための新しい標準です。私はGUIが苦手なので、私がそれをカバーしなかった方がみんなにとって良いでしょう。

その他の便利なライブラリ

Erlangには、ここでは言及されていない便利なライブラリがたくさんデフォルトで付属しています。暗号化ツール、Webサーバー、Webクライアント、あらゆる種類プロトコルの実装などです。一般的なリストは、http://www.erlang.org/doc/applications.htmlで入手できます。

コミュニティライブラリ

それらは山ほどあります。それらは変化する傾向があり、どれか一つを優先したくなかったので、ここでは取り上げませんでしたが、簡単なリストをご紹介します。ビルドシステムが必要な場合はRebar3erlang.mk、よりフレンドリーなトレース方法としてredbugまたはrecon、非常に強力で柔軟なプロセスレジストリとしてgproc、Webサーバーが必要な場合はmochiwebcowboyyaws、Erlang用の非常に強力な分散ライブラリとしてriak_core、Webクライアントとしてhackney、素晴らしいプロパティベースのテストツールとしてPropErQuickcheckTriq(これらのいずれか1つは試してみる必要があります)、topのようなツールとしてentop、無数のJSONライブラリ(jsxjiffyなど)、Unicode処理とR16Bで保留中の一般的なアルゴリズムのためのUX、AIツールのためのSeresyeexat、データベースクライアントライブラリ、Erlangのerror_loggerにバインドする非常に堅牢なロギングシステムであるlager、汎用メッセージベースプールのためのpoolboy、その他たくさんのものがあります。コミュニティライブラリだけで簡単に一冊の本が書けるでしょう。

LYSEは書籍でもあると聞いたのですが?

そのとおりです。No Starch Pressのおかげで、Learn You Some Erlangは書籍と電子書籍の両方で入手できます!画像を含む600ページの大判の白黒(電子書籍版はカラー)で、現在までに印刷された最大のErlangをテーマにした文鎮兼本棚の装飾(私の知る限り)を手に入れることができます。これで、コンピュータ画面で何百ページも読むという苦痛が軽減されるはずです。

あなたのアイデアは興味深く、ニュースレターを購読したいです

私はferd.caにブログを持っていて、そこであらゆることについて議論しています(少なくともしたいと思っています)が、常にErlangを使っているので、必然的にErlangの話題に戻ってきてしまいます。

これで終わりですか?

はい、そうです。良い一日を!