🔰
はじめてのプログラミング言語の選び方
概要
プログラミング言語を初めて勉強するときにどのように言語選定をすべきかを記事にしています。
当記事の対象読者はこれからプログラミングを始めようと思っている人です。プログラミング言語の選定基準の一つの見方を知ることができる記事となっています。
GAFAM各社が使用しているプログラミング言語から選ぶべき
結論から言いますとGAFAM各社が使用しているプログラミング言語から自分の目的にあったものを選ぶべきです。他にも色々考えるべき条件があるのですが、条件が多すぎるとよくわからなくなる可能性もあるので簡単に伝えます。
なぜGAFAM社で採用されているプログラミング言語を選ぶべきかというと世の中のITエンジニアの目標はGAFAM社に入ることにあり(すべての人ではないですが...)、そこを目指す人が勉強するため利用者が多くなります。利用者が多いということは情報源が多く勉強しやすい環境が整っているということです。またGAFAM自身が開発しているプログラミング言語もあるためプログラミング言語自身のバージョンアップも定期的に行われることが保証されているため、勉強したのにプログラミング言語が廃れて利用できる環境が無くなり役に立たなくなるといったことがなく安心です。
ただし、GAFAM各社で使用されているプログラミング言語は、非常に多岐にわたります。そのため、すべてのプログラミング言語を網羅することは現実的に困難ですが、一般的にGAFAMでよく利用されている言語や、各社の傾向について調査してまとめてみました。
GAFAM各社でよく利用されるプログラミング言語の例
言語 | 用途 |
---|---|
Python | データ分析、機械学習、Web開発など、幅広い分野で利用されています。 |
Java | 大規模なWebアプリケーションや企業システムの開発に多く利用されています。特に、GoogleのAndroidアプリ開発ではJavaが標準言語として採用されています。(現在はKotlinも利用されつつある) |
C++ | 高性能なシステムやゲーム開発に利用されます。Googleの検索エンジンやFacebookのニュースフィードなど、大規模なシステムの開発にもC++が用いられています。 |
JavaScript | Webフロントエンド開発の事実上の標準言語です。GAFAM各社とも、Webサービスのフロントエンド開発にJavaScriptを使用しています。 |
Go | Googleが開発したプログラミング言語で、並行処理やネットワークプログラミングに強みがあります。Googleのインフラやマイクロサービス開発に広く利用されています。 |
C# | Microsoftが開発したプログラミング言語で、Windowsアプリケーションやゲーム開発に多く利用されています。MicrosoftのクラウドプラットフォームAzureの開発にもC#が用いられています。 |
GAFAM各社の傾向
会社 | 利用傾向 |
---|---|
Python、Java、C++、Go、JavaScriptを積極的に利用しています。大規模なデータ処理や機械学習、インフラ開発など、幅広い分野で独自の技術を構築しています。 | |
Amazon | Java、C++、Python、JavaScriptに加え、AWSのサービス開発に特化した言語やツールも利用しています。クラウドサービスのスケーラビリティや信頼性を高めるための独自の技術を開発しています。 |
PHP、C++、Hack、JavaScriptなどを利用しています。大規模なソーシャルネットワークの構築に特化した技術を有しており、HackはFacebookが開発したPHPの派生言語です。 | |
Apple | Swift、Objective-C、C、C++などを利用しています。iOS/macOSアプリ開発に特化した言語やツールを開発しています。 |
Microsoft | C#、C++、JavaScript、TypeScriptなどを利用しています。Windowsアプリケーション、Office製品、Azureなどのクラウドサービス開発に特化した技術スタックを有しており、TypeScriptはMicrosoftが開発したJavaScriptの上位互換の言語です。 |
まとめ
以下に、目的にあったGAFAMでよく利用されているプログラミング言語のリストを記載していますので選定の際のインプットとしていただければ幸いです。
目的 | 言語 |
---|---|
AI(機械学習)開発 | Python。機械学習向けのライブラリが多いため開発が他の言語に比べ楽になります。 |
ゲーム開発 | C/C++。パフォーマンスが出るため速度を求められるゲーム開発に向いています。 |
企業の基幹システム開発 | Java or Go or C++ or C#の中からプロジェクト特性に合うものを選びください。SIerで働きたいならJavaでよいです。 |
Web開発 | JavaScriptがブラウザ上で動作する言語になるので必ず使用されます。AltJSと呼ばれる上位互換のTypeScriptやDartなども利用されることが多くなってきますのでJavaScript習得後に勉強することをオススメします。 |
モバイルアプリ(Android)開発 | Java or Kotlinのどちらが選択肢となります。Kotlinのほうがコーディングが楽のため、開発スピードがJavaよりも早くなりますが日本語情報源が少ないので英語が苦手な人はJavaで良いと思います。 |
モバイルアプリ(iOS) or macOSアプリ開発 | Swift or Objective-Cのどちらかが選択肢で、Swiftのほうが新しく開発された言語です。Appleの社員はほぼSwiftに移行しているらしいのでSwiftを選択すれば良いです。 |
Windowsアプリ開発 | C#が一番Windowsアプリの開発で使用されている言語で情報源も多いのでC#を選択すべきです。 |
Discussion