Aiki x Developer

opinion

エンジニア業界でホットな技術は、世間一般で採用されるまでに時間がかかる

June 15th, 2019

VR

どうもー、ドイツでフリーランスのフルスタック&フロントエンドエンジニアをしています、Arisaです。

ここ数年でweb業界も大きく変わり、最近ではJAMStackや、static generatorのサイトで構築されたwebサイトやアプリケーションが大幅に増えています。

このポートフォリオ&ブログサイトもその1つで、フロント部分とデータ構造はGatsbyとGraphQl、CMSにContentful、ホストにNetlifyを採用した、いわゆる上記のモダンなwebであり、webアプリケーションであるサイト構造を持ったstatic generatorサイトです。

少し話が前後しますが、私は前職が客室乗務員で、割と最近といえば最近の2017年2月まで1年間ドバイのエミレーツ航空でフライトに乗務していました。

辞める1、2ヶ月前からプログラミングを独学で学び始め、2017年2月から2ヶ月半スクールに通い、2017年3月からエンジニアとして案件受注をしていました。

要するに、私のプログラマーとしてのキャリアは、約2年半。

たった2年半でも、web業界だけで大きく、そして猛スピードで技術は変化しています。

まだ学習中だった頃は、jQueryはメジャーで使っている人も多かったですし、Reactができれば、かなり最先端をいっている印象でしたし、JavaScriptは、まだES5で書かれていて、「そろそろES6で書いた方がいいらしいよ」という噂が流れ始めた頃でした。

今はwebはアプリであり、アプリはwebです。

サーバーのデータベースにデータを置いて、わざわざ遠回りをして取得をする読込みの遅いサイトは人気がなくなり、ブラウザのES6対応を待たずしてJavaScriptはES6で書くのが主流で、Reactは日本のスタートアップやヨーロッパのスタートアップにはマストになり、React Nativeでwebの技術でモバイルアプリを作るハイブリッドなアプリ開発も実用化が進みました。

CMSもWordpressだけでなく、ContentfulのようなAPIを駆使したさらに便利なものが出てきて、Wordpressもバージョン5になり、Reactコンポーネントを意識したブロックでの構築やGutenbergエディタのリリースもありました。

webだけ取っても、これだけ、もしくはそれ以上の変化が、たったの2年と数ヶ月で一気に起こっています。

もはやフロントエンド でバックエンドまで実装できる時代です。

エンジニア業界全体でのホットな技術というのは、光のような速さで変化するため、キャッチアップは常にする必要があると同時に、常に「今度はどんなことができるようになるんだろう」という期待感もとても大きいです。

飽き性で学ぶことが好きな私からすれば最高なのですが、世間一般、要するに実用の現場ではどうでしょうか?

実例が出てくるにつれ、知る機会は増えるが、採用には至りにくい

世間一般では、特に企業などは最新の技術を取り入れようとするとコストが必ず発生します。

それだけではなく、導入と従来の技術の入れ替えの作業が必ず発生するので、会社の利益にダイレクトに影響を与える可能性も場合によってはあります。

Wordpressが出て間もない頃は、まだまだCMSはそこまで浸透しておらず、webサイトはほぼ未開拓でした。

それが今は、SEOを意識するのであればWordpressということまで定着し、「ブログ=Wordpress」という知識をすでに持っている人も、エンジニア以外の人で非常に多いです。

でもエンジニア業界でホットな技術に世間はすぐには追いつくのが難しいという現実は常にあり、CMSが知られていない頃であれば、Wordpressは地名度が低く、Wordpressがメジャーになった今では、JAMStackやstatic generatorサイトは、一般には名前すらまだそんなに知られていません。

例を挙げるとたくさんあるのですが、そのうちの1つがMediumというブログサービスとnoteです。

noteは日本語話者の人には馴染みが出てきたブログサービスかと思います。

自分で有料記事か無料記事か設定でき、料金も決めることができ、応援したいクリエイターには寄付もできます。

マガジンを作ることもできますし、音声でPodcastのように配信することもできます。

一方でMediumはというと、有料記事は作成できませんが、SNSのいいねのようなclap(拍手ですね)をしてもらうことで収益につながるプログラムはあります。

