catch-img

プログラム言語のトレンド (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開発関連トレーニングを担当。

無料ダウンロード

オススメコンテンツ

オススメ記事

プロジェクトマネジメント PMP AWS ビジネススキル Microsoft PMBOKⓇ 田中淳子 IT資格 人材育成 山下光洋 AMA Azure コミュニケーション 人材開発用語集 PMBOK®ガイド入門 クラウド ITスキル 新入社員 横山哲也 人材育成応援ラジオ DX re:Invent セキュリティ PMP試験問題に挑戦 Cisco PMBOKⓇガイド 第6版 試験体験記 イベント・セミナー AI(人工知能) PMBOK®ガイド第6版の変更点 人材開発 CCIE CCNA テレワーク ネットワーク リモートワーク 研修 DX人材育成 GCP PMP(R)試験問題 第6版対応 PMP合格体験記 Windows Server AWS_Q&A Active Directory IT人材 IT資格解説 アセスメント キャリア デジタルビジネス ヒューマンスキル リーダーシップ 人気コースランキング 大喜利 部下の育成 AI人材 PMの心得 グローバル人材 新入社員研修といえば IoT OJT reinvent2022 リスキリング 生成AI CCNP Security Windows PowerShell クリエイティビティ プログラミング 人材トレンド 試験対策問題 PMP試験対策一問一答 コーチング プロジェクト プロトタイプビルダー 1on1 AWS_DiscoveryDay AWSトレーニングイベント GCP無料セミナー Google Cloud Google Cloud Platform G検定 ITインフラ oVice アワード クリティカルシンキング サンプル問題 ステークホルダー ダイバーシティ ディープラーニング ワーケーション 自律 試験Tips Linux PMI Power Platform Python Teams Web会議 cybozudays jawsdays2024