ぼくがWebデザインを始めた頃は「テーブルレイアウト」というホームページの作り方が主流だった。
いわばエクセルみたいな表組みでレイアウトをつくって、そこに文字や画像などを流し込むという方法で、今考えればおそましいほど非効率な作り方だった。
しかしこれには理由があって、CSSといわれるデザインを制御する言語がまだ広く浸透していなかったのと、InternetExplorerというバグだらけの変態的なブラウザが世間に浸透してしまっていて、CSSなんかでデザインするとレイアウトがぐっちゃぐちゃになってしまうことがよくあったからだった。
しかしその後、テーブルレイアウトという作り方は廃れていって、テーブルは使わずにCSSでレイアウトを組んでいくのが主流になっていった。
Flashというアニメーション効果を狙う技術も廃れ、javascriptやjQueryという技術がこれに変わっていった。
Web業界の技術の変化スピードは早く、そのたびに勉強しなければならないという宿命がある。
ついこの間まで、CSSはSassという言語に進化し、「タスクランナー」と呼ばれるgulp(ガルプ)などの技術によってさまざまな仕事を自動化するというのが最新と言われていた。
しかし、このgulpももはや「オワコン」と言われることが増えてきて、これに変わってwebpackという方式が浸透していった。
一時期隆盛を極めたjQueryさえも、最近はもう古いと言われはじめていて、近年はReact.jsやVue.jsというものに変わってきている。
ぼくはもう、50歳のおじさんである。
正直言って、ついていくだけで精一杯なところがある。
かつての「テーブルレイアウト」から「フルCSS」に移り変わるときも、かなり苦労した記憶がある。
最近はこのブログのシステムであるWordpressについても「ヘッドレス化」という波が押し寄せてきていて、APIで吐き出されたjson形式の投稿情報をaxiosを用いて非同期通信で読み込み、Vue.jsで作られたフロントエンドに描画する……というような、もはやジュゲムジュゲム的、もしくはハレクリシュナ・ハリオーム的マントラ世界のような状態になってきている。
ああ、また「変態」時代の幕開けだ。
Web業界は日進月歩なので、このような変態は避けて通ることができず、怠けてうっかり見過ごせば浦島太郎のように「過去の遺物」しか使えない人間になってしまうから、わりと深刻である。
最近のWebサイト制作の方向性のひとつにSPA(シングルページアプリケーション)というのがあって、要するにいっぱいページがあるように見えていても、じつはたったの1ページだけで作られている、というような方式がよく言われるようになった。
SPAにすれば、Webサイトの表示速度が「爆速」になるというのである。
SPAによく使わる技術に、React や Vue.js というのがある。
そこでとりあえず、ぼくはVue.jsというのを学ぶことにした。
やってみたらそれほど難しいことではなく、jQueryがある程度わかっていれば、いちおう簡易なWebサイトはVue.jsで作ることはできる。
SPAというのはそれほど難しいことではない、ということだけはわかった。
しかし、である。
「SPAは描画が早い」ということをよく聞いていたのだが、実際に作ってみたら、そうでもなかった。
とくにWordpressをAPI化してaxiosで読み込むと、画像なんかを読み込む場合にはそれほど高速化の恩恵を受けられないことがわかった。
むしろ、一般的なWordpressの作り方をしている場合よりも表示が遅くなる場合もある。
また、共通部分の読み込み込が驚くほど早いせいで(当然である。読み込んでいるのではなくて、そのまま表示しているのだから)、変化した部分の読み込みのとの時間差が目立ってしまい、一瞬ちらつくような表示になってしまう。
これを回避するために、全体のデータの読み込みが完了してから全体を表示させるようにローダーを仕込むと、こんどはそのローダーのせいで心理的に「遅い」感じがしてしまう。
結局は、体感的に全然早く見えなくなってしまうのだった。
こと高速化という点で見れば、画像をWebp(ウェッピー)という形式にしたりするほうがVue.jsにするよりも恩恵を受けられるようだった。
そして、「慣れの問題」を抜きにしても、業務効率化にはあまり役に立たないこともわかった。
PHPではたった1行で済むことが、Vue.jsではあちこちに関数を書かないと実現できないことも多く、共通部分とページ部分で変数を共有するのにも、複数箇所に宣言や設定を書かねばならないようだった。
これでは「あっという間にWebサイトをつくる」という、個人事業主としての最重要事項にブレーキがかかってしまう。
1割2割の改善なんか改善ではなくて、10倍20倍の効率化をしないと、まったく意味がない。
独りで仕事をする場合には、ここは絶対に譲れないポイントでもある。
Vue.jsでは、「10倍の効率化」は、到底見込めそうになかった。
ようするに、期待はずれだったのである。
10倍の効率化は目指せないが、Webサイトの表示速度が10倍になるのであれば、メリットがある。
でも、それもかなわなかった。
Googleのスピードテストでも、従来の作り方で96点をはじき出していたのに、全く同じコンテンツをVue.jsにしたら、89点になってしまった。
ううむ、これでは、あまり意味がない。
やっと気がついたのである。
Web業界も、そろそろ「老けて」きた、ということに。
つまり多くのすぐれた技術が出揃うことによって、多様化が進んできたのである。
まだ若いころのWeb業界では、新しい技術が出てきたときには、全員が右向け右で動いていた。
しかし今後は、それほどドラスティックな動きにはならないことが予測される。
また最近のWeb業界の動向のうち、ある部分は「自己満足」をベースにしている部分が多いようでもある。
いわば一種の「オタク」による喧伝もけっこう多いのだった。これには十分気をつけなければならない。
新しい技術を学ぶことは楽しいし、それが広がって大きなスキーマに変化が訪れるのも、ロマンチックではある。
そういうことに「興奮している」ひとたちによるプロモーションもあって、これは必ずしも「予言」とはなりえないのだった。
SPAはおそらく今後の主流のひとつになるのだろうとは思う。
しかし、昔のように全員がSPAに向かうことはないだろう。
さまざまな作り方が、共存していく形になるのではないか。
これに気がついて、あらためて「ほかでもない、ぼくに」必要な技術は何かと考えたときに、やっとわかった。
ぼくが今から学ぶべきことは「Laravel」であった。
LaravelはPHPのフレームワークのひとつで、いわばPHPという言語を「できるだけ簡単に書く」ためのものである。
たとえば今までPHPで10行ほどかけて書いていたプログラムが、たったの数行で書けてしまうのである。
実際に触ってみて「これだ」と思った。
これならば、まさに「10倍の効率化」が目指せる可能性がある。
ぼくは現在、10ページ以内のWebサイトならWordpressを用いて1時間程度で基本構造を作ってしまえるフレームワークを構築している。
写真や文章を流し込むだけで、おおむね出来上がってしまう仕組みである。
これを再利用することを考えた場合、今更Vue.jsで根本的な仕様を変更するよりも、すでに利用しているPHPの挙動を効率化させるほうがサスティナブルだといえる。
また、従来のPHPでは難しかったシステム開発的なことも、Laravelによって門戸が開かれる。
今まで築き上げてきたことを、「研ぐ」ためには、Laravelが最も適切な選択肢であろうと気がついた。
Vue.jsは、個人的には「好き」である。
これはこれで、明るい未来が見えそうな気がする。
しかしぼくにとっては優先順位はちょっと低かったようだ。
それよりもいままで構築してきたPHPの資産を有効活用するために、Laravelでそれぞれをバージョアンアップするほうが、どうやら現実的のようである。
「わたしの仕事はなにか」
ということを忘れて技術の魅力に虜になってしまうと、とても危ない。
技術というのはハニートラップであり、サキュバスである。
とてつもない色気で技術者を誘惑し、時間と精気をどんどん奪ってしまう。
はっきり言って、どのような新しいカッコイイ技術を身につけたとしても、カネにならんかったら全然意味ない。
「どれが最速でカネになるか」
という視点で技術を選ぶことも、忘れないようにしようと思う。