2021年にプログラム言語を勉強するとしたら、何がいいのか考えてみた - 第1話:プログラミング言語網羅編
Goldrush Computingの仕事をしていると、インターンや、若い人にプログラミングを勉強したい時に何から始めたらいいか聞かれたり、助言したりする機会があります。
私はエンジニアとして他のエンジニアと差別化できる部分はあまりないのですが、
Java, Assembly, C、C#、Objective-C、Swift、Kotlin、Python、Javascript、という9言語のプログラミングができること
と
本1冊から独力でプログラミングを習得した
という2点のバックグラウンドから、この問いに関してはアドバイスできることが多く、アドバイスした若者から「この内容を知りたい人はもっといると思いますよ」といういいアドバイスを逆にもらったので、Noteにまとめてみることにしました。
これ以降の内容は、
あくまで私個人の感想
ではあるものの、今、2021年にプログラミングを勉強し始める場合、どういう道があると私が思っているのか、4話に渡って書いてみたいと思います。
(私が何者であるかは、こちら↓↓↓にざっくりと書いてあります)
まず第1話は
どの言語で何が作れるのか?
をテーマに、私が知っている限りの言語とその使い道を網羅していきます!
Swift
Apple社が開発した言語です。”スウィフト”と読みます。
iPhoneアプリ、iPadアプリ、Macアプリ、Apple Watchアプリ、Apple TVアプリを作ることができます。
Apple製品以外で動作するアプリなどは作ることはできませんが、Appleの美しい製品群で動くアプリを作ることができる魅力的な言語です。
Appleが開発に必要なツールをすべて無償提供しています。(ただし作ったアプリをAppStoreで公開するには、有料のアップルディベロッパープログラムに入る必要があります。)
Appleが言語や開発ツールをすべて管理していて、”他の人がSwift言語や開発ツールの亜種を作ることがない”ため、一度覚えた言語、開発ツールを長年使って開発を続けられるのが魅力だと私は思っています。
文法もモダンで、書きやすく、個人的には好きな言語です。
Kotlin
”コトリン”と読みます。元々はサーバーのプログラムを開発するために造られましたが、後にGoogleによって、Androidアプリを作る言語として採用されました。
Androidスマートフォンで動くアプリを作ることができます。
作ったアプリはGoogle Playで公開することができます。
こちらもSwiftと同じ用にGoogle社が開発に必要なツールを無償で提供しています。
(アプリをGoogle Playで公開するには、有料のディベロッパープログラムに入る必要があります。)
こちらもGoogleがしっかり管理していて、他者が似たような物を作れないようになっているので、一度覚えた言語と開発ツールのスキルを長年使い続けられる魅力があります。
Kotlinの文法は非常にモダンで、現代のプログラミング言語のいい部分がバランス良く入っています。私が最も好きな言語です。
Java
"ジャバ"といいます。2000年頃に人気を博した言語で、Kotlinができる前はAndroidアプリを作るために使われていました。現在もJavaを使ってAndroidアプリを作ることができます。
Javaはサーバー側のプログラムでも採用されていることが多く、Javaを覚えるとサーバープログラムを書くこともできます。
デメリットは、コードの行数が長くなりがちなので、プログラムを後から見返した時に読みにくいことです。
- Androidアプリが作れるが、近年はKotlinが主流になっている
- 大企業や銀行の機関システムで使われている
- ベンチャーなどのWebサービスでは使われなくなっている
現在のJavaの立ち位置は、大企業志向の言語かもしれません。
Objective-C
”オブジェクティブシー”と読みます。Swift言語が開発される前に、iPhoneアプリを作るために使われていた言語です。現在はSwfitが完全に主流となっているため、この言語を勉強する理由はほとんどなくなっていると思います。
C言語
”シーゲンゴ”と読みます。もっとも伝統のある言語です。
IOTデバイスやオペレーティングシステムなどハードウェアと直結して動作するプログラムはC言語で書かれることが多いです。
私はソニー・エリクソンで携帯電話を開発していたときに携帯電話のOS(オペレーティングシステム)の一部のハードウェアとやり取りをするプログラムをC言語で書いていました。
CPUやメモリ、レジスタなどのコンピューターの根幹を理解するのに一番よい言語です。
現在若い人がC言語を使う機会が多いのはIOTデバイスの開発だと思います。IOTデバイスの開発には、ARMやArduinoなどのマイクロチップが使われていて、これらのチップで動作をするプログラムを書くのにC言語を使います。
ArduinoはCPUの知識がなくても簡単にC言語でプログラムを書くことができるので初学者にはおすすめの環境です。
C#
"シーシャープ”と読みます。マイクロソフト社がJavaに対抗して作った言語です。Windows PCで動作するソフトを作ったり、UnityでゲームやVRアプリを作るために使います。
Unityを使いたい人は必ず必要になる言語です。
Python
”パイソン”と読みます。もともとはプログラミング教育のために造られた言語で、誰が書いても同じように見えるコードになることから非常に読みやすい言語です。
サーバーサイドのプログラムを作るのに使われます。
機械学習のプログラムを作るためにも使われます。
サーバーサイドのプログラムを作るためには他の言語の選択肢も豊富にありますが、機械学習のプログラムを作るためには2020年現在、必須の言語と言っていいでしょう。配列や行列データを表現したり計算したりするのに非常に便利な言語で、動作速度も早いことが機械学習で使われている理由です。
Javascript
フロントエンドとサーバーサイドのプログラムを作ることができます。(フロントエンドの説明はすぐ下のグレーのボックスを見てください。)
サーバーサイドのプログラムはnode.js(ノードジェイエス)というフレームワークを使って作ります。
フロントエンドは、Vue.js(ビュージェイエス)、React.js(リアクトジェイエス)、Angular(アンギュラー)などのフレームワークを使って作れます。
Javascriptのメリットは、学習がしやすい、試してみやすい、ことと、サーバー、フロントエンド両方で使えることです。
デメリットは、フレームワークや開発ツールのトレンドがものすごく速く変わって行くため、毎年新しいものを勉強していかないと、言語だけ知っていてもものが作れなくなってしまうことです。
HTML / CSS
HTML(エイチティーエムエル)、CSS(シーエスエス)はプログラミング言語ではありません。これらはWebページの”見た目”を記述する言語でマークアップ言語と呼ばれています。高度なロジックなどを書くことはできないため、プログラミング言語とは別の扱いですが、先述のフロントエンドのプログラムを作る上でのこの2つの知識は見た目を作る上で必須となりますので、セットで覚える必要があります。
その他の言語
これ以降紹介する3つの言語は私が使っていないので、細かな評価はできませんが、私の知っている範囲で”感想”を述べたいと思います。
Ruby
Ruby on Rails(ルビーオンレイルズと読みます)というフレームワークを使ってサーバーのプログラムを作ることができます。非常に人気の高い言語で、Webアプリ側も同時に作れるためWebサービスを高速で作ることができるという強みがあります。
PHP
ピーエイチピーと読みます。Laravel(ララベル) というフレームワークを使うと、Ruby On Railsと同じ強みがあり、Webサービスを高速で作ることができます。こちらも近年非常に人気があります。
Go
”ゴー”と読みます。近年、若いエンジニアの間で人気の言語です。サーバーサイドのプログラムを作ることができます。Goで作ったサーバーのプログラムはコンパイルという工程を経ているため、動作が速く、また色々なサーバーに移しやすいという”持ち運びやすさ”もGoの人気だと私は思っています。
以上、各言語の使いみち、特徴を個人的な見解ですが、網羅的にまとめてみました!
まとめ
もう一度、使いみちの観点からこれらの言語をまとめてみます。
以上、2021年現在どういうプログラミング言語があるのかをまとめてみました。プログラミング言語は実はこれだけではなく、まだまだたくさんあります。
2021年現在、私が使っているもの、私の周りで使われているものを中心に取り上げてみました。
次回は、各プログラミング言語の似ている度をテーマにしてみたいと思います。1つ以上の言語を学ぶ際に、似ている言語は学習がしやすいため、長期的な学習の指針になればと思って、このような内容を予定しています。
御清覧ありがとうございました!
第2話はこちら↓↓↓
この記事が気に入ったらサポートをしてみませんか?