2つ目にマスターしておくとよい言語とは?(弐)



さて前回の続きです。前回意外に多くの方が興味を持って下さったのは
少し
驚きでした。
今回はやりたい分野すなわち興味分野からです。
メインとなる言語である程度余裕ができたら興味のある分野に手を出し
たくなるのは当然でしょう。ここでは全ての興味に対して
記載すること
はできませんが、いくつか代表的なものについて触れてみます。
 
①ゲーム
ゲーム系は実はエンジンという開発フレームワークがあってそれが言語
そのものより優位になります。
勿論極めるにはエンジンに頼らなくても。。。ということが理想的には
ありですが、エンジンを選んで言語を
選ぶのが普通です。
 
・ゲーム系で使われるエンジン
Unity  UnrealEngine
 
ゲームのエンジンは開発フレームワークのようなもので、これさえあれ
ば言語の仕様を良く理解していなくても
ゲームが書けてしまうというも
ののようです。上記2エンジンの難点はあまりにも便利すぎてこれなし
書けなくなってしまう人が実は相当多いということです。

Unityはモバイル、ブラウザは圧倒的に使われています。言語はC#で
す。スクリプトもありますが、JavaScript
は最近サポートされなくなり
ました。
UnrealEngineはゲーム機が多いようですね。言語はC++です。これはか
なり古くからあるエンジンですね。
 
ほかにも結構ありますが、自分のやりたい分野で選べばよいと思います
 
ゲーム系で使われる言語4選
 C#  C++  Swift  JavaScript
 
上記の様にエンジンとの組み合わせで使うことが多いので、単独で論じ
ても仕方ありませんが、
C#ってマイクロソフトから出た言語で、出た
ときは微妙な感じでしたが、ゲーム界では圧倒的なシェアを握っていま
す。
これほど使われるのは身も蓋もない話ですが、Unityというゲーム界の
最強エンジンに対応しているからが大きいでしょう。
SwiftはSpriteKitというエンジンがあり、iOSプラットフォームでこちら
を使う方もいます。後述の通りSwiftはiOSアプリ開発での主要言語です
ので、こちらを使いたいという人もいます。
JavaScriptはいままでUnity対応していましたので、言語のやさしさもあ
ってかなり活用されて
いましたが、2017年にUnity非対応となってから
は価値が半減してしまいました。JavaScriptが使えるエンジンもありま
す。

C++はUnrealEngine に使われていますね。
 
特にどの分野と決めておらず単にゲームなら UnityーC# がいいでし
ょうね。
この組み合わせはものすごーい数の本が出ています。ネットの無料リソ
ースもかなり
あります。ゲームプログラミングの入り口となっているせ
いか「初心者向け」
といったネットリソースが多くあります。
 
②スマホアプリ



スマホアプリはシンプルで、AndroidならJavaまたはKotlin, iOSなら
SwiftかObjective-Cです。
 
Swift、Objective-CはiOSの開発言語ですが、SwiftはObjective-Cの後継
という位置づけです。
Objective-Cはかなり長ーい間iOSの公式開発言語だったため、資産が多
いですね。Swiftを学ぶにせよ、
Objective-Cは読めた方が良いというこ
とはあるでしょう。
Swiftは上記モバイルゲームでも使われています。モバイルならiPhone
ということでしたらSwiftで決まりでしょう。
 
Androidは現在Javaで書かれたアプリがかなり多いですが、前回の単価
の高い言語でもあったKotlin が
かなり評判がよく、猛追しています。
Kotlinで開発始めたらJavaに戻れないという話もあります


これみると本当?広告では?と思われがちですが、これは編集記事です。
AppleやGoogleに開発されたわけでもない(ジェットブレインズは
高名
なIDEを生み出している会社ですが)言語が8年でここまでなるのはそ
れなりの意味がありそうです。

Android開発を受注したからKotlinをガッツリ使ってみたら最高だった

の記事もあります。
 
前者の記事ではKotlinを学ぶことによってJavaの生産性があがったと断
言されおられますね。
なるほどと思います。Javaは基本として抑えてい
る方で、第二言語の特に分野を定めていない方
ならKotlinもよさそうで
すね。
 
③ 人工知能
 
これはPython1強です。この分野Python以外に協力ライバルがないのが
問題です。
 
強いて言えばデータサイエンティストご用達の言語Rは統計解析専用言
語で様々なライブラリ
を準備しており、それを使って人工知能プログラ
ミングを行うことが可能です。Rはデータ解析に
強力なコミュニティが
あり、単価の高い言語です。その延長線上でありといえるでしょう。
 
またJuliaという新進気鋭の人口知能、統計解析が得意なオープンソース
言語もありま
す。日本語のリソースがごくわずかでときどき勉強会はや
っているようです。
Juliaを使った開発案件など日本にはほとんどないでしょうが、これから
出てくるかもしれません。
 
さて今回は第二言語は第一言語の生産性を上げてくれるという視点がで
ました。
まあ生産性を上げるためには筋の良いコードを書くことが必要で、新し
い言語は
そう書いてもらうように色々仕掛けをしているところがありま
すね。
新しい言語を学ぶことは考えを学ぶことなので、40代でエンジニアの曲
がり角を迎える前に検討しておいた方がよいと思います。
 
次回は
~2つ目にマスターしておくとよい言語とは?(参)~ 言語種別 
関数型プログラミングです。