JavaScriptが好きな5つの理由

はじめに

ダイニー VP of Technology の karszawa です。

ダイニーでは、プロダクトの大部分を JavaScript / TypeScript で開発しています。Web フロントエンドは Next.js、アプリは React Native、バックエンドは Node.js (NestJS) です。最近では、インフラ管理に CDK for Terraform を導入し、見渡す限りほぼすべてが TypeScript で記述されています。

コードベースの90%以上がTypeScript

技術を一方的に利用するだけではなく、コミュニティへの支援も実施しています。最近は noren.ts というミートアップを開催し、先日開催された TSKaigi でもスポンサーを実施しています。また Prettier や NestJS といったツールへのスポンサーも行っています。

TSKaigi 2025 Platinum Sponsor一覧
https://2025.tskaigi.org/

zenn.dev

note.com

ダイニーのようにすべての領域のソフトウェアを TypeScript で書いてしまう技術スタックのことを、巷では Full-Stack TypeScript と呼ぶそうです。国内外で多くの企業が Full-Stack TypeScript でプロダクトを開発しており、その効用は疑いようもありません。 zenn.dev

TypeScript は非常に素晴らしい技術ですので、その良さを語るのにいくら紙面があっても足りないぐらいではあるのですが、私個人としては TypeScript の素晴らしさは JavaScript エコシステムの偉大さに支えられていると考えています。

というわけで、この記事では JavaScript の良さを語っていきたいと思います。

先に結論ですが、JavaScript の良さを分解すると大きく

  1. 巨大なエコシステム
  2. 気軽さ、手軽さ

になるかなと思います。どういうことなのか解説します。

圧倒的なエコシステムの巨大さ

JavaScript コミュニティの巨大さは言わずもがなではありますが、定量的なデータも見てみましょう。

Stack Overflow Developer Survey

10年連続で JavaScript が最も利用者の多い言語でした。
Technology | 2024 Stack Overflow Developer Survey

GitHub Octoverse

2023年までの9年間は JavaScript が常にトップでした。2024年は3位に TypeScript が位置しており、JavaScript コミュニティとして考えると全プログラミング言語で最大規模と言えそうです。

Octoverse: AI leads Python to top language as the number of global developers surges - The GitHub Blog

コミュニティが巨大ということはエコシステムへの投資も大きいということです。リンター、フォーマッター等の開発ツールが非常に充実しており選択に迷うほどです。稀にツール選定の大変さがネガティブなポイントとして紹介されてしまうこともありますが、個人的にはその考えには落とし穴があると思います。エコシステムが進化していくことは常に多様なツールが生まれ続けるということとセットだからです。逆に、新しいツールが生まれないような枯れたコミュニティは、緩やかに消滅していく運命にあると思います。

近年 AI サービスの興隆もあり、学習に使えるデータが多いというのはそれだけで利点になります。その点でもコミュニティ・エコシステムの巨大さは追い風になっています。

ユーザーコミュニティが活発

ユーザーが多いということは物理的なコミュニティイベントの機会が多いということでもあります。

国内では JavaScript の技術イベントが毎週のように開催されており、様々なコミュニティで活発な議論が行われています。特に JSConf JP, NodeFest, TSKaigi といった大規模カンファレンスは、国内外から多くの開発者が集まり、最新の技術動向や知見が共有される貴重な場となっています。

一人のエンジニアとして、イベントに参加できる機会が多くあるというのは単純に楽しいです。

また、エンジニア採用においてもイベントの多さは非常に重要なファクターです。優秀なエンジニアの獲得には各社相当なコストを割いて取り組んでいるわけですが、イベントはそういった上位層のエンジニアと出会える重要な機会でもあります。そういうわけでダイニーも TSKaigi に参加してきました!イベントレポートも出るのでお楽しみに、、!

こういった巨大なユーザーコミュニティを目当てに Oven (Bun) や Deno Inc. (Deno) といった営利企業が処理系の開発をしているという点も JavaScript, TypeScript コミュニティの非常にユニークな点です。ユーザーコミュニティが大きくなければ事業として成立しないわけですから、私達が Bun や Deno といった新しいコンセプトの JavaScript, TypeScript 処理系を活用できているのもユーザーコミュニティのおかげなのです。

Web 標準と共進化している

