Stack Overflowのプログラミング言語ランキング発表
プログラミングやテクノロジーのユーザーベースQ&AサイトのStackOverflowのユーザーアンケート調査結果が発表されました。
調査された地域
この調査は世界的に行われましたが、回答数はアメリカ・インドが多く第一言語もしくは英語が日常的に利用されている地域での回答数が多くなっています。
アメリカの15,288人に対し、日本からは429人のみとなっているためこの調査結果は日本市場を反映していない可能性があります。
人気のあるプログラミング言語
このデータではプログラミング言語だけでなく、HTMLやSQLも含まれています。
ここのところずっとJavaScriptがトップになる状況が続いていますが、今年もその状況には変化が無いようです。
またPython,Javaなどの言語もかなり利用されていますが、JavaScript関連のNode.js/TypeScriptもかなり上位にランクインしているためJavaScript関連は非常に安定しているように思います。
Loved or Dreaded
ユーザーが好みの言語として一番高かったのはRustとなりました。
また上位にはTypeScript,Python,Swift,Node.jsも入っており、これらの上位言語は利用している開発者の好みの言語であることもわかります。
Javaはおよそ半数がDreaded(嫌いである)結果となっています。
Javaは非常に多くのシステムで利用されているため仕事面ではまだまだ安定している状況と言えますが、今後はこれまで通り減少傾向が続くものと思います。
ちなみに今回の最下位はCOBOLとなり、VBAに続きあまり使いたくないと考えている開発者が多くいる事がわかります。
下位に入っている言語ではすでに発生していますが、不人気言語で作られているシステムでは求めている人材を確保するのはかなり困難な状況となります。会社としても言語が不人気化しエンジニアが去る前に、他の代替言語へ変更する必要があります。
データベース
このアンケートではどのようなタイプのデータベースか限定していないため、MySQL, SQLite そして DynamoDBのような用途が異なるものも含まれています。
MySQLが半数を占め人気の高さがあります。しかし、個人的にMySQLとほぼ互換と考えても良いMariaDBも17%となかなか健闘しています。
- MySQLの派生データベース
- 元々のMySQL作者あるミカエル・ウィデニウスさんにより開発
- GPL v2ライセンス
- MySQLからの移行先にMariaDBを採用する例も多い
個人的にはDynamoDB等の利用もすすんでおり、クラウドネィテブ型アプリケーションの開発が多く行われたためと思います。
Loved or Dreaded
Redis と PostgreSQL がほぼ同一でトップにランクインしています。
Redisはインメモリデータベースでキーに対して値を持つ、Key ValueタイプのDBで、特徴はメモリ上にデータが載っているため高速です。
しかし、インメモリDBであるため障害や電源断によりデータをロストする可能性があります。
インメモリDBのデータロスト対策として、全コマンドを記録する設定も可能ですがディスクアクセスを伴うためメリットを失う事になります。
利用ではNo.1だったMySQLですが、ほぼ半数がDreaded(使いたくない)と考えている結果となりました。
クラウド・プラットフォーム
AWSが今年も他社を引き離していますが徐々に2位以下が迫ってきています。
GCP/Azureはほぼ同等となりシェア争いが激化している状況となっています。
後発のOracle Cloud Infrastructureも 1.89%を獲得しタイミングを考えるとなかなか善戦しているように思いますが、どこまで上位クラウドサービスに食い込む事が出来るかはまだ未知数です。
Oracle Cloud Infrastructureはシェア獲得のためか、非常に寛大な無料利用枠が設定されています。このサイト自体もOCI上の無料枠で運営を行っています。
クラウドサービスはシェア争いも激しいため、圧倒的なコストパフォーマンスとなっています。そのためコスト面でオンプレミスを採用するメリットはほぼなくなりつつあります。
自前で用意したハードウェアにより構築する従来からのサーバー設置・運営方法。例えばサーバーのハードウェア故障で停止した際に自前で復旧する必要があるが、予備ハードウェアや人員の確保などが必要となる。オンプレと略される場合もある。
Loved or Dreaded
AWSがこちらでもトップとなり、他社より一歩進んだ結果となりました。
オススメのクラウドサービスを聞かれたらAWSと答えます。それほどにAWSはサービスの種類・質ともにトップであるように思います。
しかし、他社にも便利なサービスがありサービス利用は適材適所で行う必要があります。
Webフレームワーク
このフレームワークにはサーバー側とクライアント側が混在したものとなっています。
React.jsに続きjQueryが入っています。
多数のフレームワークや仕組みからjQueryから脱却する動きがある中、まだまだjQueryは多用されてる状況があります。
利用されているツール
ソースコード管理のGitは完全に普及しきった感があります。
またDockerの利用も多いため、これらを利用できることは開発者として当然の状況となりました。
利用されている開発環境
Visual Studio Codeが完全に引き離しています。VS Codeは実際使ってみると便利であるためこの結果となることも十分理解できます。
またVimも上位5位に入るなど、根強く利用しているユーザーがいることを示唆しています。
ベテランエンジニアの方は昔からVimを利用されている方も多く、以前は Vimか Emacsかで議論になることもよくありました。
Emacsを利用しているユーザーは減ったものの、着実にバージョンアップも重ねており愛されているソフトウェアのひとつになります。
利用OS
回答を行った全てのユーザーと開発者のみで比較した場合と若干異なる結果となっています。
開発者と、開発者以外で異なる面白い結果となりました。
Windowsがどのような状況でも利用されていることは間違いないですが、開発者に限った場合はmacOSが2位となり、macOSは開発者に利用されやすいOSとなっているようです。
私自身macOSを利用していますが、ソフトウェアがどうしてもWindowsでなければいけないといった状況は年々減っています。
プログラミングを始めた年齢
11歳~17歳ではじめてコードを書いたユーザーが最多の53%となっています。
このアンケート結果によると、64歳以上ではじめてコードを書いた方もいらっしゃいます。学習リソース
およそ60%のユーザーが動画やブログ記事などを元に学習を行っています。これは近年の傾向として動画を学習媒体にする開発者が増えている事と一致します。
年齢別に見ると、若い人ほど動画の比率が高く、年齢が高くなるにつれ本による学習が増えています。
本は動画やブログ記事に対して、体系的にまとめられている場合が多く本と目的が合っている場合は選択肢として良いものです。しかし、ピンポイントで何かを学習したい場合は動画の方が理解しやすい場合も多くあります。
これはITに限らず他の業界でも似たような傾向があるように思います。
学歴
デベロッパーとして活躍されている方の学歴は60%以上が大学もしくは大学院卒となっています。
もりしーは専門学校卒なのでかなり少数派でした。実際ほとんどお会いする事も無いので少ないとは思っていましたが・・・
職業としてのプログラマー
1年以下の新人は全体の5%未満ですが、4年目までの合計はおよそ35%となり、プログラマーとしてお仕事をしているおよそ3人に1人が4年目になります。
プログラミング歴10年以上もおよそ30%となっているため、新人とベテランの比率はほぼ同じとなり、2021年においてもプログラマーは比較的参入しやすい業界であると言えます。
年齢
このグラフでは"Professional Developers"(職業として開発者をしている)を表示しています。
およそ半数のデベロッパーは25~35歳となっています。
しかし、35歳以上のデベロッパーもおよそ30%、そして45歳以上の方も10%ほどとなるため開発者としてキャリアを進める事も可能であることがわかります。
日本はキャリアの選択肢として、PMなどへの管理側キャリアパスしか用意されていない場合もあり、世界と比べた場合特殊な労働環境となっています。
性別
男性が90%以上を占めており、日本に限らず世界的にも男性に偏っています。
メンタルヘルス
調査に参加したユーザーの10人に一人が不安を抱えている状況となっています。また感情の起伏が激しいムードディスオーダー(この調査では鬱や双極性障害を含む)を抱えている方を合わせると2割近い方が何らかの問題を抱えています。
ASDの確率が高い
2016年のアメリカの調査結果と比較すると人口あたり1.8% がASDと診断されていることに対し、Stack Overflowの調査ではおよそ 2倍の 3.7%がASDと回答しています。
これは職業に必要とされる特性がASDの特性とマッチしている場合があるためと考えられます。
ASDはAutism spectrum disorderの略で、spectrumというのは大きな差があることを示しています。そのためASDと診断されていても以下は当てはまらない場合があります。
- あいまいなことを理解するのが苦手
- 特定の物事やルールに強いこだわりを示す
- ひとつの物事に集中しすぎる場合がある
- 非常に強い記憶力を発揮する
もりしー自身もASDですが、お仕事でASDの方を何名も見かけた事があります。ASDであってもトレーニング次第では擬態が可能なので気が付かれない場合も多々あります。
困った時どうするか?
プログラミングやお仕事において、詰まってしまうことはよくあります。その際にどのような方法で解決しているか集計されています。
Google検索が1位となっており、開発者のスキルのひとつとしてサーチエンジンをうまく使いこなして問題解決を行う事が浮き彫りになりました。
プログラミングで詰まった時公式サイトを見ましょう。ほとんどの場合公式ドキュメントに記載があります。
その他の調査
他にも有名な調査として GitHub が行っている octoverse があります。
References
- Stack Overflow Developer Survery 2021 https://insights.stackoverflow.com/survey/2021
- 自閉スペクトラム症の子どもの特性 https://www.smilenavigator.jp/asd/abc/02.html