今学ぶのに最適なプログラミング言語

コンピューターを理解し、私たちの意志に曲げる最良の方法は、コンピューターが私たちのコマンドを理解できるように、コンピューターの言語を話すことを学ぶことです。ファンタジー小説を愛する人々は、魔法の呪文や呪文を学んでいると想像することがあります。実用的な心は、数値とデータの論理構造を表すために、より根拠のある言語を使用します。いずれにせよ、キーストロークとマウスクリックのどのシーケンスによってコンピューターが比喩的なフープを飛び越えて仮想ダンスを実行するかを理解することがすべてです。

すべての学校、MOOC、およびトレーニングサイトは、若いパダワン人のために第一言語を採用する必要があります。騒々しいハーバードのようないくつかの場所は、まだ70年代のCにしがみついていますが、多くの学校はJavaScript、Python、およびJavaの間で振動しています。1つはすべてのブラウザに埋もれており、1つは社会科学のクリーンな選択であり、もう1つは数学に関心のある人々のタイプが豊富な好みです。

1つが最良の選択ですか?1つは明らかに他よりも優れていますか?それとも、夜にかなりの数の学生が枕に向かって叫んでいるのでしょうか。Java、Python、またはJavaScriptを学ぶための最良の理由を調べてみましょう。

Javaは古典的です

Advanced Placementテストでは、Javaが若くて爆発的だったずっと前にJavaを選択しました。おそらくJavaは、誰もが完全に支配的であると考えていたとき、最初の軌道の頂点に到達したことはありませんでしたが、多くのWebサイト、スマートフォン、テレビ、および小型デバイスのバックボーンのままです。

強い支持を持つ言語を選択することで、学生は洗練された開発ツールがすでに完全に揃っている時流に乗ることができます。さらに、学生が自分の仕事のために研究、改訂、拡張できるオープンソースコードの数十億行があります。彼らは大きな運動に参加していて、彼らがはまりやすいです。

Pythonは新しい

実際、Pythonはそれほど新しいものではなく(プロジェクトは30年以上前に開始されました)、成功がゆっくりと進んでいるため、新しいと感じています。つい最近、Pythonが登場し、カジュアルなプログラマーに広く採用されました。目新しさは、Pythonを採用している学校が新しい授業計画を作成し、新しい試験を作成し、スライドの新しいデッキを開発していることを意味します。彼らは、Pets.comとMySpaceを参照して、1990年代のほこりっぽい古い質問を掘り起こしていません。

Computer Science Principlesと呼ばれる最新のAPコースでは、教師がコンピュータ言語を選択でき、多くの人がその新鮮さからPythonを選択しています。新しさは非常に深いかもしれませんが、すべての言語は、アセンブリコードのif-then-else決定構造を隠す巧妙な構文にすぎません。

この成功はすべて、正のフィードバックループを構築することです。2020年11月版のTiobeインデックスは、PythonがJavaよりも人気が高まっていることを認識して、Pythonが2番目のスロット(Cの後ろ)に初めて登ったことを示しています。

JavaScriptはどこにでもあります

それはブラウザにあり、ブラウザはデスクトップ、電話、そしてどこにでもあるすべてのキオスクの基盤です。Node.js Webアプリが、クライアントとサーバーファームの両方で実行できる「同形コード」を開発者が作成するための最も一般的な方法になったため、過去10年間でJavaScriptがWebサーバーの最前線を引き継ぎました。JavaScriptは実質的にJavaと同じ時代ですが、サーバーサイドの人々がその力を発見するのに何年もかかりました。それは同時に新旧です。

Javaが入力されます

時間をかけて各変数のタイプを指定するのは好きではないかもしれませんが、3つのキーをクリックしてコードに「int」を追加するのにそれほど時間はかかりません。そうすることで、コンパイラーにコードをすぐに再チェックさせ、デプロイする前に愚かな間違いを見つけさせることで得られるすべての力を得ることができます。タイプチェックされた言語では、コード内のロジックについてより厳密に考える必要があります。これは、新しいプログラマーにとって不可欠な教訓です。Javaの型構造はバグを減らし、より良いコードを構築します。

Pythonは入力されていません

型付き言語の愛好家は賢く、優れたコードを記述しますが、各変数のデータ型に関する追加情報がなくてもコードがスムーズに実行できると思われる場合は、Pythonを使用できます。データを変数に格納すると、コンピューターはデータのタイプを把握できます。なぜあなた自身のために余分な仕事をするのですか?