特定の記事を有料会員にのみ公開することができ、その有料会員からのclapが収益に一部還元されるというシステムで、ここはnoteと違います。

寄付やマガジン機能もないことはnoteとの違いに入りますが、基本的な残りの機能に関してはほとんど同じサービスです。

似ているサービスなのですが、理由があります。

noteがMediumをモデルにして作られたブログサービスだからです。

今回の記事はMediumとnoteのユーザーとしての比較ではなく、エンジニアとしての両者で採用されている技術の違いを見ていきます。

エンジニア業界でホットな技術は、実用にはすぐには至らないということを書いていますが、Mediumとnoteに採用されている技術はまさにそのことを表していると言っていいと思います。

JavaScriptは、もうES6で開発をするのが主流で、ES5で書いているエンジニアは、例えば全体をES6に変えるにはコストがかかるなど、よほどの理由がないといないです。

MediumとnoteにはJavaScriptが使われていますが、noteはES6で書かれていても、MediumはES5なのです。

要するにMediumにはよほどの理由があるのです。

Mediumがリリースされたのは2012年。

ES6 (ECMAScript 2015)は2015年。

リリース当時はES6がまだリリースされていなかったのです。

でもES6が来るという話はあったのではないかと思います。(まだ私はその時プログラミングすら書いたことがない時期だったので知る由もありませんが)

MediumはES6ではなく、当時メジャーだったES5を採用し、今は世の中がES6でデフォルト化されている中、ES5でメンテナンスをしなければいけません。

でもMediumが開発に使う技術選択を誤ったわけではないと私は思います。(個人的な意見ですが)

ES6も、リリースの2015年からメジャーになるまで、エンジニアになっての体感ですが、実に2、3年はかかっています。

エンジニア業界でホットな技術は、数年越しに実用が増える現象そのものです。

noteはES5で書かれたMediumのモデルを、一生懸命ES6に書き換えたそうです。

とても骨の折れる作業だったと思います。

noteの開発メンバーの方のnote記事を読みましたが、労力がすごかったです...

MediumはES6の書き換えをしていません。(私の把握している範囲ですが)

理由は簡単です。コストとリスクの方が高いのです。

だから世の中の企業やビジネスのシーンでも、いまだに旧来の技術のニーズがあるんですね。

エンジニアとしての葛藤

ここでエンジニアとしての自分の意見はというと、葛藤です。

新しく改良がされて、それなりにエンジニア業界で浸透している技術であれば、今までの技術で取り扱いにくかった問題を解決していることが多く、便利な方を知っていながら、今までの技術で開発しなければいけないというのは、なかなか気が進みません。

でもクライアントの抱えている理由もわかるので、捨てきれないところがありますし、実質、Wordpressは特に開発や管理が面倒な上に、今までの技術で実装するのはスピード感のないサイトになるので一番気が進まないのですが、全部は断れません。

かと言って、自分がContentfulが好きだからという理由でクライアントにゴリ押しするわけにも行きません。

使い慣れていないCMSをゴリ押しした結果、クライアントの満足度につながらないということもあるからです。

クライアントがサイトの管理をしたいという場合は、もう今までのWordpressで腹をくくるほかないことも多々あるのです。

Gutenbergの導入やブロックを導入したReactメインのテーマ開発を今後のことを考えて説明をしても、クライアントからすれば違いがよくわからず、よくわからない新しい技術の方を選びにくく、ヒアリングが滞って開発に取り掛かるまでが長いなんてこともあります。

正直、エンジニア業界のホットなトピックと、実用までに至るまでの時差が大きすぎるというのが本音ですが、そう言ったところで実際のニーズはまだまだキャッチアップするまでに時間がかかるので、エンジニアはエンジニアで、ある程度の時差を受け入れる必要があります。

ただ、この時差に関しては、うまく最新技術の情報共有や実例が世の中に浸透していない、出回っていないという問題も大きいと思います。

クライアントの人が最初にそういった最新技術をキャッチアップするのは、身近にエンジニアがいて、その人がブログリニューアルをしていたから見てみたとか、web開発やメンテナンスの依頼をしたらそういう話があったとか、割と限られた機会しかないという事実があると思うんです。

