「言語間の特徴はなぜ生まれたのか / プログラミング言語の歴史について」に関しての考えをまとめました。
目次
はじめに
各言語の特徴を学ぶにあたり、「なぜこの言語が人気なのか」「どのような経緯でこの言語が選ばれるようになったのか」「ライブラリなど人為的な特徴が生まれた経緯は何か」を知りたくなった。 例えば、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 net | Microsoftが開発したプログラミング言語です。VB.NETは多くのWindowsアプリケーションやゲーム開発に使用され、Microsoftの.NETフレームワークと統合されています |
2009年 | Go | Googleによって開発され、並行プログラミングに強みを持つ言語で、クラウドアプリケーションなどで使用されています。 |
2010年 | Rust | システムプログラミング向けに設計された安全で高性能な言語で、セキュリティに重要視されています。 |
2011年 | Kotlin | Androidアプリケーション開発におけるJavaの代替言語として急速に普及しています。 |
2012年 | TypeScript | JavaScriptのスーパーセットで、型安全性を提供し、大規模なプロジェクトで使用されます。 |
2014年 | Swift | Appleが開発した、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開発に限らない分野において、絶対的な歴史の蓄積により、膨大なライブラリを保持している
納得である。