【違いを知れ】7つの言語7つの世界【感想・レビュー・まとめ】

書籍情報
メルカリでの検索結果はこちら
書評
どんな本?
本書の著者は様々なプログラミング言語を学ぶことで、それぞれの言語が持つイディオム長所、短所を理解することによって、特定の問題を解決する時に他の言語で使われている手法などを参考にすることによって、プログラマ自身のレベルを引き上げることができると言うふうに述べています。
本書では以下の7つのプログラミング言語の座学と簡単な実習を通して特性の説明を行なっています。
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell
現代この中で日本でまともに使われているのはRubyだけですが、 各言語間で少しずつ違った特徴があるため、今まで流行りのオブジェクト指向の言語でしかプログラミングしたことがないエンジニアにとっては他の言語について知るだけでもとても新鮮な刺激を得ることができます。
読んだきっかけ
Google Social Developers Japanコミュニティオーナーの田中洋一郎さんが選出しており業務で使っている言語以外の特性についても学んでみたいと思ったことがきっかけです!
良かった点・悪かった点
感想・まとめ
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell
本書では、上記の言語を主題に各言語の特徴などを解説しています。
現代ではオブジェクト指向のプログラミング言語が大半を占めています。 それゆえに、現代のエンジニアはオブジェクト指向以外の言語に触れる機会が少なく思考の幅が狭まっていると個人的には考えています。
本書では多数の言語を学ぶことにより、関数型言語や制約論理プログラミング、プロトタイププログラミングなど、多彩なプログラミングモデルの言語の概略とそれぞれの言語の信念やその背景について学ぶことができます。
個人的に衝撃を受けた言語はPrologです。 この言語は制約論理プログラミングと言って、従来のプログラミング言語のように処理を自分で書くのではなく、前提条件をプログラマーが規定し、その解を出すように推定してくれると言うものでした。
まさにビックデータを扱うAIやChatGPTの先取りだったんだと思いました。
また関数型言語に関しては著者も難しいと記しておりました。関数型言語の中でもそれぞれレベルがあり、完璧な関数型言語の記述を求める。Haskellから 1部オブジェクト思考の考え方も認める力など様々なレベルのものがあることを知ることができました。
関数型言語では状態の変化を許さないと言う特徴から、並列処理が容易にできるようになると言うメリットがある。一方で、状態を持つことができないので、一般的な処理が難しくなってしまうと言うトレードオフの関係であると言うふうに著者は述べていました。
現在のプログラミングの主流は、オブジェクト思考ですが特定の条件が求められる性能によっては、関数型言語の方が有利である場合もあるので場合によってはそれらも選択肢に入り得るということを頭の片隅に置いておくことにします。
こんな人におすすめ!
総評
マイナーな言語を主題に各言語の特徴を紹介している本
オブジェクト指向のプログラミング言語以外も学ぶことで、視野を広げることができました。
気になったらぜひ読んでみてね😆