フロントエンドは要らない

Share on:

 全国のフロントエンドエンジニアの皆さんには申し訳ないのですが、最近フロントエンドを勉強するようになって、フロントエンドって要らないなと思うようになってきました。
 サーバサイドをやっている人間からすると、フロントエンドはSSRをするのが難しくて、それができるようになるとユーザにとってかなり使いやすくなる印象でした。それは今も変わりません。
 しかしながら、フロントエンドができれば、今の技術についていけてる感は出るのですが、フロントエンドはなくてもサービスは作れるなと思ってしまったので、今回のテーマのように「フロントエンドは要らない」と感じています。

フロントエンドがなくてもサービスは作れる

 フロントエンドというのは、その名の通り、ユーザから見える部分を担当するものであり、ユーザが見た目を全く気にしないのであれば、フロントエンドは要らないということになります。
 スマホが登場して、クリックしてページ遷移するのが面倒だと感じるようになったり、アプリのようにクリックした瞬間に画面が切り替わるのが当たり前だと思うようになったユーザが増えたので、フロントエンドの需要も増えたのだと思います。

 しかしながら、多くの有名サービスはフロントエンドをメインに使用していません。FacebookやTwitterなどの有名サービスはサーバサイドメインで作られましたし、本当に良いサービスであれば、デザインの動きよりも、サーバサイドによるコンテンツが重視されるはずです。

 サーバサイドだけでもサービスが作れるのであれば、できるだけ早くサービスを完成させたい人は、フロントエンドにこだわらず、サーバサイドだけでどんどん開発を進めるはずです。
 フロントエンドが必要になるのは、需要が出てきたサービスに対してであって、サービスをローンチしてもいないのにフロントエンドを取り入れるのは、開発スピードが遅れると思います。

フロントエンドは開発に工数がかかる

 最近のサーバサイドフレームワークは、コマンド一発でログイン機能とか、管理画面を作ってくれるものがあります。これらを使えば、大まかなサービスの枠組みはすぐに出来上がるのです。
 フロントエンドのライブラリにも便利なものはありますが、サーバサイドに比べると数は少なく、機能も限定的です。

 スピード感を求めて開発を進めるなら、サーバサイドに100%集中して作るべきだと思います。プロのフロントエンドエンジニアならすぐに作れるのかもしれませんが、結局データの部分はサーバサイドによるAPIサーバを立てないといけないので、2度手間です。

 デザインを重視するようなサービスでない限りは、コンテンツ重視でサーバサイドに絞るべきだと思います。

フロントエンドは後からでもつけられる

 サーバサイドで設計したからといってフロントエンドを仕込めないわけではありません。サービスが多くなって、プロを雇えるようになったら、フロントメインのサービスにリニューアルすることもできます。
 ReactやVueといったJavascriptのライブラリは、新しい技術なので、既存のサービスに組み込めるように設計されています。もしこれらの技術が新規サービスにしか向いていないのだったら、使う人は限られてしまうからです。

 ReactはFacebookが開発をしていますから、元々PHPで作られたFacebookにフロントエンドを組み込めるようになっているはずです。
 そう考えると、フロントエンドを最初から入れる必要はないことがわかります。

フロントエンドを導入すべきはどのような時か

 フロントエンドを入れないといけないのは、UXで勝負するときです。ライバルと比較して、もうコンテンツでは勝てないと思った時に最後の手段として「使いやすさ」で勝負します。多くのサービスでは、UXよりもまずコンテンツで勝負するはずですから、使いやすさだけでユーザを獲得するのはすごく難しいと思いますが、例えばブログサービスなんかは、エディタの使いやすさが重要です。

 noteみたいな文章を公開するためのサービスは、書きやすさが重要なので、最初からフロントエンドを使うべきでしょう。いちいちボタンをクリックして、ページを飛ばしていたら集中力が削がれてしまいますからね。

逆にサーバサイドが要らないという意見に対して

 Firebaseというサービスが大きくなるにつれて、逆にサーバサイドが要らないという意見が出るようになってきました。Firebaseは、サーバサイドのような役目をしてくれる機能があるので、フロントエンドを書くだけでデータの操作までできてしまうというわけです。

 確かに、サーバサイドが要らなくなってくる場面も出てくるとは思いますが、サーバサイドを任せてしまうということは、データの使い方よりもデザインが大事だと言っているようなものです。

 いくらFirebaseといえども、サーバサイド言語に比べればデータの自由度は落ちます。高度なことはできないのです。ブログみたいな単純なデータ構造であれば、Firebaseは機能するかもしれませんが、ちょっと技術的なサービスを作ろうとするなら、Firebaseでは間に合わなくなります。

 フロントエンドは使いやすいですが、どこにでもあるようなサービスを使いやすくしたところで、ユーザは獲得できません。ちょっと使いづらくても、新しくて便利なサービスにユーザがつきます。
 コンテンツが大事か、デザインが大事かを比較して、デザインの方が大事であれば、フロントエンドだけで開発をすればいいと思います。

エンジニアとして生き残るならフロントエンドは必要

 最後に、サーバサイドだけでやっていけるのは、自分でサービスを作ってローンチさせたい起業家です。エンジニアとして雇われながら開発を続けていくのであれば、フロントエンド言語は必須だと思います。エンジニアを雇うような会社はすでにサービスが大きくなっているはずですから、UXの部分の改修もあるからです。

 プログラミングをするにしても、自分のサービスを大きくしたいのか、世に出ているサービスを開発していきたいのかによってフロントエンドの必要性は変わるということです。