1 | Perl | 記法のクセが強く書きにくい。現在は使われなくなった。同じことはPythonでできる。 |
---|---|---|
2 | Ruby | 呪文のような記法。自由に書ける反面、他人は非常に読みにくい。Pythonの方が良い。 |
3 | Objective-C | 主にApple用。独特な記法。エラー、バグに繋がりやすい。現在はSwiftに置き換わる。 |
4 | VBA | 主な用途はExcelマクロ。用途が狭い。ExcelマクロはGoogle Apps Scriptに置き換わる。 |
5 | R | 一時期、データサイエンスの分野で大流行。用途が狭い。同じことはPythonでできる。 |
将来性のないプログラミング言語には、共通する特性があります。
- クセが強くて読みにくい。
- 用途が限られている。
読みにくい言語は開発コストを上げてしまいます。解読に余計な時間を要し、チーム全員が読めるように書き方を統一してわざわざルール整備していかなければならないからです。
用途が限られている言語は、汎用性の高い言語に駆逐されていきます。プログラミング言語でユーザーを囲い込む時代は終わりました。
最近のプログラミング言語の人気順位を見ると、OSに依存したプログラミング言語が嫌われはじめている傾向がはっきりと見えます。
この記事では、将来性のないプログラミング言語について、実際に書いた経験による考察を根拠に解説します。
-
プログラミング言語|おすすめは1Python2JavaScript3Java
Perl
最も学ぶ価値のないプログラミング言語はPerlです。
Perlがもてはやされたのは、インターネット黎明期にCGIスクリプトで多用された時期でした。
CGIスクリプトとは
ユーザーがウェブブラウザで要求したことに応じてサーバー側のプログラムを実行する仕組みです。そのプログラムに、手軽なPerlが向いていました。
CGIスクリプト(プログラム)の具体的な用途例は、掲示板やアクセスカウンターです。今どき目にすることはありません。何のことかわからない方も多いでしょう。
Perlの致命的な欠点は、文法の自由度の高さにあります。「自由なら書きやすいでしょ」と思うかもしれません。確かに自己流で書きやすい言語です。
しかし、自己流で書かれたコードは、他人にとって読みやすいものではありません。自己流プログラムの解読に時間を奪われる苦痛は、経験したことがある方ならわかってもらえるはずです。
自由で手軽なPerlは、個人が使うのに向いており、業務で使うのには向いていない言語だったわけです。
私の勤める会社では、当時の業務で使われていたであろうperlスクリプトがひょこり出てくることがあります。子供の頃に書いた日記をながめるような懐かしい気持ちになります。読みにくさも含めて。
Perlが息を吹き返すことはないでしょう。PHPやPythonで十分です。
Ruby
Rubyがいままで生き長らえてきたのは、偏にRuby on Railsの功労によります。逆に言えば、Ruby on RailsがなければRubyはもっと早くに見捨てられていたはずです。
Ruby on Railsとは
RubyでWebシステム開発するためのフレームワーク。パーツを組み合わせるように開発できる手軽さが好まれて、一時期は大流行した。
Rubyを書いた経験があり、Pythonも書いた経験があるプログラマーなら、Rubyの呪文のような言語仕様にうんざりするでしょう。
書き方の自由度が高いことが仇となり、他人のマイルールで書かれたプログラムは非常に読みにくいです。そのためRubyの開発現場では、書き方ルールの整備が必要となり、これが余計な開発コストになっています。
Rubyしか知らない人は、呪文を書くのが楽しく感じるかもしれません。しかし、Rubyの読みにくさは致命的であり、読みやすいPythonに座を奪われていきます。
すでにRubyで作られたプロダクトがたくさんあるため、今後もその保守の需要は続きます。ただ、新規開発で使われる機会が徐々に減っているのは事実です。TwitterもRubyを捨てました。
プログラミングスクールでは、Rubyを教えるところが多いです。Ruby on Railsが簡便なため、教える側にとっても都合が良いのです。未経験者でも挫折しにくいため、ウェブエンジニアへの近道なのは確かです。
Rubyを教えるプログラミングスクールを利用するときは、将来性をよく勘案するのが賢明です。私は将来性を強く疑っています。
Objective-C
Objective-Cは、AppleがMacOSに採用したことで、Appleのプロダクトとともに共存してきた言語です。
名前の通りC言語をベースに作られた言語です。C言語の処理速度の速さに加えて、オブジェクト指向プログラミングを実現した前衛的な仕様を持っています。
オブジェクト指向プログラミングとは
プログラムをオブジェクト(モノ)のごとく扱い、相関性で設計するプログラミング手法。しかし、仕様が甘いと無法化して、エラーやバグに繋がりやすくなる。
Objective-Cが惜しいのは、独特すぎる記法です。他のプログラミング言語を書いたことがあるプログラマーなら、Objective-Cの複雑難解なプログラムに違和感を感じるはずです。
プログラムが大きくなればなるほど、オブジェクト指向(特に継承)と相乗してバグによる不具合が出やすくなります。
私はスクリプト言語を好んでいますが、Objective-Cのプログラムがすぐエラーで止まることには嫌気がしました。しかもバグってる箇所を見つけにくい。
Apple自身もこの言語仕様の不味さに危機感を覚えたのか、標準的に読み書きしやすいプログラミング言語Swiftをリリースし、Objective-Cから乗り換えました。Swiftはインタプリタを用いて開発できるためバグを発見しやすく、実装時にはコンパイルして高速で実行できるという、仕様の優れた言語です。
SwiftがObjective-Cのマスクのような存在であるため、まだまだObjective-Cでなければできない部分はあります。しかし、このギャップも徐々に埋まっていくでしょう。
Objective-Cの需要が減っていくのは目に見えています。
VBA
VBA(Visual Basic for Applications)は、MicrosoftのOffice製品群のマクロ(自動処理)のために実装されている言語です。
マクロとは
コンピューターを自動処理させるためのプログラム。Excelを使う業務で「マクロ」という言葉を聞いたことがあるかもしれないが、マクロの実体がVBAプログラム。
Office製品にVBAの実行環境が付いているため、ExcelやAccessがインストールされていればVBAを使用できます。逆に言うと、使用できるのはOffice製品だけ。そのため、用途が狭すぎます。
さらに、製品仕様の詰めが甘いMicrosoftの体質よろしく、VBAの言語仕様はゆるゆるです。繰り返しや分岐には何通りもの書き方があり、書く人によってバラツキがあります。初心者が手を付けやすい言語ですが、初心者ほど単に処理を上から羅列する冗長なコードになりがちです。
限られた環境でしか動かない言語に学習コストをかけるのはもったいないことです。同じことができるなら、どんな環境でも動く言語の方が選ばれるのは至極当然のことです。
GoogleスプレッドシートのようなExcelに替わるアプリが主流になるとともに、VBAの需要がしぼんでいくのは自然な流れです。
Excelを業務フローに組み入れている企業は多くあるため、すぐに需要が無くなるわけではありません。しかし、VBAに学習コストをかけるくらいなら、同じように業務タスクを自動化できるPythonなどの汎用性の高い言語を学習するほうが未来は明るいです。
R
R(R言語とも)はデータ分析に長けた言語として、数年前に台頭した言語です。現在もデータ解析や統計などのデータサイエンス分野で多用されています。
データサイエンスとは
主にビッグデータを操作、集計して分析する科学分野のひとつ。現代の膨大な情報量をソースにして科学的・社会的な意義や価値を見出そうとする目的を持っている。
データ構造を簡便に記述できる文法を備えており、グラフ作成もできるため、データサイエンス分野の人ならR言語を学ぶ意義を感じるでしょう。
しかし、R言語の落とし穴はここにあります。この言語を使うことが便利だと感じる人はデータサイエンスを専門にする一部の人だけ。R言語でできることは、万能なPythonでもできてしまいます。
Pythonは、AIやデータサイエンスに使用されることで注目された言語ですが、用途はこれに限りません。YouTubeやInstagramなどのウェブアプリケーション、ファイル操作やExcel自動処理といった日常的業務タスクにまで、何にでも使える汎用性があります。
R言語の需要は、徐々にPythonに呑まれていくでしょう。
私はそもそもデータサイエンス分野の人間ではないので、R言語を最大限に活用するシーンを知りません。しかし、私のような一般人が、用途の限られたR言語を学ぶ意義はまったく感じません。
何にでも使えるPythonの方が学習コスパが良く、用途の狭いR言語のシェアは徐々にしぼんでいくでしょう。
まとめ
- 将来性の無いプログラミング言語は、Perl・Ruby・Objective-C・VBA・R。
- 将来性の無いプログラミング言語には、読みにくい。用途が限られている。という特性がある。
将来性が期待されるプログラミング言語
逆に、主要なプログラミング言語のうち将来性が期待されるのは、次の言語です。
- JavaScript:サーバー実行環境Node.jsやTypeScript、ウェブ開発用フレームワークVue.jsやライブラリReactなど利便性の高い進化を続けている。GoogleもGoogleAppsScriptに進化させてスプレッドシートなどのウェブサービスに用いている。
- Python:読みやすく書きやすい言語仕様が好まれ、ウェブアプリからAIまで幅広い分野で浸透している。ライブラリが豊富で何にでも化ける。YouTubeやInstagramもPythonのプロダクト。プログラミング言語の最終進化形。
- Java:もともと家電制御の組み込みプログラム用途で開発された言語。官公庁や金融機関など大規模システムにも使用される。Javaに替わる堅牢な言語が出てこない限り、既存プロダクトの保守も継続していくため需要は無くならない。
-
将来性の高いプログラミング言語を見極める【手に職で食いっぱぐれなし!】