見出し画像

ITの武器、開発言語

開発者と言っても色々な得意分野があります。
旧Facebookのような今時のWebアプリを開発している人、パソコン上で動作する業務アプリを開発している人、IoT装置内で動作するアプリを開発している人、それぞれに適した言語があり開発環境があります。

実際に世界でどのような開発言語が利用されているかとともに開発言語と利用シーンを簡単に説明します。TIOBEの開発言語ランキングを見ると、

Python(1991:数値は言語の登場年)が1位に輝いています。特にAI系ではライブラリも豊富で研究開発に使われるのを見ますし、覚えやすさと可読性が高い事も人気の理由です。パソコンでも動作しますし性能の良いIoT端末でも利用されています。特に見た目がプログラム構造と一致する点がほかの言語に見られない特徴になっている。基本情報技術者試験では2020年から追加されている注目の言語です。

C(1972)はCPUに近い言語でハード的な要素を意識しなくてはならないのとちょっとしたプログラムミスによるCPUの暴走が発生する点が学習を難しいのとコードが俗にいうスパゲッティコードになりやすく可読性が悪く保守性が低下する事がしばしばあります。それでもうまく使えば最速で動作するプログラムができます。そのためCPUを使う組み込み系では多く利用されています。

Java(1995)はデータベースで有名なオラクル社が開発提供しています。そのためオラクルを使っているユーザが多く利用していますし、携帯でAndroidをしたスマホはJavaでアプリを開発します。

C++(1983)はC言語を発達させオブジェクト指向な記述ができるようになっています。C的な記述も可能なのでC++を意識せず利用されるケースも多くなっています。

C#(2002)はマイクロソフトが提供している言語です。Windows上で動作する.NETプラットホームに合わせた言語でC++やJavaの要素が入っている。

VisualBasic(2002)はマイクロソフトが提供しているC#と同時期にリリースされ共通のWindows上で動作する.NETプラットホームに合わせた言語です。従来のVisualBasicとの互換性は犠牲にされたため移行作業はできず再開発となるケースが多発したいわくつきの言語です。Visualとの名がついているが編集機能は期待できませんが、Windows上で動作するアプリケーション開発に利用されています。

JavaScript(1995)はJavaと同時期に提供されたWebブラウザで動作する事を目的に作られそのためWebページの開発に多く使われており、最近ではユーザインターフェスを構築するライブラリのReact.js(旧Facebookが提供)やフレームワークのVue.jsが充実して利用されています。

Assembly(1940年代)はコンピュータの登場と同時で大型コンピュータでも利用されてきました。記述内容はCPUの命令に直結したもので言語と言うよりもCPUの命令を書きやすくしたものです。今では組み込み系でも多く使われておりIoTでも登場しますしキーボードの中やマウスの中の小さなMCUでも使われています。

SQL(1974)はデータベースに接続するためには不可欠の言語です。データベースへのデータの入出力には必須の物でデータベースの種類によって多少癖がありますが概ね統一されています。クラウドなどのサーバーサイドアプリケーションに組み込まれて使用されています。

PHP(1995)はサーバー側で動作するWebページ用の言語ともいえます。特にWebページの作成では標準品となっているWordPressはこの言語で書かれており不可欠な言語となっています。データベースの連携もよくメンテナンスもしやすいのが特徴です。

FORTRAN (1954)は科学技術計算に向いた言語として登場し現在までも最新版が出ています。大型コンピュータやスーパーコンピュータでも利用されており大量の計算が必要な案件に利用されています。長年使われているので研究などの数値解析のライブラリが豊富であるのも利用される理由です。

COBOL(1959)は銀行の勘定系のシステムを昔から開発している人だけでなく今でも歴史のある大手の企業では新たなコードが作成されています。その特徴は10演算で小数点以上以下を指定して処理しますし、18桁まで標準で処理できますがIBMの最新版は30桁までの生と瀬を保証しています。低金利時代では小数点以下も大事ですから勝手に切り捨てられないようにデータ定義をしていて欲しいものです。最終的には1円以下は切り捨てられて銀行の物になります。

Prolog(1972)は最初のAI言語論理プログラミング言語のひとつで限定的なエキスパートシステムとして一応の成果が上がっていますが仕事の内容すべて定式化する事は困難で限界はありますがルールが明確であれば正しい答えが得られるので利用されています。

これをすべて使ったことがありますが、17位のClassic Visual Basic(1991)が素晴らしいと今でも思っています。GUI(Graphical User Interface)とセットで開発する統合環境でコードや画面デザイン、画面の操作をきっかけとするイベントドリブン、画面の部品をオブジェクトとしたオブジェクト指向的なの香りがして当時としては斬新でアプリケーションも作り易かったとです。2001年にインターネット環境を意識して登場した.NETが後継とされましたが開発環境のGUI開発はまともにできない状況が続いており褒められたものではありませんが他の言語も開発環境と言う意味ではGUIはサポートしていないので比較しても好き嫌い程度でしょうか。言語がどうしてこれほど発生するのかはシステム開発の工数が膨れ上がり大変だから新しい言語で解決しようとか学術的に理想を目指して作っているからでしょう。

どの言語化よりも大切なことがあります、ソフトウェアはラフサイクルが意外と長いものです10年使うコードをメンテナンスする時に当時のコードと開発環境が動作するのか修正できなければ新規開発となります。この記事を10年後に書いたらどうなっているでしょうか?開発言語にこだわる人もいますが動作を追うには手続き型の開発環境でしょうし、蓄積されたものを再利用するなどする場合はオブジェクト指向型が向いているでしょう。両方メリットがありどちらが良い悪いわけではありませんが、ソフトウェアはメンテナンスが付きまといます。何年後かに修正がしやすいのはどちらでしょうか。実は言語はたいして重要ではありません。その中に書かれているコメント(comment)がメンテナンス性を左右します。これは人のために注釈を記述したものです。自分が作成したソフトであっても何年もあとに見ると何をしているかわからないこともありますし、変更しようとしても変更する場所の手掛かりさえないことがあります。コメントは処理の説明をしますが単純に処理内容を書いてもコードを見ればわかる事は書きません。なぜそのコードが必要なのかどうしてこの処理があるのか、いつどのような目的で書いたのかの記録をします。コメントの良しあしがのちの保守、改変、バグ対応に役立ちます。

世界で使われている開発言語ランキングTIOBE Index for September 2022
https://www.tiobe.com/tiobe-index/


最近作ったWebアプリ
チェックリスト

RSSリーダ


この記事が気に入ったらサポートをしてみませんか?