ディアシステムのエンジニアブログ

社内セミナー「プログラミング言語の歴史」レポート#2

前回に引き続き、社内セミナー「プログラミング言語の歴史 ~Part.2」が4月に開催されました。

概要

プログラミング言語の歴史
FORTRANから最新のES6まで

~Part.2:Java登場以降

 

セミナーの様子

社内セミナー「プログラミング言語の歴史」レポート#2

社内セミナー「プログラミング言語の歴史」レポート#2

 

感想

今回も言語おたくである野田さんの持ち味が遺憾なく発揮されていた講座であったと思います。
配布資料には精緻な年表まで付属しており、プログラム言語に対する愛と熱意が伝わります。

個人的にはPart1の方が自分が良く知らない世代の話を扱っていたため、興味がそそられるものがありましたが、今回のPart2の方もSwiftやKotlinなどリアルタイムで注目されている言語や、ElmやElixirなどニッチな言語の解説などがなされており、十分聞き応えのあるものでした。

世に言語自体の解説を行っているものはいろいろありますが、言語の変遷と共に時代を歩んだ業界人の「実際のところどうだったの?」という実体験に基づく見解がなされるところが、本講座を特徴付けていました。
また、言語の歴史と併せてシステム業界の技術トレンドの移り変わりについても適宜触れられており、時代背景との絡みが分かりやすかったと思います。

今回のPart2に関しては、各言語の登場時期が個人的に持っていたイメージと異なっていたものが多くありました。
昨今人気が上昇しているPythonがかなり古くからあったことや、Scalaってかなり最近の言語というイメージがありましたが、2000年代初頭に生まれていたということ、xml -> json -> yamlがそれぞれ一年毎くらいで登場しているなど。特にxml -> jsonなどは10年くらい開きがあるようなイメージを持っていましたので、改めて年代別に並べられるといろいろと発見がありました。

他にはWEBフロント系の技術に疎い私としては、CoffeeScriptとかTypeScriptとか名前は聞いたことがあるけど何なのかよく分かっていなかった言語についても説明があり、javascriptもいろいろと進歩してるんですね。という感想です。

全体を通して俯瞰してみて見ると、言語の普及には「ある程度のわかりやすさが必要である」ということが分かります。
美しく優れた設計であったとしても学習コストが高くて使う人が居なければダメということですね。
ただ、登場した当時としては尖り過ぎているコンセプトだったり、高尚過ぎる概念だったりして流行らなかったとしても、時代を経て扱いやすい形になって既存の言語に取り入れられたり、新たな言語の機能に採用されたりしながら進化しているところが面白いです。
一見よくわからないコンセプトのものが次世代の主流になり得る可能性があるかもしれません。

個人的に意外だったのは「今後学ぶべき言語」の所で、今までプログラム言語の古典として長らく必修の座に君臨していた、あの「C言語」が入っていなかったところです。
多くのOSやインタプリタがCで実装されている事実や、スタック/ヒープなどのメモリ周りの事を学ぶ上でもまだまだ不動の地位であると考えていました。
これから先の時代は多くの人にとって、より抽象化された思考と表現に重みを置くべき、ということでしょうか。これについてはその時に質問しておけばよかったなと、後になって思っています。

締めに入りますが、感想だけなのも何なので私見も含めて月並みにまとめます。
実際に業務に従事する上ではそれほど多くの言語に手を出す必要は無く、一つの系統の仕事に就くとその経験を生かしてその後も同じ系統の仕事を受け続けるパターンが多いかと思います。
基本的にはそれで問題なくやっていくことが出来ますし、専門分野として強みを持つことは方向性として正しいことかと思いますが、ちょっと他の畑にも目をやってみると、自分の所には無かった概念や発想、考え方などいろいろと発見があるかもしれませんし、何かの役に立つかもしれません。
講座案内のメールで記載されている「主にプログラマとしての視野を広げることが目的」という一文からはそのような意味合いが感じられます。

私は半年くらい前からHaskellを学び始めましたが、別のパラダイムの言語を学ぶことは非常に刺激的で面白く、初めてプログラムに触れたときのような体験を味わえました(布教含む)。ニッチな言語や技術を実際に使うことは無いからという理由で見向きもしないのはいろんな意味でもったいない事と思います。

今回の講座を通して興味のある言語、技術などが出てきた人は是非ともそのままにせずに実際に触れてみることをお勧めします。

次へ 投稿

前へ 投稿

© 2024 Engineer's blogディアシステム株式会社