Notionの開発言語は何?エンジニア採用から推測します!

Notionは何の開発言語でできているのでしょうか?知りたくないですか?

Notion公式は、開発言語やフレームワークについて情報を公開していないので、Notionの採用基準や周辺情報から想像してみました。

この記事は、完全なる個人的な興味として最近流行りのサービスがどういう技術で動いているのか知りたくて調査した結果であり、の記事の情報の信頼性は担保できません

ではいってみよう。

サーバサイド

まずは、Notion社の採用基準を覗いてみましょう。

Notion採用情報

採用基準によれば、下記の技術に習熟している場合は、ボーナス加点があると記載されています。

  • 分散システムの使用経験がある事
  • React、TypeScript、Node.js、Memcached、Postgres、Docker、ElasticSearchなどのテクノロジースタックのどの部分にも精通している事

これらの技術がNotionで実際に使われていると仮定すると、サーバサイドはNode.jsで動くTypeScriptベースのアプリケーションで、ライブラリとしてReactJSが使われているモダンな開発環境であるという事がわかります。

Redditの掲示板での議論では、electronJSでデスクトップアプリが作られているという説もあります。

データベースレイヤーの構成は、Memcachedをベースとしたインメモリキャッシュで高速化されており、アプリは、Dockerで分散化されている環境の上に、アプリケーションが展開されていると推測できますね。

Notionのサクサクな動作はこういう構成で実現してるんだろうなあ。(小並)

また、ElasticSearchもあるので、大規模な検索エンジンが必要なんだろうなあ。確かに、Notionには「Quick Find」みたいな検索窓がありますしね。

クライアントサイド(iOS/Android)

次にiOSアプリエンジニアの採用基準の技術スタックを抜粋して眺めてみましょう。

  • SwiftまたはObjective-Cに精通していること
  • React、TypeScript、Node.js、Postgresなどの他の技術に精通している事
  • AndroidでKotlinまたはJavaを使用して構築した事がある

ネイティブアプリなのかハイブリッドアプリなのか正確には判別がつきませんが、SwiftKotlinを技術スタックに挙げている事を考えると、ネイティブアプリかなと推測されます。

ただし、ReactTypeScriptなどの他の技術にも精通していることをボーナスポイントとして挙げていることを考えると、JavaScriptベースの技術を触る機会も多いのではないかと推測できますね。

まあ、Notionのアプリはかなりサクサク動くので、個人的な推測としては、パフォーマンスが高いネイティブアプリもしくはReactNativeあたりで実装されているんじゃないかなと思います。

おわりに

いかがでしたでしょうか。この記事は全て私の推測で書かれているので、間違ってたらすみません。

ABOUT US

「Deepな日常」管理人
30歳のWebエンジニアです。 Webサービスやモバイルアプリを開発しています。 自分の中身を色々書いて空にして、新たに学びを深めていこうと思ってブログを書いています。 開発実績 ・過去問スタジアム ・matomely 技術スタック Rails/Android/iOS/Flutter/Ionic/Kotlin/Java/Swift/Objective-c/Dart/TypeScript/C++/Jenkins/AWS/Firebase/etc...