SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これまでのWebシステムの歴史とトレンド

業務Webシステムは2010年が転換期だった? HTML5以降の最適化の歴史

これまでのWebシステムの歴史とトレンド 第2回

昔のやり方に戻れない理由

 Adobe PhotoshopやGoogleドキュメントのような複雑なUI/UXをもった機能をもったWebシステムまでは求めていないというケースも実際には多いでしょう。例えば、図11は、弊社で開発した年末調整用の申請書を作成するための画面例です。

図11:多少複雑なWebアプリケーション例
図11:多少複雑なWebアプリケーション例

 単純なWebフォームを用いた入力ではなく、PDF上の各入力エリア毎に入力しやすいようにカスタマイズしたフォームが開き、その入力結果が即時にPDFプレビュー上に反映されます。こういった(若干ながら)特殊な入力画面になると、クライアント側でやるべきことも増えます。

 しかし、この画面のためだけに、ReactやVue.jsなどのフレームワークを導入する必要はなく、多少面倒かもしれませんがjQueryやプレーンなJavaScriptだけでも十分に対応可能です。

 現実のプロジェクトでは、図12のようなシンプルな入力画面が大部分を占めていることがほとんどです。

図12:オーソドックスな入力画面の例
図12:オーソドックスな入力画面の例

 このケースでは、無理に新しい技術を採用せずにオールドスタイルで開発してしまった方が効率的です。

 しかし、現状ではそのようにうまくはいかない要因もあると筆者は考えています。それが、人のトレンドによる影響です。新しくIT業界に入ってくるエンジニアは、「既に知識と経験が豊富にあり、それを保持する人材がたくさん存在する」ような領域を新たに始めたいと思いません。

図13:あらたな開発参入者がとるであろう決定
図13:あらたな開発参入者がとるであろう決定

 先ほどの例で言えば、既存技術でできる90%の部分で活躍するよりも、難しい10%に興味を持つでしょう。また、そこまで野心的な人でなくても、現在活発にやりとりされている情報側を選択します。

 つまり、野心的な人であっても保守的な人であっても、今からIT業界に入る開発者は、代替する新しい技術がある中で、既存の技術を採用することが難しいのです。

 そして、今後は新しい技術スキルを身につけた人材が豊富になる一方、大きな発展が見込めない分野の技術者は少なくなる一方です。結果、現時点での開発難易度や効率性から見たベストな手法が、将来的にも採用できるとは限りません。

これからのWebシステムはどうすべきか

 実は、こういった課題は2000年ごろから生じ始めた、COBOLシステムからWebシステムへの移行時にも存在しました。

 当時、COBOLでできることはCOBOLでやるほうが、Webシステムよりも圧倒的に効率的でした。しかし、当時の最適を選んだ会社が現在困っていて、果敢に非効率に挑んだ企業が今のIT業界において、圧倒的な効率化の力を得ています。

 現在はまだ、フロントエンド技術を中心にした開発は過渡期と言えます。そのため、どこでも通用する解決方法があるわけではありません。各開発者やチームに応じて新しい方法を導入したり、一方でこれまでの技術を別の使い方をするなどの工夫が必要になるでしょう。

「つながる技術」という方向性

 工夫が必要になるといってもどういった方向で工夫すべきかという指針がないと「あとは各々で頑張ってね」と言っているに過ぎません。

 そこで筆者なりの方向性を挙げるとすれば、Reactiveというキーワードが非常にポイントになります。Reactiveになるためには、独立した2つ以上のものが接続している必要があります。そして、この「接続」は常時接続ではなく、必要になったタイミングで必要な時間だけつながるという流れが強くなっています。つまり、単純につながるということではなく、そこに少し違った技術や考え方の追加が必要になります。

 特にサーバサイド側の技術は、現在では、クライアント技術で代替可能になった部分と、クラウドなどに対してサービス化される部分があります。特にクラウドサービスでは機能の重要性も必要ですが、クライアント技術との親和性も重要です。

 例えば、マイクロサービスという言葉もそのような前提ですし、Webhookも、メインとなるWebシステム側に処理のライフサイクル制御をまかせず、簡単につながるための技術の一例です。

 次回は、このようなキーワードを参考にしつつ、具体的にどのような技術や仕組みを使って既存の技術資産も生かしながら、新しい技術を取り入れていくか、もしくは共存していくかについて弊社が行っている事例などをもとに紹介します。

最後に

 かつて、COBOLで行っていたシステムからWebシステムへ乗り換える際に、お客様から「同じシステムをCOBOLで作れば3倍安く、3倍性能が高いものを作れる」と言われたことがありました。

 つまり、古い技術を使えば約10倍効率的に作れると言われたのです。当時は、そう言われて悔しく、また反感も持ちました。あれから20年以上経って、ほぼ同じようなことを言う側になったのだと実感します。

 しかし、そのように言われたことがきっかけで、改めて汎用機時代の技術や設計思想などを勉強するきっかけができました。そして、コンピュータ資源の分散管理や仮想化技術、大規模システムにおけるデータ管理などにつながっていることを学び、クラウド時代でそれらの知識が役に立ちました。

 知識や経験が次の世代にはあまり活かせず、むしろ、その次の世代で活かせ、隔世遺伝のようになっていて面白いと思いました。サーバサイド技術の考え方も、今後別の技術トレンドが生じる中で再度活かせるようになるのではと思っています。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
これまでのWebシステムの歴史とトレンド連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/21246 2025/04/09 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー