達人プログラマーを目指すあなたに勧める2016年のプログラミング言語

2016年になって早くも1ヶ月が過ぎましたが、みなさまいかがお過ごしでしょうか。
すでに2月に入って、今更感がありますが、2016年に始めるおすすめプログラミング言語をご紹介しようと思います。

523f206294f79edfdd8e9be89f36948c_s

記事の趣旨

今回の記事は、プログラマ業界で長らく名著と呼ばれる「達人プログラマー」が推奨する1年1言語にしたがって、新年に新しいプログラミング言語の習得を勧めるものです。

41HTQ8ZP3AL

(残念ながら、達人プログラマーは国内では絶版になってしまっていますが、原著「Pragmatic Programmer, The: From Journeyman to Master」 は購入可能です)

この記事では、プログラミング言語を下記の体系に分けて、それぞれの体系から学べることをご紹介します。

  • オブジェクト指向言語 -> Ruby, C#, Java
  • 関数型言語 -> Scala, Haskel, Elixer
  • JavaScript系言語 -> JavaScript, TypeScript
  • Lisp系言語 -> LISP, Scheme, Clojure
  • その他 -> Go言語,Swift

オブジェクト指向言語

  • Ruby
  • C#
  • Java

クラスベースのオブジェクト指向は、すでにデファクトスタンダードとも言えるプログラミングスタイルと言えます。
もし、オブジェクト指向言語を使ったことがないのであれば、2016年中に習得して、カプセル化や継承、ポリモーフィズムの考え方を身につけておくといいと思います。
参考までに、ShareWisAct はRubyで開発されています。

関数型言語

  • Scala
  • Haskel
  • Elixer

関数型プログラミングは、「複数の式を関数の適用によって組み合わせていくプログラミングスタイルである」と Wikipediaでは説明されています。
ShareWis のサーバサイドはScalaで開発されています。
関数型プログラミングの考え方自体は昔からあるものですが、最近になってとても重要度が増してきています。
関数を第一級オブジェクトとして扱う考え方が、JavaScript, Java, Rubyにも取り込まれているということだけでも、重要度の高さが伺えるかと思います。
関数型プログラミングに身を浸して、考え方を自身に浸透させることは、今後のプログラミングのステップアップにも役立ちます。
また、関数型言語が共通して重視している、純粋関数の考え方は他の言語においても、バグの混入を防ぐよい考え方です。
これまで、関数型プログラミングに手をつけたことがない方は、ぜひ、いずれかの関数型言語を学ぶことをおすすめします。

JavaScript系言語

  • JavaScript
  • TypeScript

JavaScriptは、オブジェクト指向や関数プログラミングの特徴を持っていますが、独自の体系として挙げておきます。
JavaScriptは以前は Webブラウザ上で動作する言語でしたが、node.jsの登場により年々利用される場は広がっています。
たとえば、ShareWisのiOSアプリはReactNativeというフレームワークを用いて、JavaScriptで開発されています。
もしも、JavaScriptをこれまで利用したことがないのであれば、ぜひこの機会に身につけましょう。

LISP系言語

  • LISP
  • Scheme
  • Clojure

LISPは関数型言語の側面もありますが、その記法や言語体型を考え、今回の記事では独自の系統に分類しました。LISP以外にもS式を扱うプログラミング言語としてSchemeとClojureもここに挙げます。
実は私も以前1年弱Clojureを勉強していた時期がありました。Clojureを始めた動機は、「LISP系のS式が使いこなせるエンジニアはかっこいい気がする」という、いい加減なものでしたが、Clojureを学ぶことで、手続き型プログラミングとは違う、プログラミングの表現力が身につきました。
LISPは歴史の長い言語で後のプログラミング言語に大きく影響を与えています。
プログラミング言語の原典の一つとも言える言語なので、LISPを学ぶことで身につく考え方は今なおプログラミングに役立ちます。

その他

その他、独立した言語としてGoとSwiftを挙げておきます。

Go言語については、どのプログラミング体系に配置するべきか判断に困りました。
オブジェクト指向的な面もありますが、ここで上げたオブジェクト指向言語とは分けて考えたほうがいいように思います。
GoはベターCという印象の言語ですが、最近ではWeb開発にも積極的に採用されていて、活用できる場が増えています。
特に、並列プログラミングが必要になる場面で力を発揮します。
この特徴を活かして、マイクロサービスアーキテクチャの開発言語として採用されることが多いように思います。
最近では、クラウドサービスの活用やマイクロサービスアーキテクチャの流行があり、並列プログラミングの考え方は重要なスキルになるでしょう。

また、Swiftはかなりモダンな言語で、さまざまなパラダイムを取り込んでいます。
iOSアプリの開発言語という印象の強いSwiftですが、現在はオープンソースとして公開されており、Apple製品だけでなく、Linux上でも動作します。
やはり、活躍の場は、Apple製品向けのアプリ開発がメインではありますが、様々なパラダイムを取り込んだ言語仕様は魅力的だと思います。

この記事で物足りない時は

「7つの言語 7つの世界」という書籍をおすすめします。この本では、1週間1言語のペースで各言語のエッセンス部分を知ることができます。
一通りこの本を読んで、気になった言語を1年間かけて取り組むといいのではないでしょうか。

817Ws4eMbXL

それでも、ピンとくる言語が見つからないということであれば、いっそ運任せで選んではどうでしょうか。
下記のサービスでは、ランダムでプログラミング言語が選ばれます。
1年1言語ったー

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク