プログラミング言語が車だとしたら、どれになるでしょうか?

プログラミング言語が車だとしたら、どれになるでしょうか?
コーディングを学ぶ

このようなコードの書き方を学びたい方は、必要なスキルを習得するのに役立つこれらのアプリをチェックしてみてください(画像提供:MianShahzadRaza)

秋学期がもうすぐ始まります。多くの学生にとって、学びたいプログラミング言語を考える時期です。でも、どの言語を選べばいいのでしょうか?

コーディングを学ぶ

学生にありがちな先入観の一つに、生涯でコンピュータ言語は一つだけ学ぶべきだというものがあります。この誤解を払拭するために、軽い気持ちで例え話をしてみましょう。例えば、自動車メーカーはなぜたくさんの種類の車を製造しているのでしょうか?

実行すべきタスクの種類は多岐にわたり、一つの車両タイプで全てをこなすことはできないからです。そこで疑問が生じます。もしプログラミング言語が車だとしたら、どんなものになるでしょうか?

私たちの気楽なアプローチを思い出しながら、大型車両から始めましょう。

C++なら大型ピックアップトラックになるだろう。馬車を牽引できるし、ヨットも牽引できる。オフロードも走れるし、大雪も走破できる。でも、燃費はそれほど良くないし、ツーリングカーでもないし、毎日長距離通勤には向かないだろう。でも、オーナーはみんな大好きだ。

同様に、C++は完全なオブジェクト指向です。C++を使えばどんなプログラミングプロジェクトにも取り組むことができます。しかし、使い始めるまでには非常に時間がかかる場合があります。正規表現を使ってテキストファイルからデータを抽出するといった単純な作業であれば、別の言語を選びましょう。しかし、大規模なチームで200万行ものコードを書く必要がある場合は、C++でも問題ありません(もちろんRCSがあれば)。

プレーンCはどうでしょうか?

Cはさらに基本的なものです。それはあなたの農業用トラクターです。畑を耕したり、ピックアップトラックでさえできないものを引っ張ったりできます。しかし、高速道路で走らせるのは絶対に避けたいものです。

同様に、C言語は非常に低水準言語であり、習得が難しく、学習曲線が急峻です。何かを達成するには膨大なコードが必要です。また、C言語は非常に低水準で、一般的に特定のタスク、あるいはハードウェアに特化しているため、コードの再利用は困難です。

Java(とC#)はスポーツ・ユーティリティ・ビークル(SUV)です。乗用車でもトラックでもありません。かさばる荷物を運ぶことができますし、中には大勢の人を乗せられるものもあります。多目的車です。ただし、厳密にはオフロード車ではなく、重いものを牽引することはできません。

同様に、Java(およびC#)は多目的言語ですが、予測不可能なガベージコレクションのため、完全な制御は不可能です。そのため、航空管制、リアルタイムシミュレーション、ゲームなどのリアルタイムアプリケーションには適していません。しかし、優れたオブジェクト指向機能はエンタープライズアプリケーションに最適です。

Pythonはエコノミーセダンのようなものです。運転しやすく、楽しく、燃費も抜群です。通勤にも最適です。価格も手頃で、メンテナンスもほとんど必要ありません。ただし、オフロード走行や牽引には適していません。キングサイズのベッドを運ぶのにも適していません。とはいえ、運転の練習に乗ったあの車のような感覚です。

同様に、Pythonは汎用言語です。データベースを操作でき、スクリプトも作成でき、データ分析も可能です。オブジェクト指向機能も優れています。しかし、Pythonはインタプリタ言語であり、ガベージコレクションを使用します。タイミングがすべてで、ミリ秒単位の精度で勝負するプロでない限り、ガベージコレクションがいつ実行されるかは予測できません。Pythonは、科学者が新しいプロジェクトで好んで使う数学およびデータ処理言語として、ほぼFortranに取って代わっています。

Perlはヴィンテージマッスルカーのようです。ヘッドレストやエアバッグがなくても、ユーザーに愛されています。キャブレターをいじりたい?まさに天国です。

同様に、Perlは熱心な言語学者によって書かれ、習得しやすい言語です。しかし、そのコードは難解で難解になることがあります。Pythonと同様に、インタープリタ型で、寛容性が高く、様々な方法で処理できます。しかし、オブジェクト指向機能は粗雑で、付け足しのようなものです。Perlは、マッスルカーと同様に、おそらくその時代は終わったと言えるでしょう。

マクラーレン720。どのプログラミング言語に匹敵するのでしょうか?
速くてスタイリッシュですが、万能車ではありません。(マクラーレン 720s)

最後に、  Objective-C/Swift は スーパーカー、つまり誇りを持って運転される特別な乗り物です。派手で、速く、特定の目的に特化しています。目立つような道路で使用すれば壮観ですが、街中でも使えます。

同様に、Objective-C/Swift は馴染み深く、C から派生しており、習得しやすく、構文も簡潔です。しかし、その真価を発揮するのは主に Apple OS でのみ使用されています。フォーチュン 100 企業の給与計算、人事管理、請求書発行システムを Swift で構築することはまずないでしょう。弾道ミサイル防衛システムも、Swift で構築できるわけではありません。しかし、Swift の「本質」に触れると、驚くべきことが可能になります。

さて、このリストに載っていない、あなたの好きな言語についてはどう思いますか?上記を踏まえて、どんなタイプの車に例えますか?

Knowledge Network