コラム1 小説投稿サイトと開発言語について
さて、ここまでで小説投稿サイトの作り方のざっくりとした流れについて説明しました。
今回は既存の小説投稿サイトがどの言語で作られているか見てみましょう。
※スマホアプリは除きます。Webアプリケーションの言語です。
※できるだけ公式情報から情報を集めていますが、ない場合はソースコードからの推測も含まれます。
■「小説家になろう」の場合
小説家になろうのバックエンドはPHPで作られています。フレームワークはZend Frameworkです。PHPのフレームワークは今はLaravelが人気ですが、Zend Frameworkは古くから使われているものです。
2007年7月1日、Zend Framework 1.0がリリースされたので、恐らくですが2009年のリニューアル時に導入したのではないかと思います。
現時点ではPHPのフレームワークはLaravelが圧倒的に人気ですが、当時はどれも一長一短で突出して使いやすいというものはなかったようですね。
参考:株式会社ヒナプロジェクト 求人
https://hinaproject.co.jp/recruit/recruit.html
■「カクヨム」、「魔法のiらんど」の場合
カクヨムを開発しているのははてな株式会社です。はてなではPerl/PHP/Python/Ruby/JavaScriptなどの言語を使用しています。恐らくですが、カクヨムのメインはPerlかと。(はてなブログがPerlで実装されている)
フレームワークは独自開発していると思われます。たぶん。
参考:出版社との共同開発の暮らし 〜エンジニア編〜(miki_bene)/ Hatena Engineer Seminar #13
https://www.youtube.com/watch?v=n2T2RVRR0_w
魔法のiらんどは2020年にリニューアルされました。開発はカクヨムと同じくはてなが担当しています。
Next.js + GraphQLで作られています。Hatena Engineer Seminar #14 〜魔法のiらんど編〜でそれの詳細について語られているので興味がある人は覗いてみるのが良いかと。
最近のトレンドであるJavaScript系のフレームワークを使っているあたり、色々な技術を取り入れているなって思います。
参考:Hatena Engineer Seminar #14 〜魔法のiらんど編〜
https://www.youtube.com/watch?v=JZ39QMuUl24
はてなさんはHatena Engineer Seminarで色々な情報を流しているので興味がある人は見てみるといいかと。
https://hatenacorp.jp/recruit/engineer/technology
■「エブリスタ」の場合
エブリスタは2019年にリニューアルされました。それまでは独自フレームワークを使って作られたようですが、リニューアルでメインはRuby on Rails、一部Nuxt.js, Vue.jsで作り直されました。
この辺りのお話は、「10年目の『エブリスタ』を支える技術」が詳しいので参考にしてみるのが良いかと。
参考:10年目の『エブリスタ』を支える技術
https://www.slideshare.net/dena_tech/10-132197778
■「アルファポリス」の場合
言語はPHPです。フレームワークは不明。ただ、かなり古くからあるので独自に開発しているのではと思います。
古くからあるサイトはPHPを使って作られることが多いですね。
■「pixiv」の場合
PHP、Ruby(RoR)で作られています。
メインの方はPHPで独自フレームワーク。他サービスはRubyで作られたり。
この会社も技術発表していたり、開発者ブログも充実しているので眺めてみると楽しいかと。
参考:pixiv inside
https://inside.pixiv.blog/
■「マグネットマクロリンク」や「ノベリズム」、「ステキブンゲイ」の場合
Vue.jsで作られています。Vueは国内、中国で人気のJavaScriptフレームワークですね。
同じJavascript系のフレームワークでReactもあるのですが、こちらは国外で人気です。ただ世界的に見るとReactの方が人気があります。
最近生まれるところはJavaScript系が多い感じですね。トレンド的にも。
■「プリ小説」の場合
Angularで作られています。結構珍しいです。
■「Scraiv」の場合
Railsで作られています。
---------
古いところはPHP、そこそこ古いところはRuby(Rails)、最近だとJavaScript系を使っているところが多い感じです。
多分Python使っているところはあんまりない感じです。ただ、機械学習などが浸透してくると増える気はしますね。
日本生まれのためRubyで作ってるところが大半じゃないかなぁと思います。
まぁ古いところはPHPかなぁと。
まぁ、今勉強するんだったらJavaScriptかPythonがオススメです! あとは、ちょこちょこ情報が出てきているGoやRustなんかもいいかもですけど。