JetBrains 開発者サーベイから見る日本のソフトウェア開発(2020年版)

Masaru Horioka

こんにちは。JetBrains 堀岡です。

JetBrains では、近年世界中の開発者をターゲットとした「The State of Developer Ecosystem(開発者エコシステムの現状)」と呼ばれる年次サーベイを行っています。

2020年版の調査結果は以下のサイトで公開されています。

https://www.jetbrains.com/ja-jp/lp/devecosystem-2020/

この調査結果において、「世界とのトレンドは分かったが、日本のトレンドはどうなんだろう?」と興味を持たれた方もいるのではないでしょうか。

このブログポストでは、JetBrains のリサーチチーム の協力を得て、日本の開発者からの回答と、(日本以外の)世界の開発者から回答の比較を行います。加えて、考察(というよりは個人的な感想かもしれません)、 JetBrains 関連のトピックについても紹介します。

開発者の属性

今回の比較に用いられたサーベイの回答数は以下の通りです。

日本からの回答数:623

日本以外からの回答数: 19,073

JetBrains が主催する調査であるため、母集団および特定の質問に対する回答に一定の偏りがある可能性はありますが、回答数の多さを鑑みると、1つの統計結果としては意味のある興味深い内容であると思いますので、皆様にとって参考になれば幸いです。

それでは比較データを見ていきましょう。
サーベイの設問とそれに対する回答について、日本とそれ以外で比較をしていきます。
比較において差異が大きい回答に対して、ピンク色(World > Japan) および薄緑(World < Japan)でハイライトしています。

あなたの雇用形態は?

回答

World

Japan

差異

Fully employed by a company / organization

62%

66%

Student

16%

14%

Working student

9%

1%

****

Self-employed (a person earning income directly from their own business, trade, or profession)

5%

5%

Freelancer (a person pursuing a profession without a long-term commitment to any one employer)

5%

8%

**

Partially employed by a company / organization

3%

2%

Retired

0%

2%

**

Other

1%

1%

比較データに対して、以下のようにコメント・感想を追記しています。

  • 日本では、Working Student(勤労学生) が他の国と比較して極端に少なく、Freelancer(フリーランス)、Retired(退職者)が多いという結果が得られました。
  • 個人的には、日本においては、一部のモチベーションが高い方が、大学院の社会人コースに通う人以外は、(特に理系においては)working student というのはほぼ無いのでは?よって上記のような結果になったのではと思いました。
  • フリーランスが8%という数字から、日本におけるエンジニアの働き方の一つとして、独立してフリーで働くという形が、珍しくはないと言えるでしょう。

ということで同じような感じで、比較データを見ていきましょう。

あなたの年齢を教えてください

回答

General

Japan

差異

18–20

15%

6%

****

21–29

51%

33%

****

30–39

25%

33%

****

40–49

7%

21%

****

50–59

3%

7%

****

60 or older

1%

1%

  • 「日本、若者(エンジニア)が少なすぎ!」と一瞬思いましたが、日本の人口統計 を鑑みると、日本の若者エンジニアが極端に少ないというわけではなさそうです。ただし、日本の外を見ると、20代エンジニアが世界には沢山いるということでしょう。この分布が国のソフトウェアの競争力にどれくらい関係するのか、また日本で採用関係のお仕事をされている皆さんの感覚と一致するのかが気になります。
  • 一方で、日本には30-50代のエンジニアの方が多いことは(現在40代の私からすると個人的には)うれしい気持ちになりました。

プロとしての経験年数を教えてください

回答

World

Japan

差異

I don’t have any professional coding experience

5%

11%

****

Less than 1 year

12%

6%

****

1–2 years

23%

9%

****

3–5 years

25%

17%

****

6–10 years

17%

20%

11+ years

18%

37%

****

  • 前述の年齢分布と合わせると、日本には経験豊富なエンジニアが多いということでしょうか。
  • 一方で、I don’t have any professional coding experience(未経験)の方が多いのは、学生の間、職業コーディング経験を得ることがほとんどできないことや、キャリアチェンジで「駆け出しエンジニア」な方が増えているのでしょうか?

あなたの会社の従業員数は何名ですか

回答

World

Japan

差異

Not sure

2%

1%

Just me

4%

4%

2-10

13%

11%

11-50

19%

22%

51-500

