97
119

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Webアプリ開発の変遷:1995年頃~2023年までの手動開発、2024年以降のAI駆動開発の普及(2025年2月)

Last updated at Posted at 2025-02-15

はじめに:AI駆動開発に適した技術構成を現状と歴史から模索

2025年はGithubCopilot、Cline、Continue、DevinなどのAIアシスタント、AIエージェントが開発現場で多く採用される年になると言われています。確かに、実際にソフトウェア開発の現場での利用状況をみると、「AI駆動開発」が本格的に広まっていく感じがします。

私も2024年から、徐々にAI駆動開発を始めました。最初は、小さいツールを作ったりしていました。確かに、小さいものを作るのであれば問題なくできます。ただ、本格的に仕事で使うにあたっては以下のような悩みがあります。

AI駆動開発導入時の悩み

・既存の構造化したプログラムをどのようにAI駆動開発にのせていくのか?
・AI駆動開発で、新規に大規模化、構造化したシステムをつくるにはどうしたらいいのか?
・メンテナンスもしやすいAI駆動開発はどのようにするのか?

上記の応えになるような方法や技術もでてはいますが、結構、ふわっとした情報で実際やってみると、まだまだ人間の手間がかかるなあと感じます。ただ、それは今後改善していくのだと思います。

この改善のヒントを得るため、以下のような情報を整理してみました。この情報整理を通じて、AI駆動開発をする際の技術構成の参考にしようと考えています。

AI駆動開発に採用する技術構成のヒント

・2025年時点で多く採用されている技術
・2025年の技術に至った過程や目的

2024年までは、人間がコードや設定ファイルをつくっていました。2025年以降は、AIがこれらの作成をしてくれます。今後、どのような技術構成であれば、精度の高い成果物がでるのかが、Webアプリ開発の現場で模索されていくと思います。そのヒントになればと思います。

ちなみに、当記事の内容を踏まえて、技術選定の視点を考えてみました。

1995年頃:インターネットやWebアプリ開発が広まりだした

私は40代半ばになります。今から大体20年前ぐらい私は大学生でした。大学の時、Yahoo(1996年)、Google(1998年)が登場し、「これからはネットの時代なんだ」というのを感じたのを覚えています。

また、理系の友達から、「これからはJavaが流行るよ」と聞いて、Java(1996年:ver1.0)を触ったのを覚えています。

私は2000年頃、ソフトウェア業界に就職しました。それから2025年の現在までWebシステムの開発を行っています。その過程でみてきた技術変遷について、以下の記事に記載しました。

2024年~2025年:Webシステム開発の技術は固定化している(2025年2月時点)

最近のWebシステムの開発技術は大体固定化しているように見えます。以前、2022年以降に流行る技術について予測を書いてみました。すべてがあたっているわけではないですが、ここで触れたもののいくつかがデファクトスタンダードになっているように思います。

たとえば、Webのフロントエンドの開発だと以下を採用するのが多いと思います。

・コンポーネントライブラリ:React
・フロントエンドフレームワーク:Next.js
・ビルドツール:WebPack、BUN、Vite:
・CSSライブラリ:Tailwind、Styled-Components
・プログラム言語:Typescript、Javascript

バックエンドも最近は、言語ごとにフレームワークが固定化していると思います。昔のように、フレームワークや言語が年によって変遷することは少なくなっていると思います。

言語別フレームワーク

・Python:Django、FastAPI
・Java:SpringBoot
・Ruby:Ruby On Rails
・PHP:Laravel
・Node.js:Express
・Go:Gin、Echo
・Rust:Actix、Rocket

インフラについては、以下のようなマネージドサービスやサーバレスを採用するところが増えていると思います。

インフラ

・マネージドサービス:AWS、Google Cloud、Azure、Oracle Cloud Infrastructure (OCI)
・サーバレス:Supabase、Firebase、MicroCMS、Vercel

他にもWebの技術の領域がありますが、それも10年前ほどは変遷もなく落ち着きをみせているように思います。エンジニアとしては、どの技術を使おうかという悩みは昔よりは減ってきていると感じます。

2000年から2020年頃まではWebシステムの技術は、言語やフレームワークが年ごとに流行りがあり、乱立していて本当に選定に苦労しました。今はそれがなくなったので、学習するにしろ、設計するにしろ、比較的楽になりました。

1995年頃~2025年までのWebシステム開発技術の流れを簡単に総括して、感想を書いてみます。

1995年頃~2024年のWeb開発技術の変遷:人間が直接コーディングや設定する負担を低減

2024年までのWeb技術をみると、人間が作業をするうえでどうやって正確に、かつ、認知や作業の負担を減少させるかという視点で作られてきたと思います。