この自由奔放なアプローチは、ゆっくりではありますが、変化している可能性があることに注意してください。Pythonのドキュメントでは、Pythonランタイムが関数と変数の型のアノテーションを強制しないことを発表していますが、それらは引き続き使用できます。おそらくやがて、型を追加することがその言語でプログラムするための主要な方法になるでしょうが、今のところそれはすべてあなたの選択です。

JavaScriptは両方です

JavaScript自体は型指定されていませんが、最近、JavaScriptの世界で注目を集めているメンバーの一部が、必要なときに型を設定できる元の言語のスーパーセットであるTypeScriptに切り替えています。そして、あなたがしたくないのであれば、まあ、通常のJavaScriptもうまく動作します。これは、型チェックの緩和バージョンです。

Javaルールデバイス

世界で最も人気のある携帯電話プラットフォームはAndroidです。これは、Java上に構築されたコードの巨大なスタックです。しかし、それは最も目に見えるプラットフォームです。セットトップボックス、新しいChromebook、一部のデスクトップでさえ、スマートフォンと同じようにAndroidアプリを実行します。Javaの親しいいとこであるC#は、Windowsの世界を支配しています。C#はJavaとまったく同じではありませんが、非常に近いものです。固定されたハードウェア用のアプリケーションを作成する場合は、Javaが最良の選択である可能性が高くなります。

Pythonはデータサイエンスを支配している

データを処理するソフトウェアを作成している場合は、Pythonを使用する可能性が高くなります。単純な構文は多くの科学者を魅了し、その言語は全国の研究室で強い支持を得ています。データサイエンスがビジネスの世界のすべての層で定着している今、Pythonはそれに続いています。

インタラクティブドキュメントを作成および共有するための最良の発明の1つであるJupyterNotebookは、他の言語を採用する前にPythonコミュニティから始まりました。これは、ソフトウェア、データ、および何が起こっているのかを説明するテキストを組み合わせるための最良の方法の1つです。読者は単語を吸収し、ボタンを押してデータに対してソフトウェアを実行できます。

JavaScriptがWebを支配する

他のプラットフォームは素晴らしいかもしれませんが、Webブラウザーは、ほとんどすべての人が世界と接続するために使用する1つのポータルであり続けます。これは通常、デスクトップ、スマートフォン、タブレットで最もよく使用されるソフトウェアです。JavaScriptはこのローカルクライアントのボスとして始まり、Node.jsの成長により開発者がクライアントとサーバーで同じコードを実行しやすくなるにつれて、その影響は完全に支配的に拡大しました。

また、Webアプリを構築するための基盤を提供する優れたJavaScriptフレームワーク(Angular、React、Vueなど)が数十あり、必要に応じてクライアントとサーバー間でコードを移動するのに十分賢いものもあります。 

他の言語が支配する世界でも、JavaScriptはスタックに組み込まれます。多くのスマートフォン開発者は、JavaScriptでクロスプラットフォームアプリを作成するためにJavaとSwiftをスキップしています。結局のところ、JavaScriptはブラウザーの長方形で何が起こるかを決定し、それはどこでもほとんどのクリックとキーストロークで何が起こるかを決定することをほぼ保証します。

Javaはすべてを実行します

Pythonコードを作成すると、Java仮想マシンの遍在性を利用するためにJavaで作成された言語の実装であるJythonで実行される可能性が高くなります。JavaScriptを実行する必要がある場合は、JavaScriptをJavaバイトコードに変換する2つのツールであるRhinoとNashornにフィードすることもできます。

JVMの堅実なパフォーマンスに依存しているのは、これら2つの言語だけではありません。Scala、Clojure、Kotlinなどの多くの関数型プログラミング言語も同じ基盤に依存しています。これにより、同じプロジェクトで使用する場合に、これらのJVMベースの言語を簡単にリンクできるようになります。

Pythonはどこでも実行されます

Pythonは、他の言語のエミュレーターを作成する人々にとって、最初の選択肢ではなく、最後の選択肢でもありません。それでも、多くのコンピューターでPythonを見つけるのは簡単です。言語の作成者は常にコードをオープンソースとして配布しており、パッケージはほとんどどこにでもあります。実際、PythonはMacOSに含まれており、Linuxのほとんどのフル機能のディストリビューションが含まれています。また、Windowsには含まれていませんが、インストールは簡単です。スマートな方法で実行してください。

JavaScriptはブラウザで実行されます

ブラウザでアラートボックスを作成するために構築されたおもちゃの言語が、今では多くの言語の基盤になっているとは信じがたいです。開発者はユーザーにリーチしたいと考えています。ユーザーがブラウザーを使用している場合は、JavaScriptでコードを実行する方法を見つけることが、すべてのユーザーにリーチするための最速の方法です。

