「言語間の特徴はなぜ生まれたのか / プログラミング言語の歴史について」に関しての考えをまとめました。

目次

はじめに

各言語の特徴を学ぶにあたり、「なぜこの言語が人気なのか」「どのような経緯でこの言語が選ばれるようになったのか」「ライブラリなど人為的な特徴が生まれた経緯は何か」を知りたくなった。 例えば、PHPやPythonの間では言語単体で見たときにできることにほぼ差異が無いように思える。厳密な違いはあるかもしれないが、これら2つの言語でぱっと目に付く明確な違いを挙げると、ライブラリやフレームワークなどの特徴だろう。そう仮定した場合は、その違いがそのまま言語的な特徴となっているように見える。

Pythonが人工知能的なライブラリが豊富なのは、パフォーマンスが圧倒的に優れているからだ。と仮定したこともあった。しかしながら、調べてみると他を圧倒するほど勝っているわけではないようだ。

ライブラリが豊富になるには、もちろん開発者が「この言語を用いて開発したい」と思ったからだろう。それではなぜ、そう思ったのか。絶対に何かあるはずだけれども、理由が思いつかない。

そこで「なにかしら当時の流行などが起因しているのではないか」と仮説を立てた。そのため歴史を一度丁寧に整理してみる

主要な言語と年号・その説明について

まず主流な言語について、開発された年号と、解説をまとめる。解説にはChatGPTを活用している。

年号言語名解説
1958年LISP人工知能研究において重要な役割を果たした言語で、特にAI開発者に愛用されています。
1959年COBOLビジネスアプリケーション開発に特化した言語で、遺産システムで使われ続けています。
1972年C言語プログラミング言語の基礎として非常に重要で、多くの言語がCに影響を受けています。
1983年C++C言語の拡張で、オブジェクト指向プログラミングをサポートし、システム開発やゲーム開発で使われています。
1991年Pythonデータサイエンス、機械学習、ウェブ開発など幅広い用途で利用され、急速に人気を獲得しています。
1991年Visual Basic初めて1991年にリリースされたプログラミング言語で、Windowsアプリケーション開発のために設計されました。VB.NETはVisual Basicの進化形であり、より新しい技術と統合されています。
1991年HTMLウェブページの構造とコンテンツを記述するためのマークアップ言語です。HTMLはウェブ開発の基本的な言語であり、構造化された文書を作成するために使用されます。
1995年Javaクロスプラットフォームアプリケーション開発に向いた言語で、Androidアプリケーション開発でも使用されています。
1995年JavaScriptウェブ開発に不可欠な言語で、フロントエンドとバックエンドの両方で使用されます。
1995年Ruby簡潔な構文とオブジェクト指向プログラミングをサポートし、ウェブアプリケーションフレームワークであるRuby on Railsが有名です。
1995年PHPウェブ開発のためのスクリプト言語として広く使われています。
1996年CSSウェブページのスタイルとレイアウトを定義するためのスタイルシート言語です。CSSはHTMLと共に使用され、ウェブサイトの見栄えを設計し、整えるのに役立ちます。
2000年C#Microsoftによって開発された、Windowsアプリケーションやゲーム開発に使用される言語です。
2001年VB netMicrosoftが開発したプログラミング言語です。VB.NETは多くのWindowsアプリケーションやゲーム開発に使用され、Microsoftの.NETフレームワークと統合されています
2009年GoGoogleによって開発され、並行プログラミングに強みを持つ言語で、クラウドアプリケーションなどで使用されています。
2010年Rustシステムプログラミング向けに設計された安全で高性能な言語で、セキュリティに重要視されています。
2011年KotlinAndroidアプリケーション開発におけるJavaの代替言語として急速に普及しています。
2012年TypeScriptJavaScriptのスーパーセットで、型安全性を提供し、大規模なプロジェクトで使用されます。
2014年SwiftAppleが開発した、iOSおよびmacOSアプリケーション開発のための言語です。

Timeline of programming languages - Wikipedia

まず、前提としてPythonは結構モダンな言語だと思っていたが、リリースされた時期は非常に古かった。PHPやRubyやJavaScriptよりも前だとは思ってもいなかった。めちゃめちゃ意外だ。

タイムライン形式で示した言語開発の歴史

それぞれの特徴について理解したため、続いて、イメージ的に理解できるようタイムライン風に示してみる。

● 1958 LISP
● 1959 COBOL
|
| [13年]
|
● 1972 C言語
|
| [11年]
|
● 1983 C++
|
| [8年]
|
● 1991 HTML
  VisualBasic
  Python
|
● 1995 Java
  JavaScript
  Ruby
  PHP
● 1996 CSS
|
● 2000 C#
● 2001 VB.net
|
| [8年]
|
● 2009 Go
● 2010 Rust
● 2011 Kotlin
● 2012 TypeScript
● 2014 Swift

なるほど、何か言語開発にもタイミングや波があるようだ。野球でいう「黄金の世代」みたいなものかな。今Flutterなどで話題になっているGo言語ですら相当以前の言語であるということに驚いた。 ‌ ‌## まとめ

もともと、PythonもWebサーバとしての開発を担うことができた。なんならPHPよりも古くからリリースされている汎用的な力がある言語だった。当時を経験していないので確信はないのだが、おそらく、PHPと、Web開発に適したフレームワークの登場が、pythonのWeb開発のそれよりも優れていたため、「Web言語ではPythonよりもPHP」という流行になったのと思う。 それにより、Web開発におけるライブラリは、pythonよりもPHPが豊富になっているのだろう。

しかしながら、2005年に登場したDjangoが、現状のフレームワークが直面している問題を解決してくれた。それにより、PythonはWebフレームワークとしての役割も見直されるようになった・・・。 CakePHP VS Django - フレームワークテクノロジー市場シェアの比較

Django は、Model-View-Template (MVT) アーキテクチャに基づいて、Web アプリのデザインを美しく、高機能なものにします。複数の業界のさまざまなタイプのプロジェクトに高度に適応でき、いくつかの既製の機能パッケージが含まれています。 Django と Laravel: 2023 年に優れたフレームワークはどちらですか?

事実としてこういう流行があったのかは定かではないが、こう考えると言語ごとの特徴が生まれたのも合点がいく。 PythonはC#よりも可読性が高いため人気だった。Web開発が行われる前から主流でありライブラリも多く生まれた。その名残から、現在でも人工知能などWeb開発に限らない分野において、絶対的な歴史の蓄積により、膨大なライブラリを保持している

納得である。