未分類

今からプログラミング学習するなら何の開発言語か?もうすぐ2019年春版

友人からプログラミングを始めたいけど何の言語がいいの?と聞かれたのでこれを期にまとめました。
初めて学習するものを選ぶ、ということに焦点を当てているのでできるだけ専門的な言い方を避け、どうしても必要な部分は簡単な説明をつけるようにしています。
1つ言語を習得すれば2つ目の学習コストはぐっとさがりますし、ある程度年数の経ったプログラマーは複数言語習得していることが多いので難しく考えすぎずに選びましょう。
大まかにはWeb系/アプリ系/業務系に分かれるのでやりたいものが決まっているならその分野の言語を選びましょう。
おすすめのものから順に記載します。

1位 python

機械学習を行う、いわゆるAIを作る際に最も適している言語。AIの利用はこれから間違いなく加速するので需要が確約されています。
ただし、学習する場合はいきなり機械学習ではなくまずはpythonでのプログラミングを学習することを強くおすすめします。
IDE(統合開発環境)と呼ばれるプログラムを快適に行うためのツールもpycharmが無料で使えたりと基本的なことをおさえやすいです。
(本題から逸れるのでここでは詳しく書きませんが、"カスタマイズしまくってIDEより便利にしたもの"を除きいわゆるただのテキストエディタでプログラムを書くのは不要なエラーを招き、実務上は当然ながらモチベーション維持やスキルアップするためのことを考えてもよろしくないです。)
おすすめ順1位ですが、2位に大きな差をつけての1位になります。
バージョン2系と3系で書き方に若干差があり互換性がありません。
昔からあるシステムの場合は2系をまだ使っているところもありますが、新しく始める場合は迷わず3系にしましょう。

2位 Javascript

Webページのフロント(ブラウザ上での動作するもの)はjavascriptのみなので独壇場です。また、NodeJsとしてサーバサイドでも使え、その他いろいろなところで使える万能言語になります。
こう書くとこれさえ覚えればなんでもできるようですが実際はちょっとずつ書き方が違ったりして結局のところ全く同じように全てできる、とはいきません。
また、フロントサイドのJSを書くと他と仕様がずれているMicrosoftのブラウザ、IE/Edgeにもれなく殺意を獲得することができます。
変化が早く、近年ではフロントで前まで主流だったjQueryを使った書き方も衰退をはじめ、ES6標準の書き方に移りつつあります。
ちなみにJavaという名前がついていますが後述のJavaとは全く関係がありません。

3位 php

Webページのバックエンド(サーバ側で動作するもの)用の言語です。今はWeb系の言語ができれば結果的に社内システムなども作成でき、適用範囲が広いので意外とつぶしが利きます。
エラーが出ないようによしなに解釈してくれるため"とりあえず動くもの"が簡単にかけます。
そのため比較的挫折しにくく、「プログラミングをやってみたいけれどモチベーションが続くかわからない」という方ならphpを学習してもらいたいです。
だだし、プログラムでのエラーというのは予想外の処理が走らないようにするために重要なものであり、適切なエラー処理を行えるようになるには他の言語とあまり変わらない習熟度が必要です。
簡単にかけるが故に他の言語より習熟度の低いうちからプログラマーとなれるため嫌う人もいます。また、同様に解決方法を調べる際も間違った記事が散見されます。
"簡単"ということが長所であり短所でもあるのがphpです。
なので2番目以降の言語としてはおすすめしにくいけれど入門の言語としてはおすすめできるという立ち位置になります。
他の言語でもそうですが特にphpを学習する際は"とりあえず動くものが作れる"で満足せずにちゃんとエラー処理が書けるようになることを心がけてください。

Kotlin

JetBrainsが開発した言語です。今はAndroidアプリの開発といえばこれになります。
日本ではiOS(iPhone)がAndroidをやや上回っていますが世界的には圧倒的にAndroidが多数です。
一応Android開発以外にも使えますが、現状はKotlinといえばAndroid開発がメインになります。
Kotlinに限りませんが、アプリ開発はAndroidとiOSで言語が異なるということや比較的新しい分野であるということから移り変わりが早く、AndroidとiOSを同時に開発するためのReactNativeやVueNative、Flutterや、Webページをアプリ化するPWAといった新しい技術もでてきています。
しかしながら、そういったものだけでは完結できずAndroid、iOSアプリは別々で開発せざるを得ないことが多いのが現状です。

Swift

iOSアプリの開発といえばこれです。開発にはMacのパソコンが必要です。
基本的にiOSアプリであればSwift、SwiftをやるならiOSアプリの開発になります。
iPhoneはAndroidと違いやすい端末がないのでお金払いのいいユーザが多く、ユーザ数の割に課金されやすいとされています。
ただし、ストアを介さなくとも一応アプリが出せるAndroidと違い、iOSアプリはApple様の厳しい審査通過が必須条件になります。その点は留意しておきましょう。

Dart

Googleにより開発された言語です。一度は衰退したものの、iOS/Androidアプリの同時開発を行うFlutterがDartを採用しているため注目を浴び始めています。そのため、Dartを学ぶというよりはFlutterを使ってのiOS/Android開発を学ぶという感覚の方が適切でしょう。

GO

