こんにちは、KiYOです。
システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。
新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。
KiYO
今回は色々なプログラミング言語の特徴をまとめていきます。
この記事でわかる事
- どういったプログラミング言語があって、その特徴
- プログラミング言語の人気度
- プログラミング言語の主な利用シーン
今回はこの本を参考に、私の独断と偏見で記事を書いています。
リンク
人気度の内容は上記本の中で紹介している指標を元に総合値を人気度としています。
5項目を5点評価した合計です。(容易性・将来性・普及度・保守性・中毒性)
目次
Python(人気度:22.5)
機械学習など幅広い分野で使用されている書きやすい言語
特徴
- オブジェクト指向のスクリプト言語
- 文法が単純化されていて誰が書いても同じように読みやすいプログラムになるように設計されている
- 空白による字下げ、インデントにより構文ブロックを表現
- 多くの充実したライブラリが用意されている
- 機械学習・深層学習の分野でデファクトと言える言語
利用シーン
Pythonは手軽に始められる上に、多くのライブラリが用意されています。そのため機械学習(AI)、スクリプト、Webアプリ、教育分野、データサイエンス、スクレイピング、バッチ処理、デスクトップアプリ、システム管理など広く使われています。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/19/python/
プログラミング言語学習には、オンライン講座のUdemy(ユーデミー)をオススメします。Pythonの学習なら間違いなくこの1本は外せない。 私も受講して学習しました。初心者にもわかりやすく解説してくれて離脱せず学習を進めれました。 時間も28時間と充実した内容。 好きなところから観れるので気になるところから再生して勉強できるのもいい点です。
JavaScript(人気度:21.5)
Webアプリケーションの実現に欠かせない高速な言語
言語の特徴
- JavaScriptは唯一のWebブラウザ上で動作するプログラミング言語
- サーバなどの環境でも使われる(Node.js)
- プロトタイプベースのオブジェクト指向
利用シーン
当初JavaScriptの利用シーンは、Webブラウザに簡易的な動的要素を組み込むものでした。しかし、その後、Ajax技術により大々的に脚光を浴びて、リロードのない動的なWebページを作るのには欠かせない存在となっています。
また、JavaScriptをサーバで使うNode.jsはWebサーバでアプリを作るのに利用されています。ReactNativeやElectronといったツールにより、スマートフォン、デスクトップアプリの開発も可能となりました。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/21/javascript/
Node.js(人気度:21.5)
JavaScript開発では欠かせない 高速実行環境
言語の特徴
- Node.jsはJavaScriptの実行エンジン
- Node.jsはGoogle Chromeに採用されているJavaScriptエンジンのV8を利用
- ノンブロッキングI/Oとイベントループのモデルを採用(大量のアクセスに対応するWebアプリを作成しやすい)
- Node.jsのライブラリを手軽にインストールできるパッケージマネージャのnpmは広く利用されている
- Webサーバ以外にもローカルで開発ツールを動作させるのに使える
利用シーン
主にWebアプリケーション作成に用いられ、ExpressというWebフレームワークが有名。Webブラウザ向けのJavaScriptのプログラムを整形したり、圧縮したりするためのツール(CLIツール)としても利用します。TypeScriptのコンパイラの実行にもNode.jsが用いられています。
また、豊富なライブラリを活かして、バッチ処理にも利用されています。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/25/node-js/
Java(ジャバ)(人気度:21.5)
Javaはあらゆる分野で利用されるユーザも多い王道の言語です。
言語の特徴
- Javaはオブジェクト指向の最も代表的な言語
- 開発当時(1995年発表)、先進的なオブジェクト指向を取り入れた
- プラットフォーム非依存を目標として高性能な仮想マシン上で稼働(JVM)
- マルチスレッドを言語仕様に含み並列計算を可能とした
利用シーン
スマートフォンアプリ(Android)、Webアプリを中心に幅広い分野で使われています。大規模システムでの実績が多く、セキュリティにも配慮されているため、業務システムでこので利用されます。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/07/java/
Ruby(人気度:20)
日本が世界に誇るスクリプト言語。 Ruby on Railsで注目された「楽しい」言語
言語の特徴
- 「書いてて楽しい」ような記述の簡潔さ
- WebアプリのフレームワークであるRuby on Railsが有名
- 日本語で多くの資料が提供されている
利用シーン
RubyはWebアプリの開発と簡単なスクリプトの作成に用いられます。
Webアプリ開発は強力なWebフレームワークRuby on Railsによって、実現できます。スクリプトは簡潔に記述できる特性や文字処理の簡便さによって、いずれも便利に使えます。
他には仮想環境の設定ツールの「Vagrant」やサーバ管理の「Chef」などが有名です。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/28/ruby/
C++(人気度:19.5)
C言語の速度と機能の強力さを併せ持つプログラミング言語です。
言語の特徴
- C++は、Cの拡張として開発された
- Cの良さをそのままに、オブジェクト指向など大規模開発で役立つ機能をふんだんに取り入れている
- 仮想関数、多重定義、他重継承など非常に多くの機能を備えている
利用シーン
OSやデータベース、ブラウザ(Google ChromeやMozilla Firefox)、ゲーム開発といった実行速度が重視されるソフトウェアにC++は欠かせません。Pythonなどに比べるとやや地味ですが、機械学習の分野でも活躍します。
実行速度重視の開発規模が大きいソフトウェア開発では人気があります。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/04/c-plus-plus/
C#(人気度:19)
Windowsの定番言語 UnityやXamarinで人気がさらに加速
Microsoftが「.NET Framework」のために開発した生産性の高い言語です。
言語の特徴
- C#はMicrosoftが最も力を入れている言語
- 名前の由来はC++に++を下に追加した形からC#と付けられ、C++の次世代言語という思いで付けられた
- Windowsだけでなく、macOS,Linux,Android,iPhoneなどでも動く
- 共通中間言語(CIL)にコンパイルされて実行される点や文法的な類似点からJavaと比較される
利用シーン
Windowsサーバ向けを中心に、Javaと似たような使い方が多い。C#によるWeb開発ではASP.NETが人気です。WebのUIを開発できるBlazorも注目されてます。
Windowsアプリの開発ではC#が最も手厚くサポートされている言語の一つです。
ゲーム開発環境UnityではC#を公式な開発言語としてサポートしており、C#で開発されたゲームが世界中で遊ばれています。クロスプラットフォームツールのXamarinでスマフォアプリ作成もできます。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/29/c-sharp/
C(人気度:17)
Cは高速・省リソースで現在も多く使われています。主要なプログラミング言語に大きな影響を与えている言語です。
言語の特徴
- Cは現代の主要プログラミング言語に多大な影響を与えた「祖先」とも言える言語
- 誕生は1972年、初期のプログラミング言語の1つです。
- プログラムの実行速度やメモリの使用効率に非常に優れている
- 仕様やコンパイラは今でも更新されている
- メモリ管理が複雑であり、文法が不親切なため、習得難易度は高め
利用シーン
AndroidのベースであるLinuxはほぼ全ての部分がCで書かれています。Cの素早い応答速度がその理由の1つでしょう。他にはメモリ使用効率が求められる組み込みシステムにも用いられます。
Cはガベージコレクションと呼ばれるメモリ管理機能がなく、オーバーヘッドなしにプログラムを実行できます。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/05/c/
Kotlin(コトリン)(人気度:17)
Kotlinは、Javaを簡潔・安全にしたような文法でサクサク開発できる言語です。
言語の特徴
- KotlinはIDEを販売しているJetBrainsに開発され、2011年に公開されたJVM言語
- JVM言語とはJavaを高速に動作させる仮想マシン、JVM上で動作するプログラミング言語
- Javaよりも簡潔で安全、かつJavaのように汎用的な言語を目指して開発された
- JVM上で動作し、Javaの資産も利用できる
- Javaよりも記述が楽なので、Javaの置き換え言語としての利用も増えている
- コルーチンという機能を導入し、非同期プログラミングも得意
利用シーン
主にAndroidアプリの開発で使われます。KotlinはJavaの置き換え言語としてJavaと同等の分野でも利用されています。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/06/kotlin/
PHP(人気度:17)
Web開発に特化したプログラミング言語。性能も年々向上している
言語の特徴
- PHPはWebアプリの開発に特化したプログラミング言語
- 動的なWebページを作るのに便利なライブラリやオブジェクト指向など多くの機能がある
- Webサイトの約8割にはPHPが使われているデータもある(W3Techs)
利用シーン
Webアプリーケーションの開発の利用シーンが主です。WikipediaやWordPressはPHP製です。
また、Laravelなど優れたフレームワークが多数存在します。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/19/php/
Swift(人気度:17)
SwiftはAppleによるiOS/macOS向けプログラミング言語です。
言語の特徴
- SwiftはAppleが2014年の開発者会議で発表したプログラム言語
- Objectiv-Cの次世代の言語として、iOS/macOS向けアプリ開発用に用いられる
- Swiftは「速い」を意味する語で、高速なアプリを素早く開発できることを強調
- Swiftのコンパイラは、LLVMのフロントエンドで、コードの最適化が行いやすい
- 「モダン、安全、高速、インタラクティブ」
- クロージャやタプル、ジェネリックプログラミングが可能
利用シーン
Swiftは主にAppleのmacOS/iOS、関連するwatchOS/tvOSで動くアプリ開発で利用されます。
Apple製品アプリを作るのには、ほとんどのケースでSwiftかObjective-Cを使うことになります。Swiftのこれら以外の分野での適用は得意ではない。(サーバーサイドなど)
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/01/swift/
TypeScript(タイプスクリプト)(人気度:17)
型システムを導入した堅牢なJavaScript+αな言語です。
言語の特徴
- TypeScriptはJavaScriptの静的型付け版言語
- JavaScriptにトランスパイル(変換)して使う
- 型を付け加えて大規模開発でも使いやすいように設計
利用シーン
TypeScriptはJavaScriptに変換して実行することから、JavaScriptの用途と同じで、Webフロントエンドの開発+Node.jsによるサーバサイドが主な使い方になります。
TypeScriptで書かれたライブラリ・フレームワークの人気が高まっている
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/08/typescript/
Dart(人気度:16)
JavaScript対抗としては普及せず、Flutterのモバイルアプリ開発で一躍人気に!
言語の特徴
- Dartはユーザインターフェース構築が得意なプログラミング言語
- JavaScriptへのトランスパイル(*)
- クロスプラットフォームで有名なフレームワークFlutterが人気
- JavaScriptの置き換えを狙っていたが、普及せず
- パフォーマンスと生産性を両立したクライアント(アプリやWebなど)向け言語
- 静的型付け、クラスベースのオブジェクト指向言語でJavaやC#を似た文法
- サーバ向けのDartも提供あり
*あるプログラミング言語から、他のプログラミング言語に変換する技術
利用シーン
クロスプラットフォームのアプリケーションフレームワーク、FlutterによってAndroid /iOSやWindowsで高速に動くアプリが開発できます。
また、JavaScriptの置き換えを狙っていたためJavaScriptにトランスパイルとしてWebフロントエンド開発にも使えます。
Webアプリケーション開発も可能で、gRPC(APIサーバ)用のライブラリも公開されています。まだ普及の途上ですが、クライアント・サーバ双方に展開できます。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/26/dart/
CoffeeScript(コーヒースクリプト)(人気度:13.5)
JavaScriptの置き換えを狙ったシンプルな記述の言語
言語の特徴
- CoffeeScriptはJavaScriptに変換するトランスパイル言語
- 記述を短くできるのが特徴
利用シーン
JavaScriptに変換されて実行されるというその性格より、JavaScriptと利用用途は同じです。
Webアプリケーション(フロントエンド・サーバー)の開発に利用されています。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/10/09/coffeescript/
Objective-C(人気度:12.5)
macOS/iPhoneアプリ開発で活躍したCの亜種言語になります。
言語の特徴
- Cをベースにしつつ、Smalltalkのようなオブジェクト指向機能を持たせた言語
- Swiftと並ぶmacOS/iOSの公式開発言語の一つ
- C言語にオブジェクト指向を持たせたものにC++があるが方向性が違う
C++は広いプラットフォームで使用
Objective-CはmacOS/iOS向けで使用
Swiftに置き換わっていく可能性が高い
利用シーン
iPhone/iPadなどのiOSやmacOSのアプリを開発するのに利用されます。現在、Appleは新言語のSwiftにも注力しており、Objective-CとSwiftのプログラム共存できるようになっています。
詳しくはこちらをご覧ください。
https://laphroaig-apple.com/2021/09/30/objective-c/
プログラミング言語と関連する言語や記述形式
プログラミング言語以外にもいろいろな言語があります。
システム開発する上で外せないものを紹介してますので、こちらもご覧ください。
https://laphroaig-apple.com/2021/10/09/markup-language/
まとめ:プログラミングの世界へようこそ
やりたいことを実現するために、プログラミングの使い方をマスタしましょう。
何事も覚えることに遅いことはありません。今日が一番若い日です。行動していきましょう!
以上です。KiYOでした!
今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。
リンク
Udemyというオンライン講座でもプログラミング学習はできます。 再生速度を早めてみたり、何度も見返すことができるのでおすすめです! 私も色々なプログラムをここで学習しています。
[affi id=2]
コメント