なんで世の中のWEBフレームワークってスピードが遅いんだろう?を解決する方法

2021年12月26日

テクノロジー

悩んだことは解決しないと気がすまない、ユゲタです。 WordPress?あんな脆弱でクッソ遅いシステム、使うだけ未来の自分の足かせになるっしょ! Ruby on Rails?あんなクッソオタクしか使っていない言語、もうオワコンでしょ! PythonのDjango?今どきのプログラム言語で最もスピードが遅いフレームワーク、使う意味あんの? どれも、この間ツィッターで見かけた書き込みをそのまま書き出してみました。 それぞれのプログラム言語使いの人で、気分を害した人、ユゲタの言葉ではないことはご理解ください。 ちなみに、WordPressは、共感できるので、これはユゲタ思考と思ってもらって構いません。 他にも、Reract、Vue、Angular、Nextなどなど、Javascript系フレームワークも、流行りに流行っていますが、 なんか自分でチュートリアル実行してみても、どれももっさりしていて、速度が遅くて、なんで大きな企業が、 こんなもっさりシステム使っているんだろう?という疑問すら湧いてきます。

今どきのフレームワークが遅いわけ

企業内部にいるプログラマーと話をすると、 どれだけ多くのフレームワークを知っているかということで、そのプログラマーのレベル感を読み取り、 これまで、何個ぐらいのフレームワークを仕事でこなしてきたかで、経験値を測り、 できるだけ新しいフレームワークを使ったことがあるかで、今どきかどうかを判断している。 こんなマウントの取り合いをしている印象を、よく受けます。 まあそんな話はどうでも良いんですが、こうしたフレームワークって、年間にたくさん作られて、出回っていて、 大手企業でもどんどん使われているんですが、何故、遅く感じてしまうのかと言うと、 どのフレームワークも、「かゆいところに手が届く仕様にしているから」ではないかと考えられます。 どういう事かと言うと、だいたいどのフレームワークも、「なんでも出来ます」をうたっていて、 そのために、膨大なプラグインやらライブラリなどを搭載して、結果的に、処理重になっているということが容易に思いつきます。 同時に、いろいろな事ができてしまうがゆえに、不具合を起こさないようにいろいろな制御コードを書いて、それがクッソ重くなってしまっているようです。 これって、開発側で必要な処理というのは分かりますが、公開したあとでそのwebサイトを見に来るユーザーにとっては、全く意味のない機能が山盛りなんですね。 おかげで、構築するのに、膨大な学習コストをかけなければいけないというデメリットも有ることに気が付かずに、 プログラマー達は、どのフレームワークを学習しようかと悩んでいる姿を見ると、いささか可哀そうに思えてきます。

遅くないフレームワークってどんなの?

まず、ユーザーありきで、スピードが速いという事を目的にしないといけません。 例として挙げるのは、忍びないですが、wordpressは、作る側を意識した構成になっていて、ハチャメチャに入り組んだデータベース構成は、もはや迷路と考えても差し支えないゲーム性を秘めています。 ユーザーが出来上がったwebページを表示する際に、どのくらいのphpが実行されているかを考えれば、wordpressがクッソ遅いのは、納得の事実であると分かりますが、 そうした遅いフレームワークを使わないテクニックというか、ユゲタがこれまで出会ったエンジニアで「優秀だなあ」と感じた人は、ほぼ全て、 独自のフレームワークを作ってそれを仕事で運用しているという人たちである事を思い出しました。 これを、「大変だ」とか、「セキュリティが心配」というふうに考える人は、おとなしくクッソ遅いフレームワークを使っていけばいいだけなんですが、 そうではない人は、自分フレームワーク(いわゆるオレオレフレームワーク)を作って、それを自分でアップデートさせながら、自分が最も使いやすく且つ、ユーザー的にも快適なwebサイトが作れるという将来のスキルに直結するやり方なのだと理解できます。 「初心者にはハードルが高い」と思った人は、このブログ記事を読む必要はなく、ご自身の使いやすい学習フレームワークでスキルを蓄積していけばいいと思いますが、 これまで、仕事もプライベートも含めて、いろいろなプログラム言語で、10個以上はフレームワークを作ってきたユゲタからすると、 フレーム枠作りでそのプログラム言語のネイティブ仕様のスキルアップが半端なく行えた事実を体感できたので、個人的にオススメのスキルアップ法ということを最後にお伝えしておきます。 実際に、やってみるかどうかは、あなた次第です。