Dart同様、世界最大にして最高峰のIT企業であるGoogleが開発した言語です。C++で不便なところを解消する目的で作られたとも言われています。
コードは指紋とも言われるほど同じ処理でも人により書き方には差がでるものですが、GO言語は記法を制限することにより人による記述の差を減らすことが試みられています。
比較的新しい言語になるので日本で採用している企業はまだ少ないですがアメリカを中心に評価が高く、海外進出を視野にいれているなら有力な選択肢になるでしょう。
日本でできるだけ早くプログラマーとして働きたい、という場合は選択肢の幅が狭く選びにくいところですが今後間違いなく伸びていく言語になります。
現在バージョン2が開発中とのこと。

Java

大型の業務用プログラムを組むといえばJavaが定番です。また、KotlinがでてくるまではAndroid開発もJavaでした。
ただ、書いたコードをプログラムとして動くものに変換するための"コンパイラ"が有償化騒動のさなかにあり、代替手段は用意されそうなものの若干の勢いの低下は免れ得ないと思われます。
とはいえすでにJavaで動いているプログラムの数は膨大であり、多少のことではJavaエンジニアが将来食いっぱぐれるということはまずありません。
また、歴史があり基本がしっかりしなていないとかけない言語なのでJavaがかければ他の言語に移る際も比較的低い学習コストで習得できるでしょう。

Ruby

よく(日本で)議論の的になる言語その2。日本生まれの言語ということもあり日本で人気。
現状はRuby on Rails というフレームワークが前提になっており、出た当初は画期的で注目を浴びました。
余談ですが、議論の的になりやすいということもあり今回この記事を書くにあたり最も裏取りをしたのがこのRuby。
「世界でも使われている」「日本で使われてるだけで世界では流行ってない」の2極的な意見がありますが、結果をいうと少なくとも現状では世界的に下火なようです。
日本語のドキュメント(解説)が多いという理由等で初学者に勧められることも多かったのですが、残念ながら近年で利用率の低下が最も大きい言語であるため特に目的がなければ今から学習する言語としてRubyを選ぶのはあまり得策ではなさそうです。(参考:https://findy-code.io/engineer-lab/github-programming-language-ranking)
個人的には日本生まれの言語なだけに応援したいのですが、そのためだけにプログラミング新人を送り込むのは憚られる程度には衰退の色が濃厚です。Railsのような革命がもう一度欲しいところですね。
現状日本では使っているところも少なくないが、新たなところでRubyが採用されることは少ないことを留意しておくこと。
あと、今回調べて初めて知りましたがRubyを教えている某スクールのステマ記事が多いですね。

Rust

インターネットブラウザFireFoxの開発をしているMozillaが開発した言語。
伸びている言語ではあるのですが使用シーンなどを考えるとC/C++から移行する人ならともかく初めてプログラミングを学ぶのであればGO言語を学ぶ方が幅が広がるかなといった印象になります。

C/C++

C言語はいわずとしれた低級言語です。"低級"というと悪いイメージをもつ人も多いかもしれませんが、プログラミング言語の場合はより機械に近い、パフォーマンス重視の書き方ができる言語という意味になり、優劣とは全く関係ありません。
コンピュータ性能の発達は凄まじく、C言語でなくても十分なパフォーマンスが発揮できるケースは増えていますが、それでもやはりパフォーマンスを重視する現場はなくなることはありません。他の言語でプログラムを書いている場合でもパフォーマンス重視の部分だけC言語でかかれたプログラムを呼び出す、ということも多いです。
ただしその分、他の言語では自動でやってくれることも自分で処理を書かなければいけないので難易度は高めです。
C++はC言語の拡張で、最初のうちはC言語を覚えた次のステップだと理解しておくとわかりやすいでしょう。

C#

C++を参考につくられたものでCの名前がついていますが似て非なるもの、書き方は似ていますが互換性はありません。
ゲームや3D分野などで最近ロゴを見かけることが増えた"Unity"はC#で書きます。

TypeScript

Microsoftが開発した言語です。コンパイルするとJavascriptになります。
Javascriptがまともに動かないIE/Edgeを開発しているMicrosoftが作るJavascript用の言語、というと不安にしかなりませんが割と人気です。

総括

プログラミング初学者向け、ということで今後伸びていく言語の評価を高めにしています。
調べた結果を割とそのまま書いてるので荒れかねませんが、当たり障りのないどれも良い言語ですよーという記事は読んでも困るだけだと思ったので。
また、こういう記事は自分が使っている言語を高い順位に持ってきているケースも多いですが、管理人はphpは最初に学んだ言語ですがjavascriptとpythonに関しては学んでいるから高い順位にしたのではなく「高い順位であると考えたから実際に学んだ」ので実際に行動に移すほど本気で重要だと考えていることを理解していただけると幸いです。
基本的にプログラミング言語は移り変わりがあるので、言語選びの際は更新日時が古いもの、具体的には3年以上前の記事はあまりあてにしない方がいいでしょう。いつ書いたかわからない記事はもっての外です。
また、今回改めて調べてわかったこととしては、求人サイトのものは「求人のデータに基づいている = 今求められているもの」が書いてあることが多いですが、プログラミングスクールの記事は"宣伝"なので実情を無視して生徒を入れたい言語を持ち上げる記事を書いていることが多いようですので言語選びの際は気をつけましょう。

-未分類

Copyright© F27P , 2021 All Rights Reserved Powered by AFFINGER5.