以下、技術カテゴリ別に変遷を整理します。

プログラム言語の変遷

Webアプリ開発に限定したプログラム言語の変遷を以下の記事でまとめました。

上記から言語の変遷のみ抜粋しました。

プログラム言語の変遷

1.C言語
2.Java、VB
3.Perl、VBScript(ASP)
3.PHP、Ruby、Python
4.Node.js(JavaScript),TypeScript
5.Go、Rust、Elixir

これらの流れをみていると、人間が読み書きしやすくなるようにプログラム言語が採用されていったように思います。たとえば、C言語の採用が減っていったのはその象徴的な現象です。C言語は高速に動作するのだけど、人間が文字列操作やメモリ管理のコーディングするのが大変です。

ただ、大規模なシステムになると、処理速度や省メモリが必要になります。そこで、最近では、GoやRustが採用されているように思います。これらの言語は、人間の読み書きだけでなく、コンピューターの実行速度やメモリ消費などもあわせて効率化するように設計されています。

プログラミングパラダイムの変遷

プログラミングパラダイムとは、プログラミングする際の書き方や設計に関する統一した方針といえます。
Webアプリ開発においても、プログラミングパラダイムが時代ごとにありました。

このパラダイムについて、別記事で整理しました。

この記事からパラダイムの流れを抜粋します。

プログラミングパラダイムの変遷

1.構造化プログラミング
2.オブジェクト指向プログラミング
3.宣言的プログラミング
4.関数型プログラミング

プログラミングパラダイムの変遷も、結局は、人間がわかりやすいプログラムの流れ、複数人で問題なくモジュールを製造すること、拡張性を高めることを模索した結果だと思います。

オブジェクト指向は、コーディングの工数を減らそうとして継承やポリモーフィズムなどを使いました。ただ、それが依存関係を高めたり、インターフェースの利用などで処理の流れがスパゲッティ化したり、コードの可読性を低下させました。また、テスト実施も難しいという批判もあります。

関数型プログラミングは、純粋関数に象徴されるように、できるだけ小さい範囲で関心事をとどめ、関係性だけを扱うようにしています。人間は幅広い関心をカバーすることはできないので、関数型プログラミングの観点は人間にとっては管理しやすいと感じます。

また、宣言的プログラミングは、ライブラリが手続的な部分を吸収してくれているので、「目的仕様」を定義するだけでよく、作成しやすく、理解しやすいコードになります。

Webフレームワークとライブラリの変遷

Webアプリ開発では、フレームワークやライブラリを使うのが一般的です。特に、最近のWebアプリは実装する機能も多いため、ゼロからフルスクラッチで製造していては時間がいくらあっても足りません。

フレームワークやライブラリも2000年から2025年の間に、時代ごとの要求をうけて新しいものが生まれてきました。その変遷について以下の記事に整理しました。

上記の記事から、フレームワークやライブラリの変遷を抜粋します。

フレームワークやライブラリの変遷

1.Struts(2001年):フルスタックフレームワーク
2.Ruby On Rails(2004年):フルスタックフレームワーク
3.jQuery(2006年):DOM操作ライブラリ
4.Flask(2010年):マイクロフレームワーク
5.Bootstrap(2011年):CSSフレームワーク
6.React(2013年):コンポーネントライブラリ
7.Next.js(2016年):フロントエンドフレームワーク
8.Material UI(2018年):UIコンポーネントライブラリ
9.Tailwind CSS(2019年):CSSフレームワーク
10.Streamlit(2021年):UIフレームワーク

さて、列挙したフレームワークやライブラリの変遷から、以下のような背景がうかがえます。

技術変遷の背景

・社会的にWebアプリへのニーズが高まり、システムが大規模化したり、様々な立場のユーザーが増えて、ビジネスで利用されることが増えてきた。

・大規模システムを、パーツにわけて開発する必要性が出てきた。

・Webアプリが様々な立場のユーザーに使われたり、Webサイトが商品やサービスの売り込みに使われた。これにより、分かりやすく、訴求力のあるデザインが求められた。

・上記のニーズを満たすために、複雑化したシステム開発をできるだけ簡易化したり、効率化する方法が模索された。

2023年~2025年の技術動向を見ていた感じ、Webのフレームワークやライブラリにはあまり変化がないように見えました。勿論、各フレームワークやライブラリ内での変化はありましたが、フレームワークやライブラリ自体の世代交代のようなものはないように思います。

2024年以降は、生成AIによるAI駆動開発に関心が移ってしまったのも変化が見られない要因かもしれません。今後、フレームワークやライブラリにおいても、AIの機能を取り入れたり、AIによる開発のサポートなどが増えてくるのではないでしょうか。はたまた、AIアシストをベースとした今までにないフレームワークやライブラリが生まれる可能性も否定できません。

