「PythonがJavaを抜いた」という記事を見たのは5月のことでした。
出典はpyplプログラミングです。Googleの検索キーワードでランキングされており、どれだけ話題になっているかが分かります。2018年10月現在もPythonは1位です。
PYPL PopularitY of Programming Language
2018年時点で、Pythonが1位、JavaScriptが3位です。
なお、上記サイト以外にも言語の人気ランキングがいくつかあります。
RedMonk
GitHubとStack Overflowに基づいたランキングです。
2018年時点で、JavaScriptが1位、Pythonは3位です。
IEEE: The 2018 Top Programming Languages
12の判断基準に基づいたランキングです。
2018年、Pythonは1位、JavaScriptが8位です。
https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages
トレノケートの2018年4月から9月まで半年間のプログラム言語系コースの受講人数のランキングでも、
1.Python
2.Java
3.C#
4.JavaScript
という順位になっています。
Javaの圧倒的人気の時代から時が流れ、
様々な言語が登場し、切磋琢磨しているのではないかと感じています。
ここから、プログラム言語のトレンドの推移や特長を紹介します。
JavaやC#は データ型(型)をあらかじめ決めて定義します。
型を持つことで、数値に文字が入ってしまって計算時にエラーになってしまったり、数値の計算結果で桁あふれしてしまったり、といったことをコーディングによって排除できます。実行時エラーを防ぐことができるというメリットもあり、利用者だけでなく開発者も効率が上がりました。
一方・・・
データの型を厳密に管理する必要があるので、外部システムと連携する場合などに、入力データの種類やタイプをその都度確認し、その結果によって異なる対応が必要となり、コーディングの手間が増えることになりました。
型が後から決められる言語を【動的型付け言語】とか【ダックタイピング】といいます。
PythonやJavaScriptは型を持たないので、このジャンルに含まれます。
ダックタイピングの由来は
『もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである』
という言葉からです。
型は実際のデータが決めるということですね。
前述の通り、外部システムとのデータの受け渡しも、型がないことでスムーズにできることが特徴です。入っているデータはとりあえずそのまま使えると便利ですね。
なお、JavaやC#も型を持たずに代入できる型推論の機能が仕様拡張されており、一方JavaScriptは型を持つTypeScriptという言語が登場したりと、冒頭に書いた通りまさしく「切磋琢磨」し機能や仕様のいいとこどりをしあっています。
JavaScriptはWebページに使われるプログラム言語です。
歴史は古いのですが、Ajaxという非同期データ通信で脚光を浴び、前述の通り人気ランキング上位のプログラミング言語の一つです。
動的型付けで型を持たないことや、Javaと似ている文法が特徴ですが、大きく違っているのがクラスベースではなく、プロトタイプベースということでした。
しかし、仕様が増え、使えるキーワードが増えて、便利になってきています。
Pythonは少ないコードで記述できるのが特徴です。
インデント(字下げ)が意味を持ちます。;や{}などの記号も省けます。
イメージしづらいかもしれませんので、文末にJava,JavaScript,Pythonのプログラムコードを載せておきます。
タイピング量がが少ないだけで作業効率も上がりますよね。
Webアプリケーション以外にも、統計やデータ分析、ネットワーク関連でも人気があり、近年、ますます注目されています。
以下は引数aと引数bの値を足して、結果をかえすadd関数(メソッド)の記述例です。
Java
JavaScript
Python
ECMAScript2015以降、大きく仕様拡張しています。
「JavaScript文法編」では新しい機能を含め基礎的な文法から扱っています。
コース詳細はこちら
https://www.trainocate.co.jp/reference/course_details.aspx?code=WSC0096G
「Pythonプログラミング1」では基本文法を、
「Pythonプログラミング2」ではオブジェクトにまつわるトピックを扱っています。
コース詳細はこちら
https://www.trainocate.co.jp/reference/course_details.aspx?code=PRC0103G
https://www.trainocate.co.jp/reference/course_details.aspx?code=PRC0104G
次回は関数系言語のお話をお送りします。お楽しみに!