JavaScript の処理系はたくさんあります。すでに説明した新興の Bun や Deno だけでなく、ブラウザで使われる V8, SpiderMonkey, JavaScriptCore もありますし、React Native で使われる Hermes もあります(新興の処理系は V8 や JavaScriptCore を元にしているため、完全に独立して存在しているわけではないですが)。もちろん Node.js も忘れてはいけません。

それぞれの処理系は既存の処理系の弱点を克服するべく設計されています。例えば Bun は Fast and All in One というところをメリットとして打ち出していますが、デファクトである Node.js と完全な互換性が無かったり、単純にバグが多いというデメリットもあります。それでもユースケースを限定すればかなり使えます。ユースケースに応じて適切な処理系を選択できるというのが、多くの処理系を抱える JavaScript エコシステムの良いところです。

これだけたくさんの処理系が存在しつつ一定の調和を保っているのは TC39 や ECMAScript のおかげでもあります。

JavaScript という言語はそもそもがブラウザから始まった言語であるため必然的に標準化が必要とされたのですが(サーバーがクライアントごとに全く別の言語を出力するという世界線は想像したくありませんね)、それにより現在のバラエティ豊かな処理系の林立に繋がっているわけです。

ちなみに TC39 の会議は2ヶ月に一度実施されており、アジェンダは GitHub 上で確認できます。最新機能の開発ステータスが確認できて面白いので、定期的に確認してみることをオススメします。

4/14/2025, 11:00:00 PM GMT+9 のミーティングアジェンダ github.com

ブラウザで動く気軽さ・手軽さ

私が初めてコンピューターでプログラムを書いたのは2011年で、その際はC言語を用いていました。黒い画面で計算機を実装するのは、それはそれで楽しかったですが、今であればビジュアルを伴うブラウザでのアプリケーションを作っていたでしょう。

ブラウザで動かす JavaScript はランタイム不要=セットアップ不要でプログラミングを開始できます。ブラウザを開いておもむろに右クリック→検証を選択するだけですからね。

脱線しますが私は HTML,CSS も好きです。これもブラウザが理由です。DevTools から既存の DOM を自由にいじって見た目を変えることができる体験はアプリなど他の UI には存在しない体験です。そういった異次元に気軽なトライアンドエラーが可能なブラウザの技術スタックが気に入っています。

インタプリタ言語なのでサードパーティのソースコードがそのまま手元に

JavaScript がインタプリタ言語であることも気軽さの一因です。ブラウザで動く言語なら WebAssembly もあるわけですが、気軽さが圧倒的に足りていないので技術コミュニティで広く使われるには至っていません。

おもむろにインストールした npm パッケージに console.log を仕込んで気軽にデバッグできるというのは、何気に他の言語ではあまり無い体験のような気がしています。もちろん、高級なデバッガーを使えば他の言語でもサードパーティ部分のデバッグはできるのですが、それでもただのプレーンテキストでライブラリが配信されているからこその気軽さというのは重要だと思います。

まとめ

企業での活用において、プログラミング言語のエコシステムの巨大さは非常に重要なファクターです。どうして JavaScript エコシステムがこれほど巨大になったかを自分なりの理解でまとめると下記のようになります。

  1. Web ブラウザの興隆により、Web ブラウザで唯一動く言語である JavaScript の立場が他のプログラミング言語から際立って飛び抜けた
  2. 人口が多いためバックエンドも JavaScript を書きたいというニーズが生まれた → Node.js が誕生
  3. 更に人口が増えて他のモダンな言語と比べたときの課題も大きくなってきた → TypeScript が誕生
  4. 更に人口が増えて React Native で対応するプラットフォームが増えた、そして更に人口が増えた

このように JavaScript の機能性の進化はエコシステムの巨大さに依拠しています。エコシステムの巨大さがすべてなのです。

事業会社としては、これほどメリットの大きいエコシステムに飛び込まない理由はありません。長いものには巻かれましょう。

ただし、単にエコシステムからの甘い汁を吸うだけではいけません。テイカーに留まらずギバーにならねば。そういった思いで noren.ts や TSKaigi などのコミュニティ貢献を行っています。

そういうわけで、ダイニーが主催するイベントにもぜひ参加してもらえると嬉しいです! 💞

https://dinii.connpass.com/event/354230/dinii.connpass.com

その他のイベントはこちら。

https://dinii.connpass.com/dinii.connpass.com

また、JavaScript のみならずダイニーの事業にも興味があるという方はぜひ選考の方にもご応募ください!

findy-code.io

株式会社ダイニー