JavaScriptにトランスパイルするのは、CoffeeScriptやLiveScriptのようなJavaScriptのいとこだけではありません。Lisp、OCaml、Pascalなどの言語でもJavaScriptに変換して、ブラウザで実行できます。Pythonは、Jupyterノートブックなどのプロジェクトのブラウザーで人気があり、JavaでさえGoogle WebToolkitなどのツールを使用してJavaScriptに変換できます。

Javaには強力なIDEがあります

Eclipse、NetBeans、およびIntelliJは、最も優れた統合開発環境の一部です。これらはJavaコミュニティによって作成され、コードを作成するための最もサポート的な環境の1つを作成するために長年にわたって育まれてきました。コード補完およびコード生成アルゴリズムは、すべてのソフトウェアを作成できるわけではありませんが、かなりの量を入力することができます。この手持ちのすべては、新しい開発者が構文を正しくするのに本当に役立ちます。 

これらのIDEは非常に人気があったため、他の言語の開発者は、IDE内でコードを実行する方法を見つけました。あなたがプロのJavaプログラマーになると、ほぼ間違いなくそのうちの1つを使用することになります。それまでの間、よりシンプルで使いやすいJavaプログラミング体験が必要な場合は、BlueJまたはGreenfootを試してください。これらの「初心者IDE」は、Javaを学習するために特別に設計されました。

Pythonにはクラウドがあります

Python言語はUnixの世界で最初の本拠地を見つけたので、Linuxボックスで満たされた雲がたくさんのPythonコードを見つける自然な場所であることは当然のことです。Jupyterのような最新のツールのいくつかは、コード、データ、および説明をバンドルしているため、人々は自分の洞察を生き生きとした研究論文として他の人と共有できます。Jupyterノートブックは静的なドキュメントではなく、探索するためのインタラクティブなツールです。

他の人々は、研究を強化するために言語の周りに洗練されたツールを構築しています。たとえば、PyTorchは、コード、データ、および分析用のアルゴリズムで満たされた深層学習ツールキットです。このような環境は、データサイエンスの未来を支配するでしょう。

データを共有し、大規模で集中的な計算データ分析ジョブを処理するための追加機能を追加するノートブック用の優れたホストもいくつかあります。たとえば、GoogleはColaboratoryを運営しており、データを保存し、GPUへの無料アクセスを提供して計算を高速化します。Saturn Cloudは、デスクトップの100倍のパフォーマンスを宣伝しています。

JavaScriptにはJSFiddleがあります

各ブラウザには、IDEとして機能するのに十分な能力があります。JSFiddleは、JavaScriptコードを他の開発者と共有できる12を超えるWebサイトの中で最も有名なものにすぎません。ただし、コードをいじって同じWebページで実行されるのを見ることができるため、Webページは静的ではありません。このようなツールを使用すると、JavaScriptの構文上の楽しみをすべて簡単に試すことができます。

いずれか、または3つすべてを学ぶ

プログラミングの世界は他家受粉が大好きです。異なる言語間を行き来して構文をまっすぐに保つことは混乱を招く可能性がありますが、プロジェクトで3つの言語すべてを、行き詰まることなく使用することは可能です。データを分析するJavaまたはJavaScriptプロジェクトは、Pythonで記述されたデータサイエンスライブラリにリンクできます。または、PythonプロジェクトはJavaまたはJavaScriptコードを呼び出すことができます。

賢い開発者は、さまざまな言語を相互に自動的に翻訳、リンク、統合するためのツールも作成しました。ブラウザでPythonコードを実行しますか?現在、いくつかの異なるオプションがあり、おそらくもっと来るでしょう。Javaには、JavaScriptを評価するScriptEngineクラスがあります。翻訳またはエミュレーションを通じてJavaScriptとして実行される数百の異なる言語があります。

つまり、3つの言語は、互いに分離された島である必要はありません。長期的には1つだけ選ぶ必要はありません。ただし、最初は1つから始めます。

ソフトウェア開発についてもっと読む:

  • 封鎖中の最高の無料プログラミングコース
  • CI / CDとは何ですか?継続的インテグレーションと継続的デリバリーの説明
  • アジャイル手法とは何ですか?現代のソフトウェア開発は説明しました
  • APIとは何ですか?アプリケーションプログラミングインターフェイスの説明
  • 今学ぶのに最適なプログラミング言語
  • 2020年に最も価値のあるソフトウェア開発者のスキル
  • AI開発のための6つの最高のプログラミング言語
  • 2020年に最も高額な24の開発者の役割
  • フルスタック開発者:それは何であり、どのようにして1つになることができるか
  • すべてのソフトウェア開発者が避けるべき9つのキャリアの落とし穴