27%

34%

**

501-1,000

7%

6%

1,001-5,000

11%

13%

More than 5,000

17%

8%

****

  • 51-500名の中規模の会社に所属している方が多く、5000名以上の大企業に所属している方からの回答が少ないようです。
  • 個人的には、日本の場合、(一部の)大企業の方はプロジェクトマネジメント中心で開発者は少ない。よって、大企業よりも中小企業に開発者が多くいるのでは?と思いました。

ITは御社のコアビジネスですか?

回答

World

Japan

差異

Yes

67%

83%

****

No

33%

17%

****

  • 日本はITがコアビジネスの会社にエンジニアが集まっている、裏を返すとITがコアビジネスではない会社に所属するソフトウェアエンジニアが世界平均と比較すると少ないということでしょうか。
  • 日本政府の「デジタル庁」開設等の取り組みにより、ITがコアビジネスではない日本の会社においても、今後ソフトウェア・IT技術全般の重要性がいっそう高まり、そこに所属するエンジニアが日本でも増えていくのか気になるところです。

ITがコアビジネスの会社:主な事業は?(複数回答)

回答

World

Japan

差異

IT Services

35%

54%

****

Mobile Development

26%

16%

****

Other Software (all other types of software)

22%

20%

Big Data / Data Analysis

20%

12%

****

Cloud Computing / Platform

19%

11%

****

Software Development Tools

16%

12%

*

Fintech

14%

5%

****

Internet / Search Engines

13%

11%

IoT / Embedded

10%

8%

Healthcare IT

8%

4%

**

E-learning

8%

2%

****

Cybersecurity

8%

4%

***

Data center Services

7%

5%

Hardware

6%

3%

**

Game Development (including mobile games)

6%

8%

BPO Services

6%

4%

*

Telecom

6%

3%

**

Semiconductors

1%

1%

Other

8%

6%

  • ITをコアビジネスとする会社の主な事業について、日本では半数以上の方が「ITサービス」と回答しています。
  • 「ITサービス」の定義が広く、多くの方が選択したということがあるかもしれません。
  • 一方で、ITサービス以外が少ないのは、日本では国を跨ぐようなプラットフォームやサービス、製品を提供している会社が少ないからなのでは?と思いました。

IT以外がコアビジネスの会社:主な事業は?(複数回答)

回答

World

Japan

差異

Banking / Real Estate / Mortgage Financing / Accounting / Finance / Insurance

19%

12%

Education / Training

12%

10%

Sales / Distribution / Retail

11%

8%

Entertainment / Mass Media and Information / Publishing

8%

11%

Manufacturing

8%

15%

Medicine / Health

8%

3%

*

Marketing

6%

8%

Logistics/ Transportation

5%

7%

Service / Maintenance

5%

2%

Administration / Management / Business Development

5%

2%

Business / Strategic Management

3%

3%

Energy

3%

1%

Customer Support

3%

5%

Restaurants / Hospitality / Tourism

3%

3%

Aerospace

3%

3%

Machinery

3%

4%

Food / Agriculture

2%

5%

Construction / Architecture

2%

8%

Human Resources

2%

6%

Security

2%

3%

Law

1%

2%

Other

10%

8%

  • IT以外をコアビジネスとする会社の主な事業として、日本の回答者はManufacturing(製造業)、Construction/Architecture(建設・建築)を回答した一方、Medicine/Health(製薬・健康)については、低いのが特徴のようです。
  • 個人的な経験としても、日本においては、複数の医療機器のメーカーでソフトウェアを開発されている方にお会いしたことはありますが、製薬やその他のヘルスケア関連のお客様とコミュニケーションする機会は少ないという印象です。

開発環境

開発環境としてどのOSをメインで使用していますか?(複数選択)

回答

World

Japan

差異

Windows

61%

57%

Linux

50%

43%

**

macOS

43%

62%

****

Other

1%

1%

  • 開発環境として、日本ではmacOSの使用率が高く、Linuxが少ないというのが顕著のようです。
  • WSL2の登場により、開発環境としてのWindowsが増えるどれくらい増えるか次回の調査結果が気になります。

