この数ヶ月、Disrupt やその他の技術イベントのおかげで、様々な大手ハイテク企業の多くのトップ技術者、エンジニア、マネージャーと話す機会を得ましたBay Area 。ソースコード生成という言葉や、ソフトウェアが通常どのように構築されるかを知っている人は、一般の人でもかなり多いと思います。しかし、技術者、特に現代のソフトウェア開発を把握している人と話すと、AppMaster とGitHub Copilot はどう違うのかという質問を受けます。なかなか興味深い質問ですね。
もしあなたが私の記事を読んでいるなら、おそらくCopilot - 高度なソースコード補完と生成のためのAIツール - について聞いたことがあるでしょう。Copilot は、開発者がソースコードの一部だけを書く場合の支援プログラミングのためのかなり良いツールで、AIは関数全体までもコード補完することを提供します。特に、パターンや辞書の補完が得意です。Copilot 、いくつかの項目を書けば、残りは自動的に生成されます。コミュニティからのフィードバックや最近のGitHub CEO の投稿によると、Copilot は良いペースで成長しているようです。
Copilot とは異なり、AppMaster は、断片的ではなく、完全なソフトウェアプロジェクトを生成することに重点を置いています。AppMaster は、プロジェクト全体(サーバーアプリケーション(バックエンド)、ウェブアプリケーション、モバイルアプリケーション、および補完的なものすべて)の要件を蓄積します。一般的には、エンジニアからデータモデルスキーマ、アプリケーションロジック、エンドポイント、UI要素、および将来のアプリケーションのためのすべての標準的な要件を視覚的なdrag-and-drop 形式で収集します。このオールインワン・アプローチにより、ソフトウェア・エンジニアはより少ない労力で、より多くのものを得ることができるようになります。
理解を深めるために、小さな例を挙げます。
Webまたはモバイルアプリケーションからサーバー/バックエンドにAPIコールを行うことは、最も一般的なタスクの1つです。通常、エンジニアはサーバーAPIのドキュメントを調べ、リクエスト/レスポンスの構造とそれに対応するすべてのコードを作成する必要があります。同じタスクは、AppMaster の dran&drop アクションで実現できます。このプラットフォームは、データモデルとエンドポイントについてすべてを知っているので、APIリクエストを簡単に作成するためのビジュアルブロックを自動的に事前生成し、対応するオブジェクト構造も作成します。さらに、データモデルが変更されるたびに、ビジネスロジックやエンドポイントプラットフォームは、エンジニアの介入なしに、依存するUI要素を自動的に更新します。
傍から見ると、AppMaster とCopilot は異なる問題を解決しようとしているように見えますが、私たちは同じソフトウェアエンジニアリングの問題に取り組んでいますが、アプローチは全く異なっています。Copilot は、ソフトウェアエンジニアがより多くのコードをより速く、より簡単に書けるようにすることを目的としていますが、私たちは、ソフトウェア開発のパラダイムを、プログラムコードを書くことによってソフトウェアを作ることから、ハイレベルな要件を定義するだけにシフトすることに焦点を当てました。要件があれば、プロジェクトのコードベース全体をゼロから再生成することができるという大きなメリットがあります。要件が変わったとき、コード生成アルゴリズムの改良があったとき、プログラミング言語やライブラリのバージョンを更新するとき、あるいは技術スタック全体を変更するときなど、どんな理由でも再生成することが可能です。
私たちは、「ソースコードに触れない」というアプローチと、ソフトウェアエンジニアリングのためのハイレベルな要件が、将来を左右すると信じています。
あなたはどう思いますか?いい話すぎる?ユートピア?
追伸:この分野に興味がある方は、Lex FridmanがTeslaの元AIディレクターAndrei Karpathyと、ソフトウェア2.0とコード生成について語った最新のポッドキャストをご覧ください。