こんにちは。
今日は、あなたは何のプログラミング言語を学ぶべきか。
ということについて、お伝えします。
「複数の言語を学んでみたらいい」という意見
いろんな上級者のプログラマの人の意見に、こういうものがありますよね。「複数の言語を学べばその特徴をいろいろ学ぶことができるので、とても勉強になる。」
もちろん、そりゃいいでしょう。時間も無限にあって、労力も無限にあって、自在になんでも学ぶことができる人ならば。だけど、物事は最短で最小のエネルギーで最大限の効果をうむような結果をだしたいものなわけです。
まず、何かの言語を覚えることが先決です。そうして中級者までになれば、あとは自由です。「複数の言語を学んでみたらいい」というのは、たぶん中級者に向けての上級者からの格言です。これからプログラマになっていこうとする人が、聞く必要はなさそうに思います。
最初のとっかかりが一番たいへんですからね。そこをサポートしてきたいと思っています。
で、結論
いきなり結論ですが、このサイトでは、JavaScriptを推薦します。極めて押し付けるくらいに、JavaScriptを学べと思いますので、そのための教材を書いていくつもりです。
なぜでしょうか。
私自身が JavaScript を自分の中で最も力をかけるべき言語として選択しているので、それが得意だ。ということはあるのですが、自分本位で記事を書いているわけではないですよ。みなさんのためにも、JavaScriptを選択するのが最良だと思います。
数ある言語の中でも、JavaScriptが圧倒的に最強だからです。なぜ、JavaScriptを選択したのか、他の言語はどうなのか、なぜ JavaScript が最強なのか、ということを書きます。
まず Java と JavaScript は違います。
違うんです!
「メロン」と「メロンパン」くらいに中身が違います!
同じ食べ物だけれども!それは違う!
「ハム」と「ハムスター」くらいに中身が違います!
食べ物ですらない違いがあります!
つまり、Java と JavaScript というのは、同じプログラミング言語で、どちらも有名なのですが、何も似通っているところがない、みたいに違うものなんです。
どうやら、言語が作られたときには中身は似ても似つかないけれども、はやらせるために名前を拝借したという関連性はあるみたいです。
まあ、あまりどうでもいい話です。言語名に重要な意味があるわけではないです。「何ができるのか」というところが重要なんです。
JavaScript(=JS)、そして、それ以外の言語。
JavaScriptとは、ブラウザ上で動くプログラミング言語です。JSと略されます。
開発の現場で使われる言語はたくさんあります。特に業界として仕事がどっさりあるWebプログラミング業界について考えてみます。
C/C++ や、Go 言語も使われているとは思いますが、Web系でもなくサーバーサイドの高速計算で使われることが多いので、まぜないでおきました、積極的に一番はじめに学ぶ理由はないからです。
また、流行り物として、Swift や Kotlin もありますが、これらは iPhone や Android アプリをつくるための言語なので、Webアプリ、Webサービスへの展開が難しいために、使用用途がかぎられます。学ぶのに最適なわけではないので、はぶいておきます。
CoffeeScript や TypeScript などの、JavaScript を拡張した、AltJS とよばれる分野の言語は、JavaScriptを学ばないといけなくなるので、これらもはぶきます。
というわけで、JavaScriptとの対抗馬として考えられるのは、次のようなものになります。
JavaScript/PHP/Ruby/Python/Java/C#
JavaScript が、エンジニアに、これからなっていく人が学ぶのに最適な理由は、プログラミング言語としての将来性が最善だからです。学ぶことで最小限の労力で最大限の効果を生むようなパワフルな武器になるからです。実は他の言語では将来に渡るそのようなパワーがありません。
それらの言語を軽く説明していきます。あまり詳しくないので、説明が雑なのはご容赦ください。
PHP
とてもメジャーで、WebアプリケーションをつくるならPHPが一番楽なはずです。しかし、言語の仕様が現代風ではないのと、使用していて「もっとこうできたらいいのに(他言語ならもっとよくできているのに)」という思いが重なるプログラミング言語と言われます。比較的簡易的なので誰もがすぐに学びやすい言語、となります。
有名なブログシステムWordPressでも使用されているので、学んで応用する場面はたくさんあります。誰もがすぐに学べる、という意味でメリットにみせかけられた、稼ぐためにはかなり大きなデメリットがあるので、選択するべき理由はないでしょう。あとで、そこの理由は[ITフリーランスとしての言語選択]で書いておきます。
Ruby
日本人が開発したプログラミング言語で、一時期はすごく人気がありました。PHPの対抗馬的なものとして、非常に書きやすいプログラミング言語だといわれています。Ruby On Railsというフレームワークと組み合わせて使うと、楽に掲示板やチャットや、何やかんやが作れるということで生産性が早いという噂でした。
Rubyで作られたプログラムは処理時間を高速化できないというのが、デメリットでしたが、使いやすいゆえに開発時間が短くなるという理由で上級者エンジニアに積極的に用いられていたようです。
上級者が喜んで使っているということで、数年前には高収入を得られる仕事は多かった様子ですが、いまはそうではなくなってきています。Pythonに人気がうつってしまったのかもしれません。
自分が一時のブームにまどわされて「これからはRubyだ!」みたいな思い込みをしなくて、よかったな、と思います。
日本初というのは応援したい気持ちはありますが、ビジネスとしてとらえると、ドライな目も持ちながらプログラミング言語の選択もしなければいけません。
Python
2018年現在、非常に人気のでている言語です。書きやすくて素晴らしい言語のようです。しかし、書きやすいというのはメリットにはならないのと、数年後、かつてのRubyのように人気が下降しそうなので、私は選択しませんし、おすすめもしません。
もしかしたら更に成長するのかもしれませんが、[JavaScript以外のWeb系言語のデメリット]があるので、やはり将来の学習時間の投資には躊躇します。
とはいえ、JavaScript の次に選択しても、まだ間違いのない言語かもしれません。
Java
大手の会社が採用している言語のため、市場にも仕事は多くあり、使用するプログラマも多くいますが、最新の技術としてもりあがっているわけでもないので、この言語を選択する理由はほとんどないです。
アンドロイドのメインの開発言語ですが、Kotlinという言語にその地位をおびやかされているような気もします。
C#
最近はLinuxやMacでも動くようなものになってきており、AndroidやiPhoneでも動くような仕組みが整備されているようですが、やはりメインはWindowsなので、Web系のプログラミング言語としてはあまり使われていません。また、使える技術者が多いということも、デメリットしかありません。
Unityと組み合わせてゲームをつくるときは、とてもメリットがあります。
続きはWebで。
なんか、いろいろ書き足りない内容がでてきましたので、次の記事、次の次の記事あたりに続けます。
学ぶのが容易な言語、使える技術者が多いというデメリット=ITフリーランスとしての言語選択 | プログラミングアカデミー ゼロプラスワン
JavaScriptがいかにパワフルな言語なのか=JS以外のWeb系言語のデメリット | プログラミングアカデミー ゼロプラスワン