JetBrains IDEに関する参考情報

  • JetBrains IDE のWSL/WSL2 への対応は個々のIDEによって対応状況が異なります。WSL 関連の問題一覧および対応状況はYouTrack(JetBrainsが販売する、JetBrains製品の開発でも利用されている課題管理システム)で報告されている IDEA-171510 から確認することができます。
  • 上記に関連した要望として JetBrains IDE 上での(ローカルマシンにソースコードを必要としない)リモート開発機能への声が高まってきています。この機能はまだ実現に至っていませんが、YouTrack上の IDEA-226455 において、IntelliJ 開発チームリードが開発の方向性や進捗について定期的にコメントしています。最新情報をキャッチアップしたい方はこのIssueに対してVote(いいねボタン)か Watch しておくと良いでしょう。

どのモバイルOS向けの開発を行っていますか?(複数選択)

回答

World

Japan

差異

Android

88%

85%

iOS

56%

72%

****

Other

3%

1%

**

  • 回答総数としてはAndroid向け開発の方がiOS向け開発より高いようですが、世界と比較するとiOSの回答数が顕著なのは、色々な調査で報告されている日本でのiPhone/Apple製品の人気の高さと一致していると考えられます。

過去12ヶ月に使用したプログラミング言語を教えてください(複数回答)

回答

World

Japan

差異

JavaScript

70%

72%

HTML / CSS

61%

65%

*

SQL

55%

60%

*

Python

55%

58%

Java

55%

46%

****

Shell scripting languages(bash/shell/powershell)

37%

54%

****

C++

28%

18%

****

TypeScript

28%

33%

*

PHP

26%

37%

****

C

23%

16%

****

C#

22%

24%

Go

18%

28%

****

Kotlin

17%

20%

Dart

9%

7%

Swift

8%

12%

**

Ruby

6%

24%

****

Rust

6%

10%

**

Matlab

5%

2%

****

Visual Basic

5%

8%

*

R

5%

6%

Groovy

4%

5%

Assembly

4%

2%

*

Scala

4%

8%

***

Objective-C

4%

4%

Lua

3%

2%

Haskell

2%

3%

Perl

2%

4%

*

Elixir

1%

2%

F#

1%

1%

CoffeeScript

1%

2%

*

Clojure / ClojureScript

1%

1%

Julia

1%

3%

*

Delphi

1%

1%

COBOL

0%

1%

Crystal

0%

0%

I don’t use programming languages

0%

1%

Other

3%

3%

  • シェアが高い(20%+)の言語の傾向は世界ほぼ似た傾向にあります。
  • Java/C/C++のシェアが世界と比較してやや低いようです。
  • 一方、Ruby、PHP、Go、TypeScript をはじめ主にサーバーサイドで利用される言語のシェアは世界平均と比べると高く、多様性があるというのが特徴的に思えます。
  • JetBrains に入社して以来、様々な言語の開発者コミュニティーのイベントに参加しましたが、それぞれのコミュニティが活発で楽しそうという雰囲気がそのまま利用される言語の多様性にも現れてきていて、皆さんの言語愛がすばらしいという印象を持ちました。

どのIDEまたはエディタを日常的に使用しますか?(複数回答)

回答

World

Japan

差異

VS Code (Visual Studio Code)

60%

64%

*

IntelliJ IDEA

45%

39%

**

PyCharm

27%

21%

***

Vim

23%

33%

****

Visual Studio

22%

20%

Sublime Text

22%

9%

****

Notepad++

20%

3%

****

Android Studio

19%

14%

**

WebStorm

15%

13%

Eclipse

11%

13%

PhpStorm

11%

16%

***

IPython/Jupyter Notebook

10%

10%

Atom

9%

8%

DataGrip

9%

8%

Xcode

9%

11%

CLion

7%

5%

*

GoLand

7%

11%

**

JetBrains Rider

5%

6%

NetBeans

4%

1%

****

Gedit

2%

1%

**

Emacs

2%

5%

*

RStudio

2%

1%

QtCreator

2%

0%

****

RubyMine

2%

7%

****

AppCode

1%

2%

Other

3%

