どの言語を学べばよいか。
僕は月並みなことしか答えられません。
何より僕が一番その答えを欲しています。
最近、統計や機械学習の勢いはすごいからPythonが良いんじゃない?
真剣に統計やりたいんならRから入らないと・・・ライブラリも充実してるし。
最近GO言語ってのが流行ってるらしい。ちょっと興味あるよね。
そういや昔Rubyってのよく聞いたよね。やっぱ国産(出雲の島根県)だし覚えておくべきかな。
iOSのアプリを開発したかったらObjective C++をやらないとね。
Appleはもうアレかも。Androidの方が良いよ。やっぱJavaでしょ
でも複数のプラットフォームに対応しているからXamarinなんてどう?
最近GoogleがKotolinっての出したらしいよ。やってみたら面白いんじゃない?
そんな感覚的な答えはもう要りません。
ちょっとGitHubに聞いてみます。
調査条件
2007年~2020年までの各年に作成されたリポジトリでスター獲得数が上位の100件ずつを抽出します。
(2000年から抽出したけど2007年からしかデータがなかった)
使用するAPI
2007-2020まで順番に接続します。
以下は2020年の例です。
https://api.github.com/search/repositories?q=created:2020-01-01..2020-12-31&stars:>0&sort=stars&order=desc&page=1&per_page=100
結果として戻ってくるlanguageを集計していきます。
対象期間に使用されていた言語一覧とランキング
結構たくさんあります。
Noneはただの記事でソフトウェアではありません。無視します。
パッと見ですが、JavaScriptがダントツですね。
噂通りPythonも人気なご様子。
残りの寿命を考えたらちょっと多すぎるのでTop10以下は無視します。
– | language | count |
---|---|---|
0 | JavaScript | 329 |
1 | Python | 144 |
2 | None | 129 |
3 | Ruby | 88 |
4 | Java | 79 |
5 | Go | 70 |
6 | C++ | 60 |
7 | TypeScript | 58 |
8 | C | 40 |
9 | HTML | 33 |
10 | Shell | 30 |
11 | PHP | 30 |
12 | Jupyter Notebook | 28 |
13 | CSS | 26 |
14 | Swift | 21 |
15 | Objective-C | 21 |
16 | Rust | 14 |
17 | Vim script | 13 |
18 | C# | 11 |
19 | Vue | 10 |
20 | Dart | 7 |
21 | Kotlin | 6 |
22 | Scala | 6 |
23 | CoffeeScript | 4 |
24 | Clojure | 4 |
25 | Perl | 3 |
26 | Objective-C++ | 3 |
27 | Assembly | 3 |
28 | Lua | 3 |
29 | Haskell | 3 |
30 | Emacs Lisp | 3 |
31 | Makefile | 2 |
32 | VimL | 2 |
33 | Dockerfile | 2 |
34 | TeX | 2 |
35 | Erlang | 1 |
36 | Crystal | 1 |
37 | Elixir | 1 |
38 | Standard ML | 1 |
39 | OCaml | 1 |
40 | GLSL | 1 |
41 | Nim | 1 |
42 | Rich Text Format | 1 |
43 | R | 1 |
44 | PowerShell | 1 |
45 | Julia | 1 |
46 | Batchfile | 1 |
47 | Objective-J | 1 |
48 | Groovy | 1 |
年毎の開発言語使用数
さっきのTOP10に絞り込んでいます。
language | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
JavaScript | 0 | 12 | 16 | 43 | 32 | 29 | 34 | 25 | 34 | 28 | 25 | 21 | 14 | 16 |
Python | 0 | 6 | 16 | 12 | 8 | 15 | 2 | 4 | 12 | 10 | 17 | 12 | 10 | 20 |
Ruby | 1 | 48 | 18 | 7 | 4 | 1 | 3 | 2 | 1 | 2 | 0 | 0 | 0 | 1 |
Java | 0 | 3 | 5 | 7 | 8 | 11 | 8 | 4 | 1 | 6 | 9 | 9 | 5 | 3 |
Go | 0 | 0 | 1 | 0 | 1 | 5 | 14 | 9 | 11 | 5 | 0 | 12 | 7 | 5 |
C++ | 0 | 2 | 7 | 6 | 2 | 5 | 5 | 7 | 4 | 2 | 5 | 6 | 5 | 4 |
TypeScript | 0 | 0 | 1 | 1 | 1 | 1 | 4 | 3 | 9 | 7 | 8 | 4 | 8 | 11 |
C | 0 | 6 | 5 | 2 | 5 | 4 | 6 | 2 | 1 | 0 | 2 | 0 | 5 | 2 |
HTML | 0 | 2 | 1 | 1 | 3 | 4 | 1 | 1 | 5 | 2 | 3 | 1 | 4 | 5 |
Shell | 0 | 0 | 2 | 6 | 4 | 3 | 3 | 2 | 1 | 2 | 1 | 3 | 1 | 2 |
- JavaScriptがダントツです。しかし近年減少傾向にあります。
- Pythonはほぼ横這いか若干右肩上がりといったところです。
- 島根県(Ruby)は完全に右肩下がりですね。一発屋感がすごい。頑張れ国産!!
- Javaはほぼ横ばい。もう重鎮です。
- Goは一時跳ね上がってますが、ここ3年は減少傾向にあります。今日20/9/3時点ですので、年末にかけて伸びるかもしれませんが。
- C++はなかなかの安定感ですね。古くからのファンが多そうです。
- TypeScriptは右肩上がりです。気になります。
- C,HTML,Shellはもう殿堂入りでしょう。多くの言語のご先祖様です。
個人的な感想
JavaScriptがトップの不思議
僕には正直JavaScriptがトップというのが不思議です。
JavaScriptトップは予想通りみたいにおっしゃっているサイト様もあります。
理由が「Webだから」みたいな感じですが、ちょっと意味がわからない。
JavaScriptの昔話
僕にはJavaScriptはWeb開発のおまけ言語みたいな位置づけでした。
10年以上前になりますが、ブラウザは「JavaScriptはOFFにするのが当然」みたいな時期もありました。
開発する側としては書きづらいくせに使う方からすれば厄介者という。。。何だかなぁ。
Javaとはあんまり関係ないのにJavaScript。
途中で改名しやがるしホント何なん?コイツ。完全に宇宙人。
画面がダサい硬派な言語たち
案外JavaやらCやらC++やらC#といった硬派な言語ではチャラい画面やアニメーションをつくるのが苦手です。やろうと思えばできるけど・・・生産性は何とも言えません。
Python君も最近見直されてきてみんな新しい言語だと思ってるけど、かなり歴史は長い。
若作りのジジイです。あまりチャラい画面とかWeb開発は得意じゃなさそうな感じ。
そんなこんなで、JavaScriptは書きづらいけど必要な存在みたいな感じです。でした。
JavaScriptの最近
最近、風向きが変わります。
Node.jsの登場。コイツはチート。
Webの縛りを外しやがりました。
チャラ男がWebに限らずどこでも活躍できるようになっています。
さらにaltJSがやってくれます。
平たく言えばJavaScriptに変換される言語。TypeScriptが有名です。
JavaScriptの書きづらさを補ってくれます。
VisualStudioCodeなんて、ほとんどTypeScriptとJavaScriptです。
使用している言語を知りたければこちら – [GitHubサーベイ@プログラマーやめました]→終了しました
偉そうに語ってますけどGitHub調べてて最近知りました。
まとめ
JavaScript(ot TypeScript)を学べば大抵のことはできるようになっています。
しかしデータ分析に関してはPythonに軍配が上がります。
まぁ、この二つを抑えておけば大体はOKなのではないでしょうか。
環境構築の問題や日本語の情報量、習熟コストなど考慮すると初学者にはおススメはできませんが。
いずれにせよ、どの言語を学ぶかは要件次第です。
アセンブラやCOBOLの開発案件だって未だにあります。
おわり
コメントを残す