いずれにしろ、Webフレームワークやライブラリについても、曲がり角にきているように感じます

アーキテクチャ・プロトコル

準備中

インフラ

※アプリ稼働環境、ミドルウェア
※サーバー、DB、プラットフォーム、マネージドサービス

準備中

開発・デプロイ支援ツール

※バージョン管理ツール、ビルドツール、構成管理ツール、CI/CDツール

準備中

エディタ・IDE(統合開発環境)

Windows系:秀丸、サクラエディタ

準備中

Unix・Linux系:Vim、Emacs

準備中

Eclipse、NetBeans

準備中

JetBrain製品(IDEA、PhpStorm、RubyMine、PyCharm)

準備中

VSCode

準備中

Cursor、Windsurf

準備中

2023年:「ChatGPTショック」を経てAI駆動開発が始まりだした2025年

以上のように、技術変遷自体は落ち着いて来ました。次に現れたのが「生成AI」の波です。これからWebシステム開発をするうえで注目し、身につけるべきスキルは「生成AI」を利用した開発スキルだと思います。

2023年11月、OpenAIが発表したChatGPTによって生成AIの利活用が勢いを増してきました。
それまでにも機械学習、深層学習というキーワードでAIの話は聞こえてきていましたが、本格的に利活用が始まりだしたのは、ChatGPTの発表以降ではないかと思います。

そして、生成AIのインパクトは、ソフトウェア業界にも及び、2024年には「AI駆動開発」という言葉を目にすることも増えてきました。

AI駆動開発は、文字通り生成AIを使って要件定義、設計、製造、テスト、デプロイなどソフトウェア開発の作業を行うことを指します。

2025年2月現在の自分が観測した範囲のAI駆動開発の状況

私は大企業から中小までソフトウェア開発の支援を行っていたり、色々なイベントでエンジニアに会う機会があります。その際に、AI駆動開発の状況などを聞いたりします。

2025年2月時点までで、私が聞いたり見たりした感じだとAI駆動開発は以下のような状況だと思いました。これはあくまでも私個人の観測なので、社会一般のリサーチ結果ではありません。

・ChatGPT、Perplexity、Felo、Claude、Geminiなどの生成AIに検索を代行させたり、小さいモジュールをコーディングさせたりする。

・Cursor、VSCode+GithubCopilo/ClineなどのIDEを利用して、要件定義、設計、製造、テストなどにおいて部分的にAIをつかって作業を行っている。

・DevinなどのAIアシスタントを利用して、ソフトウェア開発作業の自動化を始めている。

以上が、個人的にいくつかの現場のエンジニアに聞いたりした状況です。すべての工程を生成AIにまかせているというのは少なく、ある限られた作業領域でAIを使っているというのが多かったように思います。

2025年はAIアシスタント、AIエージェントが普及すると言われていますが、AIアシスタントのDevinなどを採用する企業なども少しずつ増えているようです。

一方、ソフトウェア開発の業界に関する生成AIの導入のアンケート調査をみると、なんとなく個人的な観測と近いところも感じます。

ソフトウェア開発に関するAIツールについては、有名でよく使われるものもでてきたので、何から手を付けたらいいのかというのはあまり悩まなくなった気もします。
ただし、日々、新しいツールやサービスがでてきますので、技術動向に注目しておくのは必要だと思います。

開発系のツールについては、以下のawesomeリストが広範囲にまとめていて、ここから気になるものを生成AIで検索したり、調べると良い気がします。

2025年以降、生成AIはチャットツールやエディタのように使うのが当たり前に

これから先、生成AIをつかうのは当たり前になっていくと思います。すでに、利用することでかなり生産性があがっているのを実感します。

私は、20年間Webシステムを手動でドキュメント作成、コーディング、テスト実施などを行ってきました。最近は、GithubCopilotやClineなどをつかって、生成AIにコーディングさせるようにしています。

書き方も、いきなりプログラムを書くのではなく、仕様書をマークダウンで作成して、それを生成AIに読み込ませてコーディングさせるようにしています。

既存プロジェクトの改修などではまだ生成AIの導入は進められていませんが、データ解析用のSQL、小さいツールなどはほぼAIにコーディングさせています。

これからもっとソフトウェア開発工程に深く生成AIは導入されてくると思います。

2025年2月現在、生成AIの利用をするには金銭コストの高さが導入のネックになっているように見えます。

ただ、2025年1月の「DeepSeekショック」に象徴されるように、今後、モデルの改良によって低コスト化していく可能性はあると思います。

個人的に、大体どのモデルや生成AIを利用したサービスはどれも似たりよったりになりつつあり、最終的には低コスト化をして市場を独占しようという動きが広まる気もします。

