2017年2月21日火曜日

需要No. 1言語はどれ? 2016年度人気プログラミング言語を徹底比較 | ReadWrite[日本版]

需要No. 1言語はどれ? 2016年度人気プログラミング言語を徹底比較 | ReadWrite[日本版]:

 今回は人気のプログラミング言語について、Codementorのブログ記事の日本語訳を元に、自分なりの見方を紹介してみたいと思います。

1.動的プログラム言語
 動的というのは型が動的という意味ですが、変数には数値も文字列もなんでも入るという、良く言えば融通が効いて開発効率の高い、悪く言えばバグの出やすく保守が難しい言語です。
(1)JavaScript
 JavaScriptは主としてブラウザ上で動かすプログラムですが、実際にはブラウザの種類によってうまく動いたり動かなかったりすることがあって、ちょっと扱いづらいというのが自分の印象です。ブラウザ上で動く初心者向けという印象ですが、シングルスレッドなのにイベントドリブンのプログラムが書けたり、クロージャーがかなり主役級の働きをするので、自分は意外に初心者には難しい言語なんじゃないかと思います。

(2)Ruby
 RubyはRuby on Railsというフレームワークとほぼ同義と思ってもいいくらいですが、実は自分はRubyを触ったことがありません。読み書きしやすいというイメージが語られていますが、まつもとゆきひろ氏が開発した言語ということでも有名ですね。

(3)Python
 人工知能 (AI)関係の参考書は必ずと言っていいほどPythonでサンプルが書いてあり、AIの技術者なら覚えておく必要がある言語です。他にも、NumPyなどのライブラリのおかげで行列計算や数学などアカデミックな分野との相性がいい印象で、最初に学ぶ言語としてもよく名前が挙がります。

(4)PHP
 実は自分はPHPも触ったことがないのですが、サーバーサイドのスクリプト言語で、実はほとんどのWebサイトはPHPで書かれていると言われているそうです。 

2.静的型付き言語
 プログラマーが指定した型以外は変数に入らない、良く言えば安定性が高くてバグが出づらい、悪く言えば敷居の高く初心者がとっつきにくい言語が静的型付き言語です。自分は仕事として製品版プログラムを書くことが多いので、どちらかというと静的型付き言語の方が使いやすいイメージがあります。
(1)Java
 自分が仕事で使うメインの言語で、Androidアプリの開発言語としても有名ですし、サーバーサイドプログラムの代表的言語でもあります。企業のITシステムで使用されることが多く、デザインパターンや各種フレームワークなど裾野の広い言語なので、本当の意味でJavaを使いこなすにはそれなりの時間がかかる印象です。ただ、自分としてはレベルの高いプログラマーが書いたJavaのプログラムは読みやすく、メンテナンスもしやすい印象です。

(2)C
 Cはシステム用の言語として、古くからある基本的な言語です。コンピュータ言語のアセンブラを人間が読めるレベルの言語でラップしたような存在で、メモリーやスレッド・ファイル・ソケットなどのリソースを直接操作でき、最も効率がよく速いプログラムを書くことができます。Javaや C++・C#など多くの言語の元になっていて、Cがしっかり使えるプログラマーなら他の言語も容易に習得できるので、食いっぱぐれがないのではないかと思います。

(3)Objective-C / Swift
 完全にiOS向けの言語で、実は自分はいずれも触ったことがありません。これから学ぶならAppleの最新言語Swiftと言う人もいますし、やっぱり基本はObjective-Cと言う人もいるようです。

(4)C++
 C言語にオブジェクト指向を組み込んだ言語で、システム用にもよく使用されます。Cはアセンブラに皮1枚被せただけと言う印象なのに対して、C++はもう少し人間が取り扱いやすいようにしていますが、それでも所々にCの「生」の部分が見え隠れします。自分の印象としては、JavaやC#などがAT車のようなものなのに対して、CとC++はマニュアル車のような存在です。

(5)C#
 マイクロソフトがJavaへの対抗として開発した言語ですが、最近ではWindowsだけでなくiOSやAndroid向けのネイティブモバイルアプリにも使用できるようになりました。Javaより後発なので、その分Javaの欠点を修正してきておりかつ早くからラムダ式というクロージャーにも対応したり短いプログラムで高度な処理ができたりするので、1人で短い工程しかない時に使いたい言語です。一方で、マイクロソフトの開発言語だからか何となく過小評価されている印象なのと、自由度が高くて様々なシンタックスシュガーがあるので覚えることも多く、他の人が書いたプログラムをメンテナンスするのは意外に難しい印象です。

 自分が普段仕事で使うのは、サーバーサイドはJava、Windows用のツールやサービス類C#です。他にもクライアントサイドはJavaScriptですが、JavaやC#が自信を持って書けるのに対して、JavaScriptはいまだに手探りで書いている印象です。他にもCやC++も昔は使用していましたが、最近ではあまり使わなくなってしまいました。それでもCとC++を知ってるおかげで、他の言語の習得がしやすいような気がするので、初心者から中級者への階段を登るにはCかC++を身につけるといい気がします。

 さて、昨年の各言語の人気投票ですが、相互支援の場として世界中の技術者に使用されている最大のコミュニティStackOverflowのフォロワー数で人気を測った結果が↓です。JavaScriptがJavaを抜いてトップ(JavaScriptとJavaは完全に別の言語です、念のため)ですが、これらのワンツーフィニッシュはある意味予想通りで、自分の印象としてはC#とPythonが躍進している気がします。では最初に学ぶプログラム言語は何がいいかというと、個人的にクロージャーが処理の主役になるJavaScriptは最初に学ぶには難しく、JavaやC#などのオブジェクト指向言語もまた独特の概念があるので最初はキツいでしょう。初心者がまず学ぶといいのは、やはりPythonかなと思います。

ブログランキングに参加しています。よろしければポチッとご協力をお願いします

0 件のコメント:

コメントを投稿