2%

  • JetBrains IDE 以外をみると、人気のあるVS Code、Vim、Emacs の利用者の割合が世界平均と比べ高いのが特徴的です。特に世界平均と比較した際に、Vimを愛する人の割合の多さが突出しています。
  • Vim愛用者の中には、JetBrains IDE 上で 利用者の多いプラグインの1つである IdeaVim をお使いの方も多いのではないでしょうか。
  • JetBrains IDEの個々のシェアをみると、IntelliJ IDEA のシェアが世界平均と比較してやや低く、PhpStormGoLandRubyMine の利用者が世界平均と比較して高いという結果が得られています。これは前述のプログラミング言語のシェアの多様性や、日本においては、金融等のエンタープライズ系よりはインターネット企業においてJetBrainsのユーザーが多いことが関係しているように思えます。
  • Apple製品の日本での人気を考えると、JetBrains 的にはiOS/macOS向けIDE AppCode や、Android と iOS のコードの共通化のための注目技術で、最近アルファ版が発表された Kotlin Multiplatform Mobile について今後紹介の機会を増やしていきたいと考えています。
  • ちなみに、私にとってVim(というかvi)は(遥か昔の話ですが)「サーバールームのAIX にはエディタとしてそれしか入ってなかったので、ログを見たり、設定ファイルを変更するために使わざるをえないもの」という思い出があります。

インフラ関連

開発したアプリケーション、サービス、データベース等をどこでホストしますか? (複数回答)

回答

World

Japan

差異

Private Servers (hosted on your company’s cluster or server on-premises)

50%

34%

****

Cloud Service (AWS, MS Azure, GCP, etc.)

49%

69%

****

Locally (on your workstation, developer environment, or device)

44%

42%

Other

1%

0%

***

  • 回答者の属性と関連しているのかもしれませんが、世界平均と比較してPrivate Server(オンプレ)が少なく、Cloud Service(クラウドサービス)が多いという結果が得られました。

今後12ヶ月に開発するサービス、アプリケーション、データベースをどこでホストする予定ですか?(複数回答)

回答

World

Japan

差異

Private Servers (hosted on your company’s cluster or server on-premises)

46%

28%

****

Amazon Web Services

35%

53%

****

Locally (on your workstation, developer environment or device)

34%

32%

Google Cloud Platform

18%

24%

Microsoft Azure

15%

17%

Heroku

8%

6%

RedHat OpenShift

2%

1%

Cloud Foundry

1%

1%

Other

8%

3%

****

  • こちらも世界平均と比べるとオンプレが少ないという回答が得られました。クラウドベンダにおいては、日本ではAWSの人気が特出しているようです。

どのようなサーバーテンプレートツールをお使いですか?(複数回答)

回答

World

Japan

差異

Docker

93%

93%

Vagrant

12%

20%

*

Packer

6%

8%

CoreOS rkt

2%

1%

*

Other

3%

1%

  • Dockerがほとんどというのは世界共通である一方、日本では Vagrant が今もなお一定の人気があるようです。

どのようなプロビジョニングツールをお使いですか?(複数回答)

回答

World

Japan

差異

AWS CDK

15%

19%

AWS CloudFormation

42%

44%

OpenStack Heat

14%

4%

****

Terraform

44%

61%

**

Other

12%

6%

*

  • 日本ではTerraformの人気の高さが目立つ一方、OpenStack Heatの低さが目立ちます。

どのようなコンテナオーケストレーションサービスをお使いですか?(複数回答)

回答

World

Japan

差異

Kubernetes (self-managed or fully managed)

68%

49%

**

Docker Swarm

25%

8%

****

Amazon ECS / Fargate

20%

58%

****

Amazon EKS

11%

19%

Mesos or DC / OS

3%

1%

Other

4%

6%

  • 世界と比較すると、Kubenetes のシェアが世界平均と比べて少し低い、Docker Swam のシェアが大きく低い一方、Amazon ECS / Fargate の高さが目立ちます。前述の日本でのAWS人気と関係があると思われます。

開発体制

あなたのチームは何名ですか?

回答

World

Japan

差異

More than 40 people

3%

3%

2-7 people

51%

58%

*

8-12 people

20%

18%

13-20 people

9%

6%

*

21-40 people

4%

5%

I work on my projects independently

12%

10%

  • 世界平均と比較すると 2-7 名の小規模チームの割合が高く、13-20 名の中規模チームが少し少ないようです。前述の小・中規模の会社に所属している方が多いことと関連があるかもしれません。

どのようなアジャイルソフトウェア開発フレームワークを使用していますか?

回答

World

Japan

差異

Scrum

40%

27%

****

Kanban

16%