これは仕方ないと思います。

意識して調べるエンジニアはキーワードを知っているので調べられますし、興味のある内容なので気になって見ますが、知らない情報を意識して探すことはできないので、エンジニア以外の人にとっては到達しようのない情報なのです。

エンジニアがもっと共有したらギャップが埋まるのでは?

そこで思ったのが、クライアントやユーザーは、情報共有がなく、目にする機会が少ないのでエンジニアが騒いでいるホットなトピックを知る機会なく、「この技術が今後のためにはメンテナンスを減らすためにも採用するといいですよ」といきなり言われて頭を抱える状態なんですよね。

ということは、クライアントやユーザーがもっとそういったエンジニア業界のホットな技術を目にする機会が単純に増えればいいわけです。

即効性はないですが、もっと多くのエンジニアがそう言ったホットな技術についてシェアをする、あるいは、もう手っ取り早く最新技術を使用した実物を多く公開するといったことをすれば、「このサイト超読み込みが早い!サイト運営者にどうやって読み込みを早くしてるのか聞いてみよう」など、ユーザーやサイト運営者の方が、技術名を知らなくても「これは良い!どうやったら実現できるのか知りたい」と到達しやすくなると思うのです。

有言実行までに時間はかかりましたが、私ももっとstatic generatorサイトやJAMStackが広まって欲しいと思っているので、講師をしているオンラインプログラミングスクール(CodeGrit)の担当受講生にも、そう言った技術の話はしますし、実物を多くの私が関わっているノンプログラマーの人にも知ってもらいたかったので、このポートフォリオとブログのサイトのリニューアルにも採用して公開に至ったという経緯があります。

一番この実物であるサイトを訪問したユーザーや、サイト運営者、プログラミング学習者からよく聞かれるのは、

  • 「サイトの読み込みが爆速ですね!どうやってるんですか?」

  • 「Wordpress使ってないんですか?CMSは何を使ってるんですか?」

  • 「問い合わせフォームはWordpressじゃないのに、どうやって導入してるんですか?」

というものです。

そこで「Gatsby」「Contentful」「Netlify」「static generator サイト」などのキーワードを私から得ることができるので、実物を見て「この機能どうやってるんだろう?」という疑問から「Gatsbyって技術がどうやら爆速サイトを作るらしい」とか、「Contentfulってカスタマイズの自由度が高いらしい」とか「Netlifyにすれば、サーバー代がアクセス数が平均的なサイトであればドメイン代だけで済むのか!」という具体的な答えに変わります。

どういう技術を使用したら、興味のあった機能が実現できるかがビジュアルでもキーワードでもユーザー層やサイト運営者にも伝わっていますね。

そしてエンジニア同士では詰まったポイントや、ほかの技術との比較、メリットデメリットがさらに踏み込んで話せます。

まとめ

今回はオピニオン系記事でしたが、エンジニア業界でホットな技術が実用に至るまでのギャップの悩みの背景と、小さいかもしれませんが、ユーザーやサイト運営者にとっても、それから開発者にとっても有益になる解決の提案を書いてみました。

技術者と非技術者とのギャップをいかに埋めるかということが、私はもともと非技術者だった立場の記憶がまだ鮮明なので、いかに大切かということを意識しています。

プログラミングを受講生に教えるときもそうですが、初心を忘れず、その人がわかりやすい例を提示して解説するように心がけています。

わかりやすく説明することの方が、わかりにくく説明することよりも何倍も難しいのですが、それができるとプログラミングが楽しい、できるようになってきたという言葉を自然と言ってくれるようになるので、プログラミングに対する意識やイメージが変わるのを何度も見てきました。

それと今回のトピックは似ているのかもしれないと、サイトをリリースして思います。

割と「この機能はどうしているんですか?」と聞かれることが増えて、説明をするとすんなり理解をしてもらえたりする上に、「Contentfulのブログが欲しくなった」とブロガーの友人にも言ってもらえたりしたので、純粋に嬉しかったです✨

少しでもこの記事が面白かったり、興味を持ってもらえたりしたら嬉しいです。

では、

ちゅーす