7 週間で 7 つの言語について簡単に考察 - パート 2

1446 ワード

これは、ブルース・テイト著の『Seven Languages in Seven Weeks』に関する私の考えの続きです.

これまでのところ、本書の Scala の章が最もよく知られているように思えます.私は Java をかなりよく理解しているので、他の言語よりも自然にこの言語に傾倒しました. Rust コンテキスト (別の言語で学習しようとしていた別の言語) の外部でトレイトを見たのはこれが初めてです.トレイトは基本的に実装とのインターフェースです.

可変変数と不変変数を宣言するには、明確で明示的な方法があります.つまり、不変値には val を使用し、可変変数には var を使用します.

静的クラスにも同様のアプローチが使用されます. (Java のように) クラス宣言の前に static キーワードを追加する代わりに、Scala はキーワード object を使用します.

Scala で興味深い点の 1 つは、XML が有効な構文であることです.これは、React と JSX の多くを思い出させてくれました.

条件付きのパターン マッチングは、基本的な switch/case ステートメントよりも強力なツールのように見えます.

例:

def factorial(n: Int): Int = n match {
    case 0 => 1
    case x if x > 0 => factorial(n - 1) * n
}


Scala に関する著者の結論はまちまちですが、オブジェクト指向プログラムから始めて、関数型パラダイムへと簡単に移行できる方法が気に入っています.おそらくこれは、関数型プログラマーの好みに合わせて、あまりにも多くのエスケープ ハッチを許してしまうのでしょうか?

次の章は Erlang です.

私のメモのいくつか:

ステートメントはピリオドで終了します.
  • 型強制はありません.例: 1 + "2"は機能しません.
  • 変数は大文字で始まり、不変です.
  • 関数で fun キーワードが使用されています.
  • プロローグベースの構文があります.
  • spawn キーワードを使用して、プロセスを生成します.
  • Pid ! を使用してスレッドにメッセージを送信する"メッセージ".
  • プロセス間通信は本当に簡単です.

  • Erlang について読んだり、いくつかの演習を行ったりするのは楽しかったのですが、構文が少しぎこちないことがわかりました.私の第一印象は、日常的に働きたいものではないということです.作者はErlangをとても気に入っているようで、もう一度試してみたくなりました.

    これまでのところ、Scala は専門能力開発の点で最も有望なようです.業界ではあまり普及していませんが、Scala を使用している企業をいくつか見てきました.次の 2 つの章でこの本を完成させ、どこに行くのかを楽しみにしています.