2023年前後のWebシステム開発技術の比較

ここまで見てきたように、2023年の「ChatGPTショック」を境として、Webシステムの開発技術は大きな転換点を迎えているように思います。

2023年までは、いろいろなプログラム言語、フレームワークなどを追いかけて人間がそれを理解して、コーディングをしていました。

それが2023~2025年にかけて徐々に、生成AIに要件定義、設計、コーディング、テスト、デプロイなどをさせるようになりつつあります。

2025年現在、プログラム言語の仕組みは知っておくべきですが、コーディングについては必ずしも人間が手を下す必要がなくなってきています。

システムやアプリを設計するための技術知識や理解は必要です。ただ、コーディングや設定作業は生成AIにさせるというのが2025年以降の開発スタイルになっていきます。

プログラミングも、「プログラム言語」から「自然言語・話し言葉」を使ってするものになっていきます。むしろ、「設計考案」という考える行為が人間の中心的な作業になり、テキストを作成するのは生成AIが代行するようになります。

今まで、プログラム言語をコンパイルしてバイナリをつくっていたのと流れは変わらず、生成AIがコンパイラーのような働きをするようになります。

プログラム学習についても、生成AIにコーディングさせてそれを解説させるというやり方が一般化していくように思います。動画などでアプリ開発の流れをみて、それを生成AIにコーディングさせて、そのコードを解説させて、プログラムなどの技術を理解していく。

私のように生成AIがなかった時代にプログラムを覚えた世代と、生成AIがコーディングをするのが当たり前の世代では、学習方法もかわっていくと思います。

ただし、学習のプロセスは変わったとしても、製造に関する技術理解が必要であることは変わらないと思います。そうしないと、設計の時間もかかるし、問題が起きたときの対応に時間がかかるようになります。

ソフトウェア開発のエンジニアである以上は、技術理解は必須であり、これは今までと変わらないと思います。ただし、エンジニア以外の人が、アプリを生成AIでつくる場合は、その限りではないと思います。特に問題を起こさないのであれば、技術への理解など不要かもしれません。それは車を乗るときに、車の機構をしる必要がないのと同じだと思います。

AI駆動開発時代のエンジニアの役割

AIエージェントやアシスタントに開発作業を任せるようになると、人間のエンジニアは何をするのでしょうか?

これは時期にもよると思いますが、当面は、以下のような動きをするのではないでしょうか。

これまで通り、ソフトウェア開発の技術を把握しながら、それを元にユーザーからヒアリングしたり、設計作業を行う。そこで整理した情報を生成AIに入力して、設計書、コードをつくり、テストやデプロイをさせる。その過程で、人間の確認や調整が必要になります。

また、こうした開発工程にAIを導入したり、運用のメンテナンスをエンジニアが行うと思います。

ドキュメントやコードの作成の比率は下がりつつ、AIのマネージメントの時間が発生すると思います。勿論、この工程すら生成AIのサポートがあると思います。

そのうち、AIツールの開発者以外はソフトウェア開発に携わらなくなる状況も来るかもしれませんが、当面は上記のような状態になるのではないでしょうか。

なので、ソフトウェア開発エンジニアの人は、今までのソフトウェア開発の技術に加えて、AIマネージメントの技術を習得する必要があると思います。

AI駆動開発時代の技術知見はこれから磨かれる

これからのWebシステム開発はAI駆動開発になるのは間違いないと思います。ただ、この技術はまだ生まれたばかりなので、これから様々な知見が社会的に蓄積され、切磋琢磨されていくと思います。

それは、Webのシステム開発技術と同じような過程を経るのだと思います。Webシステム開発の技術も2000年から2023年までの間に紆余曲折がありました。そして、やっと最近では技術が安定してきているように思います。

生成AIはこのWebシステム開発の技術が辿ってきた道をこれから歩んでいくのだと思います。
私は、ソフトウェア開発者としての人生において何度か技術転換点を経験しました。おそらく、私が現役で最後の転換点がこのAI駆動開発の時代だと思います。

日々、新しい技術がありそれをキャッチアップするのが大変ですが、Webの技術をキャッチアップしてきたが、それとそんなに変わらないと思っています。

20年前、インターネットが流行りだしたとき、新しい世界をまえにワクワクしたのを覚えています。そのときと同じワクワク感を、20年後の今、生成AIに対して抱いています。

これからは、AI自体、そして、AI駆動開発について技術をウォッチしていくと思います。

おまけ:2/16(日):AIを利用したソフトウェア開発のワークショップ

知り合いのAI関連会社の会社の方がAIワークショップをされます。興味がある方は参加してみてください。懇親会がありますが、私も参加します。

97
119
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
97
119

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?