15%

Combined

14%

14%

XP

1%

1%

None

28%

43%

****

  • 世界と比較すると、スクラムの割合が低く、None(なし)の割合が多いのが特徴的です。日本におけるアジャイル開発の普及率の低さと関連しているのでしょうか。

ペアプログラミングを行っていますか?

回答

World

Japan

差異

Yes, face-to-face pair programming

30%

16%

****

Yes, remote pair programming

17%

9%

****

No

61%

78%

****

  • ペアプロ=アジャイル開発におけるプラクティスの1つと考えると、ペアプロの採用率が低いことは、日本におけるアジャイル開発・技法の普及率と関係していると考えられます。
  • JetBrains IDE 上でペアプロ・協調作業を行うためのプラグイン Code With Me の EAP版 が発表されています。リモートワーク環境の増加により、チームメンバー同士が気軽にIDE画面を共有し、協調してコーディングやデバッグできることの重要性が高まってきていると思います。優れた開発体験を提供する Code With Me を是非お試しください。

技術情報の収集

JetBrains 関連の情報を収集するためにどのメディアを使用していますか?(複数選択)

回答

World

Japan

差異

JetBrains official website, jetbrains.com

40%

26%

****

Emails / Newsletters

30%

19%

****

JetBrains product blogs

21%

19%

Global twitter @jetbrains

19%

26%

**

JetBrains company blog

16%

13%

Product twitter accounts (e.g. @phpstorm, @resharper)

15%

21%

*

Local twitter accounts (e.g. @JetBrainsDE, @JetBrainsRU)

14%

17%

JetBrainsTV on YouTube

8%

3%

****

JetBrains on Facebook

4%

3%

Public Slack

2%

1%

*

Other

5%

2%

***

None

22%

27%

*

一般的な情報収集の手段として何を利用していますか?(複数回答)

回答

World

Japan

差異

Community forums (Reddit, Stack Overflow)

75%

51%

****

Social media

65%

83%

****

News websites / Aggregated news sites

60%

65%

*

Books

52%

62%

***

Wikis

43%

33%

***

Podcasts

35%

17%

****

Other websites

27%

36%

***

TV

17%

23%

**

Print media (magazines / newspapers)

12%

17%

*

Radio

9%

8%

Other

4%

3%

  • 日本のエンジニアの特徴としては、ソーシャルメディア、様々なウェブサイト、TV、本・書籍により情報を得ている人が多く、コミュニティフォーラム、ポッドキャストが比較的少ないのが特徴のようです。
  • 個人的な経験としても、知らない技術について情報を入手したいと思った場合、Google検索して、Qiitaの日本語記事を参考にしたり、より詳しく知りたい場合、日本語の電子書籍を購入してみるというパターンが多いので納得の結果です。

以下のウェブサイトのアカウントをお持ちですか?(複数回答)

回答

World

Japan

差異

GitHub

91%

86%

*

LinkedIn

71%

47%

****

Twitter

70%

88%

****

Facebook

70%

78%

***

Instagram

65%

70%

Stack Overflow

64%

28%

****

Reddit

51%

17%

****

Quora

30%

18%

****

QQ

23%

2%

****

Zhihu (知乎)

19%

1%

****

Baidu Tieba

15%

1%

****

Qzone

14%

1%

****

VKontakte

9%

1%

****

XING

4%

0%

****

None of the above

1%

1%

Other

2%

2%

  • Githubは例外として、TwitterおよびFacebook、およびInstagramが多く使われているようですが、それ以外のサービスの利用が少ないのは、言語の壁によるものが大きいと思われます。

地域のミートアップに参加していますか?

回答

World

Japan

差異

Yes

36%

25%

****

No, but I am planning to

22%

21%

No, since there are no meetups in my area

16%

17%

No, and I do not want to

16%

18%

No, I am unable to do so for certain reasons

9%

19%

****

Other

1%

1%

  • 日本のエンジニアは、他の国と比較して、ミートアップへの参加率が低い、および、理由があって参加できないという回答が多いようです。
  • 現在のコロナ渦でミートアップがほとんどオンラインになった今、参加率が増えているか気になります。
  • 個人的にはオンラインイベントが増えたことにより、ライブでは参加できなくても、アーカイブ動画を倍速&スキップしながら見られるようになって非常に便利になったと感じています。

