ITエンジニアの過半が使いたくない、不人気ランキング不動の1位は「あの開発言語」

https://xtech.nikkei.com/atcl/nxt/cpbook/18/00062/00003/?i_cid=nbpnxt_ranking

アンケートでは、今後スキルを磨きたい言語を複数回答で選んでもらった。その結果、スキルを磨きたい言語の第1位は「Python」だった。回答者711人中435人がスキルアップを望んでおり、6割以上のエンジニアに選ばれている。

今後スキルを磨きたい言語

今後スキルを磨きたい言語[画像のクリックで拡大表示]

 『最近のAIシステムやデータ分析システムの構築にPythonは欠かせないプログラミング言語である。これらシステムを構築するためのライブラリーやフレームワークの多くがPythonプログラムで利用できるからだ。6割以上のエンジニアがスキルを磨きたいと言語に選んだのは納得できる。

 第2位は「JavaScript」(201人)だった。Web技術を用いたシステム開発にJavaScriptは欠かせない。利用している言語で第1位だったこともあり、スキルアップしたいエンジニアも多いのだろう。第3位は「C#」(160人)、第4位は「Java」(126人)が入った。基幹系システムで多く使われているC#やJavaもスキルアップしたいエンジニアが多い。

 注目したいのは第5位の「Go」(110人)と同率で第5位の「TypeScript」だ。Goは米グーグル(Google)が開発したプログラミング言語だ。高速処理が売りのプログラミング言語で、主にサーバー側で稼働させて高速な処理を実現したい際などに利用する。

TypeScriptは米マイクロソフト(Microsoft)が開発したプログラミング言語だ。コンパイルによってJavaScriptコードに変換できる。しかも型やクラス機構などが備わっており、JavaScriptよりも安全なコードを記述できるのが売りだ。グーグルが中心となって開発したWebアプリケーションフレームワークである「Angular」ベースの開発に利用できる。

 GoとTypeScriptは登場したのが2010年前後と比較的新しいプログラミング言語である。これらの言語のスキルを磨きたいというエンジニアが多いことから、今後JavaやC#といった定番言語以外の新言語がシステム開発に利用される機会が増えると推測できる。

利用したくない言語の第1位は不動

 PythonのようにITエンジニアの多くがスキルを磨きたいと思っている言語がある一方、利用したくないという不人気な言語もある。アンケートでは今後利用したくない言語を複数回答で選んでもらった。いわば、プログラミング言語の不人気ランキングである。

今後利用したくない言語

今後利用したくない言語[画像のクリックで拡大表示]

 アンケートの結果、第1位は「COBOL」(363人)だった。過半のエンジニアが今後利用したくない言語に選んだ。過去2回の調査でも「今後、スキルを磨かなくてもよいと思う言語」の第1位にCOBOLが選ばれている。もはや不人気ランキング不動の1位である。

 COBOLは多くの基幹系システムで稼働し続けているとはいえ、COBOLを利用する新規案件は少ない。事実、COBOLをメインに利用していると回答したエンジニアの86.4%は、主な業務を「運用・保守」または「エンハンス」と回答している。

 利用したくない言語の第2位は「FORTRAN」(272人)、第3位は「Visual Basic(VB.NET以外)」(228人)である。1~3位にランクインした言語はどれも新規の開発案件が少ない言語だった。また歴史が古く機能拡張がない点も共通している。こうした言語はITエンジニアに敬遠されているという結果になった。』

COBOL
https://ja.wikipedia.org/wiki/COBOL

『コードの実例
実例1 (Hello world)
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLO.
000300 PROCEDURE DIVISION.
000400 DISPLAY ‘HELLO, WORLD!’.
000500 STOP RUN.

出力 HELLO, WORLD!
この例では DISPLAY命令を使って文字列をコンソールまたは標準出力に出力している。

COBOLはレコードレイアウトの決まったファイルの処理に使われることが多い。その場合はふつう、ファイル節(FILE SECTION)にレコードとそれを構成するデータ群の定義を書く。そして、実行部(PROCEDURE DIVISION)のREAD文、WRITE文などでそのレコードを読み書きする。

実例2 (Hello world)
作業領域節(WORKING-STORAGE SECTION)にデータを定義した例。

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLO.
000300 DATA DIVISION.
000400 WORKING-STORAGE SECTION.
000500 01 HELLO1 PIC X(15).
000600 01 HELLO2.
000700 03 FILLER PIC X(06) VALUE ‘HELLO,’.
000800 03 FILLER PIC X(01) VALUE SPACE.
000900 03 FILLER PIC X(06) VALUE ‘WORLD!’.
001000 03 FILLER PIC X(01) VALUE SPACE.
001100 03 FILLER PIC 9(01) VALUE 2.
001200 PROCEDURE DIVISION.
001300 MOVE ‘HELLO, WORLD! 1’ TO HELLO1.
001400 DISPLAY HELLO1.
001500 DISPLAY HELLO2.
001600 STOP RUN.

出力 HELLO, WORLD! 1
HELLO, WORLD! 2


実例3 (Fizz Buzz)
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. FIZZBUZZ.
000300 DATA DIVISION.
000400 WORKING-STORAGE SECTION.
000500 01 I PIC 9(3).
000600 PROCEDURE DIVISION.
000700 PERFORM VARYING I FROM 1 BY 1 UNTIL I > 100
000800 EVALUATE FUNCTION MOD(I 3) = ZERO
000900 ALSO FUNCTION MOD(I 5) = ZERO
001000 WHEN TRUE ALSO TRUE
001100 DISPLAY ‘FIZZBUZZ’
001200 WHEN TRUE ALSO FALSE
001300 DISPLAY ‘FIZZ’
001400 WHEN FALSE ALSO TRUE
001500 DISPLAY ‘BUZZ’
001600 WHEN OTHER
001700 DISPLAY I(3 – FUNCTION INTEGER(FUNCTION LOG10(I)):)
001800 END-EVALUATE
001900 END-PERFORM.
002000 STOP RUN.

出力

1
2
FIZZ
4
BUZZ
FIZZ
7
8
FIZZ
BUZZ
11
 (中略)
FIZZBUZZ
91
92
FIZZ
94
BUZZ
FIZZ
97
98
FIZZ
BUZZ』