プログラミング

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

記事内に商品プロモーションを含む場合があります

書籍情報

メルカリでの検索結果はこちら

書名:7つの言語 7つの世界

著者名:Bruce A. Tate(著) まつもとゆきひろ(監訳)

出版社:オーム社

書評

どんな本?

本書の著者は様々なプログラミング言語を学ぶことで、それぞれの言語が持つイディオム長所、短所を理解することによって、特定の問題を解決する時に他の言語で使われている手法などを参考にすることによって、プログラマ自身のレベルを引き上げることができると言うふうに述べています。

本書では以下の7つのプログラミング言語の座学と簡単な実習を通して特性の説明を行なっています。
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell

現代この中で日本でまともに使われているのはRubyだけですが、 各言語間で少しずつ違った特徴があるため、今まで流行りのオブジェクト指向の言語でしかプログラミングしたことがないエンジニアにとっては他の言語について知るだけでもとても新鮮な刺激を得ることができます。

読んだきっかけ

ちゅけ

100人のプロが選んだソフトウェア開発の名著に記載があった本

Google Social Developers Japanコミュニティオーナーの田中洋一郎さんが選出しており業務で使っている言語以外の特性についても学んでみたいと思ったことがきっかけです!

良かった点・悪かった点

  • 関数型言語などメジャーではない言語を扱っているので普段の開発業務では知り得ない言語の特徴を知ることができる
  • 各言語の特徴的な部分をピックアップして紹介しているのでテンポが良い
  • 具体的なプログラムも記載されているため、どのような挙動になるか、本を読むだけでも参考にすることができる
  • 各言語の長所や短所を最後にまとめてくれているので、概略をつかみやすい
  • 扱われている言語が古く、またマイナーなため本格的に学んでもそれらの言語の知識が直接身にならない可能性が高い
  • 浅く広くするための本であるので、各言語の詳細については学ぶことができない

感想・まとめ

Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell

本書では、上記の言語を主題に各言語の特徴などを解説しています。

現代ではオブジェクト指向のプログラミング言語が大半を占めています。 それゆえに、現代のエンジニアはオブジェクト指向以外の言語に触れる機会が少なく思考の幅が狭まっていると個人的には考えています。

本書では多数の言語を学ぶことにより、関数型言語や制約論理プログラミング、プロトタイププログラミングなど、多彩なプログラミングモデルの言語の概略とそれぞれの言語の信念やその背景について学ぶことができます。

個人的に衝撃を受けた言語はPrologです。 この言語は制約論理プログラミングと言って、従来のプログラミング言語のように処理を自分で書くのではなく、前提条件をプログラマーが規定し、その解を出すように推定してくれると言うものでした。

まさにビックデータを扱うAIやChatGPTの先取りだったんだと思いました。

また関数型言語に関しては著者も難しいと記しておりました。関数型言語の中でもそれぞれレベルがあり、完璧な関数型言語の記述を求める。Haskellから 1部オブジェクト思考の考え方も認める力など様々なレベルのものがあることを知ることができました。

関数型言語では状態の変化を許さないと言う特徴から、並列処理が容易にできるようになると言うメリットがある。一方で、状態を持つことができないので、一般的な処理が難しくなってしまうと言うトレードオフの関係であると言うふうに著者は述べていました。

現在のプログラミングの主流は、オブジェクト思考ですが特定の条件が求められる性能によっては、関数型言語の方が有利である場合もあるので場合によってはそれらも選択肢に入り得るということを頭の片隅に置いておくことにします。

こんな人におすすめ!

  • 特定の言語でしか開発したことがない人
  • 本書で挙げられている言語のうち気になっている言語がある人
  • プログラミングモデルについて知りたい人

総評

個人的評価

ちゅけ

マイナーな言語を主題に各言語の特徴を紹介している本

オブジェクト指向のプログラミング言語以外も学ぶことで、視野を広げることができました。

気になったらぜひ読んでみてね😆