過去12ヶ月で新しい技術やツール、プログラミング言語を学習するために何を利用しましたか?(複数回答)

回答

World

Japan

差異

Documentation & APIs

70%

46%

****

Blogs / forums

58%

54%

Books

48%

66%

****

MOOCs (Coursera, edX, Udacity, etc.)

27%

8%

****

Online coding schools

26%

10%

****

Offline educational organizations

8%

6%

I have not tried to learn anything new in the last 12 months

4%

8%

*

Other

6%

4%

  • 日本のエンジニアの回答の特徴としては、ドキュメント&APIが少なく、本が多いのが特徴のようです。
  • 「I have not tried to learn anything new in the last 12 months(新しいことを学んでいないが)」8%と多いのもやや衝撃です。保守のお仕事が中心なのでしょうか、それとも、エンジニア全体の年齢層が高いことが影響しているのでしょうか。
  • 個人的な経験としては、新しい何かを手っ取り早く試したい場合、英語の公式ドキュメントやAPIドキュメントは(本来は見るべきだったとしても)あまり見たい気持ちにならないので、日本語の書籍やWebの記事を見ることが多いです。また、設問の選択肢には無いですが「Qiitaの記事を読んでわかった気分になる」というのもあるのでは?と感じました。

その他

OSSプロジェクトにコントリビュートしていますか?

回答

World

Japan

差異

No, but I would like to

44%

51%

I have only contributed a few times

20%

14%

*

Yes, from time to time (several times a year)

16%

17%

Yes, regularly (at least once a month)

11%

6%

**

No, and I would not like to

4%

7%

I work full-time on open-source code and get paid for it

3%

3%

I work full-time on open-source code but do not get paid for it

2%

2%

  • 日本の開発者は「コントリビュートしてみたいけど実際はしていない、ほとんどしていない」が他の国と比較して多いようです。会社によっては、OSSへの参加に様々な制約があるケースもあるかもしれません。

余暇には何をしていますか?(複数回答)

回答

World

Japan

差異

Programming

58%

59%

Video games

49%

45%

Listening to music

40%

25%

****

Reading

37%

42%

*

Spending time with family

30%

23%

***

Sports (doing)

26%

17%

****

Watching TV

26%

21%

**

Sleeping

22%

27%

*

Traveling

19%

18%

Socializing

18%

5%

****

Music (playing)

14%

13%

Sports (watching)

12%

8%

**

Board games

12%

6%

****

Art

7%

8%

Writing

7%

3%

****

Gardening

4%

3%

Fishing / Hunting

2%

2%

I have no spare time for hobbies

1%

1%

Other

7%

8%

  • エンジニアの余暇の過ごし方として代表的なのは、プログラミングとゲームというのは世界共通のようです。日本からの回答は「読書」と「寝る」が多く、あまりアクティブではない印象があります。
  • 個人的には納得の数字ですが、この結果だけ見ると、他の国の人達から「日本人エンジニアは真面目すぎて疲れていないか」と心配されそうです。

ペットを飼っていますか?(複数回答)

回答

World

Japan

差異

Dog

22%

8%

****

Cat

21%

11%

****

Fish

4%

2%

Bird

2%

1%

Guinea pig / Hamster

1%

1%

Snake

0%

0%

Other

3%

2%

None

58%

77%

****

  • 個人的には、Twitter上の情報からは「日本のエンジニアの人は猫を飼っている人が多い」というイメージがありますが、世界と比較すると日本はペットを飼っている人の割合が少ないようです。
  • 一方、「全国犬猫飼育実態調査 結果 – 一般社団法人ペットフード協会の調査結果」によると、日本における平均としては犬を飼っている人が多いようです。
  • (日本のエンジニアの方が母集団である)上記調査結果では猫の割合が高いという結果が得られているので、Twitterからの印象と調査結果が一致している点が興味深いです。

おわりに

だいぶ長い記事になってしまいましたが、比較データのご紹介、お楽しみいただけましたでしょうか?この記事を書くにあたり、数字を見ながら、私の経験をベースに考察を書いてみたのですが、数字に対する理解や日本のソフトウェア開発現場の現状に対する理解が皆さんとは異なる点もあるのでは?とも感じています。 感想や質問やコメント等、ぜひフィードバックをいただけると幸いです。