プログラム言語のトレンド (1)

「Java」1強時代は終わり?


「PythonがJavaを抜いた」という記事を見たのは5月のことでした。

出典はpyplプログラミングです。Googleの検索キーワードでランキングされており、どれだけ話題になっているかが分かります。2018年10月現在もPythonは1位です。

PYPL PopularitY of Programming Language

2018年時点で、Pythonが1位、JavaScriptが3位です。

http://pypl.github.io/PYPL.html


なお、上記サイト以外にも言語の人気ランキングがいくつかあります。

RedMonk

GitHubとStack Overflowに基づいたランキングです。

2018年時点で、JavaScriptが1位、Pythonは3位です。

https://redmonk.com/


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」と「Python」


JavaScript

JavaScriptはWebページに使われるプログラム言語です。

歴史は古いのですが、Ajaxという非同期データ通信で脚光を浴び、前述の通り人気ランキング上位のプログラミング言語の一つです。

動的型付けで型を持たないことや、Javaと似ている文法が特徴ですが、大きく違っているのがクラスベースではなく、プロトタイプベースということでした。

しかし、仕様が増え、使えるキーワードが増えて、便利になってきています。


Python

Pythonは少ないコードで記述できるのが特徴です。

インデント(字下げ)が意味を持ちます。;や{}などの記号も省けます。

イメージしづらいかもしれませんので、文末にJava,JavaScript,Pythonのプログラムコードを載せておきます。

タイピング量がが少ないだけで作業効率も上がりますよね。

Webアプリケーション以外にも、統計やデータ分析、ネットワーク関連でも人気があり、近年、ますます注目されています。


記述例


以下は引数aと引数bの値を足して、結果をかえすadd関数(メソッド)の記述例です。


Java

public int add(int a,int b){
  return a + b;
}


JavaScript

function add(a,b){
  return a + b;
}


Python

def add(a,b):
  return a + b


トレノケートのプログラミング関連コース


◆ JavaScript

ECMAScript2015以降、大きく仕様拡張しています。
「JavaScript文法編」では新しい機能を含め基礎的な文法から扱っています。

コース詳細はこちら
https://www.trainocate.co.jp/reference/course_details.aspx?code=WSC0096G


◆Python

「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


次回は関数系言語のお話をお送りします。お楽しみに!

大貫 淳子 (おおぬき じゅんこ)

トレノケート株式会社 ラーニングサービス本部に所属。 Web開発関連トレーニングを担当。

   

オススメコンテンツ

 

人気記事

人材育成専門企業トレノケート【公式ブログ】
© Trainocate Japan, Ltd. All Right Reserved. 2008-2019