OpenAIのCEOであるサム・アルトマン氏が、今後開発されるOpenAIモデルのクリエイティブなライティング・スキルについてぼやかしている中、多くの開発者やソフトウェア・エンジニアは、「バイブ・コーディング」と呼ばれるものを活用しています。この表現は、出現してまだ6週間しか経っていませんが、RedditやさまざまなSlackチャンネル(IBMを含む)で議論を巻き起こし続けています。
簡単に言えば、バイブ・コーディングとは、OpenAIの共同創設者であり元Tesla AIシニアディレクターのAndrej Karpathy氏が、最近、LLMが推論とコーディングにおいてどのように優れてきたのかを表す際に使用した用語です。(例:Claudeのソネット、またはAIコードエディターCursor)。今回彼は、開発者は「バイブに降参し、エクスポネンシャルを受け入れて、コードの存在を忘れる」ことができるとXに書いています。Ars Technica氏は、「バイブ・コーディングでは、コントロールと精度ではなく、流れに従うことがすべてです」と述べています。
IBMのテクニカル・ストラテジストであるJoshua Nobleは、バイブ・コーディングは冗談として始まったと信じていると述べています。しかしこの表現は、、インキュベーターであるY Compinator氏が、「Vibe Coding Is the Future」というタイトルの30分間のビデオ解説を作成したことで固定化されました。
バイブ・コーディングは未来なのかもしれませんが、現在、これはまだ不完全です。「アイデアが尽きたとき、あるいは面倒に感じているときは、CoPilotに少し任せて、自分がどこに向かうのかを確認する、というのが本当に合っていると思います」とNoble氏は言います。「何かを見て、言及し、実行し、コピー&ペーストするだけで、ほとんど機能します。」
IBMのテクニカル・コンテンツ・マネージャーであるAsh Minhasも次のように同意します。「バイブ・コーディングは意味があります。」「インスピレーションを得たら、それを何かに変えることができるということです。」Minhasは、自身の視点を説明するために、彼と兄弟とともに、ユーザーがFIRE(金融独立、早期退職)番号を確認できるアプリを作成するためのプロンプトを考案したと述べています。「技術的なスキルがあるのなら、これはとても素晴らしいです」と彼は言います。
今や、AIは経済のほぼあらゆる側面に到達していますが、開発者やソフトウェアエンジニアの作業を混乱させる可能性があるのでしょうか?バンガロールに本拠を置くIBMのリードAIアドボケートであるShalini Harkarは、LLMをコーディング、デバッグ、テストに使用できることで、多くのオペレーションを改善できる可能性があると述べています。
「最近の開発者は、日常的な作業よりも、現実世界に大きな影響を与える複雑な問題の解決、効率的なアーキテクチャー・デザインの設計、より迅速な市場投入ストラテジーの有効化、イノベーションの促進に重点を置いています」と彼女は説明します。
IBM特別エンジニアのMichael (Max) Maximolienは引き続き、コードに対して手動テストを実行するようチームに指示しています。「しかし、ますますテストを作成する必要はなくなりました」と彼は言います。「実際にコードを書いてからLLMにテストを書いてもらうこともできます。ほとんどの場合、LLMはまともな仕事をしてくれます。突然、生産性が大幅に向上したのです。」
この効率の向上に加えて、AIは経験の浅い開発者が自分のスキルをファイン・チューニングし、より速いペースで実践的経験を積むのを支援できます。「『私がやろうとしていることは次のとおりです』と言うだけで、コードの最初のバージョンが作成されます」とMaximilienは言います。「[その後で]修正すれば、また次に進めるわけですそれこそが高速化です。」
この初期段階では、バイブ・コーディングはまだ開発者の冗談のようなものであり、コーディング専門家のための技巧の一種です。しかし、これは、コンピューター・サイエンスとソフトウェア・エンジニアリングの分野におけるAIとのコラボレーションの意味を再定義する準備ができていることを示すものかもしれません。
一部の見解では、テクノロジーの未来には、人間と機械とのより多くのつながりが含まれるかもしれません。IBMのテクニカル・コンテンツ・ライターであるVrunda Gadeshaは、「コーディングの将来では、自然言語理解、感情認識アルゴリズム、リアルタイムの感情分析が優先され、人間とコンピューターの対話がより直感的になっているでしょう」と述べています。
人間は常にプロセスの不可欠な一部ですが、AIはコーディング部分をはるかに簡単にします。「困難なソフトウェア・エンジニアリングでは、最適化や非常に特有なビジネス・ロジックやエッジ・ケースを検討するために、プロセスの一定の時点で人間が常に必要となります」とNoble氏は言います。「しかし、コーディングについて考えると、『これを行うアプリをコード化する』ということだけで、大規模な言語モデルが実行可能な作業の量は本当に増加しているのです。そして、それはかなりエキサイティングなことです。」
Javaアプリケーションを開発および配信するためのフルマネージドのシングルテナント・サービス。
DevOpsソフトウェアとツールを使用して、複数のデバイスや環境でクラウドネイティブ・アプリケーションを構築、デプロイ、管理します。
クラウド・アプリケーション開発は、一度構築すれば、迅速に反復し、どこにでもデプロイできます。