ジェフ・コグスウェル 2024年5月3日 16分読了
開発者たちは、技術専門家のコーディングを支援するために設計された生成 AI ツールの構築に着手しています。しかし、他のあらゆるツールと同様に、これらの AI 強化ツールを導入する際には注意が必要です。たとえば、ツールによって生成されたコードは、作成者が QA 機能でバグに対処できると主張していても、必ず二重チェックする必要があります。
それを念頭に置いて、Replit や GitHub CoPilot などのツールをいくつか見てみましょう。これにより、現在のワークフローに最適なツールがどれかがわかるはずです。
Replit は、HTML や Javascript を簡単に試すためのツールから、アプリを実行するための仮想サーバーを備えた本格的なオンライン IDE に成長しました。多数の言語と、膨大な数のライブラリやパッケージをサポートしています。最新バージョンには、Visual Studio Code と同じオープンソース コード エディターをベースにした非常に優れたコード エディターが含まれています。
2023 年 10 月、Replit はコード エディターに AI ツールを追加しました。入力中に、次に何を入力すればよいかを提案します。表面的には、これは目新しいものではありません。コード エディターは長年オートコンプリート機能を提供してきました。しかし、このオートコンプリートは AI を使用し、オートコンプリートを次のレベルに引き上げます (理論上)。
簡単な例を 1 つ挙げます。Replit で Python アプリを作成しました。次に、Person という新しいクラスを作成しました。このクラスには、self (すべてのメソッドで必要)、firstname、lastname の 3 つのパラメータを取る _init_ コンストラクターが含まれています。次のように入力し始めました。
定義__init__(self, firstname, l
小文字の「l」を入力するとすぐに、最初のパラメータが「firstname」であることに基づいて、2 番目のパラメータが「lastname」になると予測されました。また、閉じ括弧は追加されましたが、コロンは追加されませんでした。そこで、Tab キーを押して提案を受け入れ、コロンを入力しました。
Enter キーを押すと、正しく次の候補が表示されました:
最初のパラメータを同じ名前のメンバーに格納します。Tab キーを押してそれを承認しました。すると、なんと次の提案が示されました。
これもまた、まさに私が必要としていたものです。そこで、もう一度 Tab キーを押してそれを承認しました。結果は次のとおりです。
def __init__(自分、ファーストネーム、ラストネーム):
自己.firstname = ファーストネーム
次に、Person の新しいインスタンスを作成するコードを書きました。驚いたことに、「オートコンプリート」が私の姓を入力しました。変数 Fred を作成し、次のように入力し始めました。
私はびっくりしました。私の姓が自動的に入力されました。それはまさに私が入力しようとしていたものでした。Flintstone です。そしてもちろん、次の行は barney という変数になる予定でした。さらに入力を少なくして、次のようにしました。
最初のパラメータに Barney を入力し、2 番目のパラメータに Rubble を入力しました。
より現代的になるために、Taylor という変数も作成しました。次のように入力しました。
そして、はい、あなたはそれが何を示唆しているか知っています:
taylor = 名前(firstname='Taylor', lastname='Swift')
私はテイラー・スウィフトを受け入れました。(その後、ジョーとドナルドという 2 つの変数を作成しました。提案された名前は、ジョー・ブロッグスとドナルド・ダックでした。わかりました。政治的なことではありません。決心して、ジョーの代わりにジョセフを試してみたところ、ジョセフ・スターリンが提案されました。何だって? わかりました。気にしないで、次に進みましょう。)
はい、これはプログラミングにとって特に重要なことではありませんが、このツールには膨大な量の情報を含む巨大な LLM (大規模言語モデル) があることがはっきりとわかります。実際のコーディング提案を試してみましょう。
そして、それは私の行の残りの部分を埋め、私がどこに向かっているのかを正確に予測しました。
私の名前 = [フレッド、バーニー、テイラー]
名前をリストに入れるつもりだとわかっていました。(そして興味深いことに、タプルではなくリストを選択しました。リストは変更可能で、一般的に便利です。)
もう一歩進めてみましょう。この記事を入力しながら、AI ツールが、名前をループして、名前、スペース、姓を含む文字列を出力する関数を正確に記述できるかどうかを確認します。この段落を入力する前に、まだこれを試していません。試してみましょう。何をしようとしているのかのヒントを与える必要があるため、関数名にそれを指定します。print_full_names という名前を付けます。入力する内容は次のとおりです。
左括弧を入力するとすぐに、この部分が入力されました。
コロンなし。(この関数はクラスの外で書いたので、self パラメータは正しく含まれていませんでした。)
コロンを入力しました。すると何が表示されましたか? これは:
print(名前.firstname, 名前.lastname)
できました。次に、mynames リストを使用して関数を呼び出す必要があります。関数の後に次のように入力しました… (おそらく、これがどこに向かっているかはおわかりでしょう):
そして、パラメータが自動的に入力されました:
完璧です! 実行すると、もちろん 2 つのフルネームが出力されます。
また、print_last_names という名前の関数も作成してみました。予想どおり、def に続けて print_last_n と入力しただけで、残りの部分 (print_last_names) が入力され、最終的には各項目の lastname メンバーのみをループして出力するコードが生成されました。
このツールをさらにテストするために、名前をファーストネームでソートし、ラストネームだけを出力する関数を書くことにしました。もちろん、いくつかのヒントが必要なので、関数を呼び出しました。
def ファーストネームとラストネームのみでソート
予測できなかったので、すべて入力する必要がありました。次に左括弧を入力すると、名前がパラメータとして提供されました。タブで移動し、コロンを入力して Enter キーを押しました。いくつかの行が提案されましたが、どちらも Tab キーを押す必要がありました。上記の行に続いてさまざまな括弧、タブ、コロンを入力した後、生成されたものを見てみましょう。
def sort_by_firstname_and_print_only_last_names(名前):
sorted(names, key=lambda name: name.firstname) 内の name の場合:
そして、この文書にこれを入力するのを待っている間に、別の行が表示されました。
ファーストネームでソートし、ラストネームのみを印刷(mynames)
そこで、Tab キーを押してそれを承認し、実行しました。そして、それを実行しました。この特定の関数の出力は次のとおりです。
うまくいきました。ラムダ関数と呼ばれる高度な Python 機能を含む関数を作成し、リストをファーストネーム (Barney、Fred、Taylor) に基づいて並べ替え、姓のみを出力しました。すべて、AI にヒントを提供するために私が注意深く作成した関数名に基づいています。
AI ツールの世界におけるプログラマーにとって最大のエントリーは、おそらく GitHub Copilot でしょう。これは、OpenAI (ChatGPT の開発元) が GitHub と共同で開発したものです。Visual Studio Code、Visual Studio、JetBrains など、いくつかの IDE のプラグインとして利用できます。
Copilot も無料ではなく、サブスクリプションが必要です。(この記事の執筆時点では、個人サブスクリプションは月額 10 ドルまたは年額 100 ドルです。) 以下はすべて個人プランに基づいています。
VS Code で Copilot を使用するには、まず GitHub の Web サイトで Copilot をアクティブ化する必要があります。こちらにアクセスして、「Get Started With Copilot」をクリックすると、個人プランに「無料トライアルを開始」が表示されます。情報を入力すると、さまざまな IDE で Copilot を使用できるようになります。Visual Studio Code を見てみましょう。
VS Code を開き、拡張機能に移動して「Copilot」と入力します。上部に GitHub Copilot が表示されます。それをクリックして、[インストール] ボタンをクリックします。次に、「GitHub Copilot を使用するにはサインインしてください」というポップアップが表示されます。青い [サインイン] ボタンをクリックすると、ブラウザーで GitHub に移動します。許可を求めるポップアップ メッセージが表示されます。[許可] ボタンをクリックします。これにより、「GitHub for VS Code が追加のアクセス許可を要求しています」という GitHub ページが表示されます。[承認] ボタンをクリックすると、VS Code に戻るように求める別のポップアップが表示されます。これで準備完了です。
コード ファイル (Python の場合は .py 拡張子のファイルなど) を開くと、「GitHub Copilot Chat に何かを実行するように指示するには、Ctrl + I を押してください」というメッセージが表示されます (Ctrl キーと大文字の「目」のキーの組み合わせです)。
私は次のように入力しました。「firstname と lastname という 2 つのメンバーと、その 2 つのメンバーを初期化するコンストラクターを含む、Person という Python クラスを作成します。」 すると、なんと、Replit の例で見たのと同じクラスが作成されました。ただし、この場合は誤って Name ではなく Person という名前を付けたため、そのコードがファイルに直接貼り付けられました。
次に、「リストを保持する People という変数を作成」するように指示しました。残念ながら、これはコンストラクター関数内で作成されました。そこでもう一度試しました。「リストを保持する people というグローバル スコープ内の変数を作成」。それでも関数内で作成しようとしました。わかりました。これは忘れてください。関数の外に出て、次のように入力するだけで簡単です。
するとすぐに、名前が「John」、姓が「Doe」の新しい Person インスタンスを作成し、次のようにリストに追加するという提案が表示されました。
people.append(Person("John", "Doe"))
はい、わかりました。Tab キーを押して承認します。
では、さらにいくつかの名前を試してみましょう。Fred Flintstone や、素晴らしい歌手かどうかわからない現代のポップ ミュージシャンの友人たちを探す代わりに、Ctrl + I を押して 12 個のインスタンスを作成するように指示しました。「people というリストにさらに 12 名を追加してください。」と入力しました。
そして、それは実現しました。これは Generative AI なので、言語を簡単に読み取って解析できることを思い出してください。そして、それは実現しました。
people.append(Person("ジェーン", "スミス"))
people.append(Person("マイケル", "ジョンソン"))
people.append(Person("エミリー", "ブラウン"))
people.append(Person("David", "Davis"))
people.append(Person("オリビア", "ミラー"))
people.append(Person("ダニエル", "ウィルソン"))
people.append(Person("ソフィア", "テイラー"))
people.append(Person("マシュー", "アンダーソン"))
people.append(Person("Ava", "Thomas"))
people.append(Person("アンドリュー", "マルティネス"))
people.append(Person("イザベラ", "ヘルナンデス"))
people.append(Person("ジョセフ", "ロペス"))
名前はかなり一般的ですが、問題ありません。(参考までに、私はそれらの行をすべて削除し、代わりに「この people というリストにさらに 12 人の人を追加してください。多文化であることを確認してください。」と入力しました。そして、それはまあまあの成果を上げました。)
次に私はこう尋ねました。「Person インスタンスのリストを受け取り、それらを名前で並べ替え、姓だけを出力する関数を作成してください。」
うまく機能しましたが、関数の名前が私の希望どおりに付けられませんでした。関数名は「sort_and_print_last_names」でした。ただし、関数内のコードは、Replit が生成したものとほぼ同じでした。
def sort_and_print_last_names(人):
sorted_people = sorted(people, キー = lambda person: person.firstname)
sorted_people 内の person の場合:
print(人.姓)
次に、関数を呼び出す行が必要でした。「sort」と入力すると、すべてが自動的に入力されました。
姓を並べ替えて印刷する(人)
いいですね! 保存して実行すると、動作します!
Copilot は最も人気のあるツールであり、より一般的な IDE に統合されています。しかし、AI 支援コーディングのニーズに応えるツールは他に何があるでしょうか?
これらのツールは、Python などのプログラミング言語を理解するようにトレーニングされた大規模言語モデル (LLM) を使用していることに注意してください。つまり、他のツールでも同様の結果が得られる可能性が高いということです。ここでご覧いただいたように、Replit に組み込まれている AI は、Copilot の AI とそれほど違いはありません。違いは、私たちが AI とどのようにやり取りするかです。
しかし、それはコードを書くためのものです。バグ検出やコードレビューなどのタスクのための追加のツールもあります。簡単に言えば、次のとおりです。
Tabnine: これは、(Tab キーを押すと) 入力しようとしている内容を「埋める」のに役立つ AI ツールです。これは、Replit が提供するものと似ています。ただし、ほとんどの生成 AI と同様に、最初に必要なものの説明を入力すると、コードが提供されます。Tabbine には、月額 12 ドルから始まるプレミアム プランと 90 日間の無料トライアルが含まれています。
DeepCode: このツールは AI を使用してコードを分析し、問題を探します。
SonarLint: ここで重要なのは「Lint」という言葉です。これは、スタイルと構文をチェックするコード リンターの概念に由来しています。高度なリンターは、バグやその他の問題も探すことができます。言い換えれば、SonarLint は、リンティング プロセスに AI を組み込んだ次世代のリンターです。
最後に、もう 1 つの AI ツールについて考えてみましょう。ドキュメントを忘れないでください。コードには適切なドキュメントが必要ですが、Doxygen というツールがその手助けをしてくれます。興味深いのは、このツールがコードを読み取り、読み取った内容に基づいてドキュメントを作成できることです。
AI ツールはここ数年で驚異的な進歩を遂げています。ジェネレーティブ AI は近年最大の技術的進歩の 1 つとして登場しました。ただし、これらのツールがいかに進歩しても、提供されるコードは注意深く読み、理解し、批判的にレビューする必要があることを忘れないでください。ここで示した Python コードのソート アルゴリズムのラムダ関数の側面を理解しましたか? 理解していない場合は、時間をかけて学習してください。そして、コードが実際に正しく、必要なことを実行しているかどうかを自問してください。
AI を、ある事柄についてはあなたより少しだけ詳しい、あるいは他の事柄については少しだけ劣っているヘルパーとして扱ってください。AI に対しては批判的になりましょう。自分でテストせずに、本番環境のリポジトリにコードを送信しないでください。
しかし、これらの注意事項を理解すれば、これらの AI ツールは開発時間を大幅に短縮できます。これらを学び、理解し、正しく使用すれば、生産性は大幅に向上します。
開発者たちは、技術専門家のコーディングを支援するために設計された生成 AI ツールの構築に着手しています。しかし、他のあらゆるツールと同様に、これらの AI 強化ツールを導入する際には注意が必要です。たとえば、ツールによって生成されたコードは、作成者が QA 機能でバグに対処できると主張していても、必ず二重チェックする必要があります。
それを念頭に置いて、Replit や GitHub CoPilot などのツールをいくつか見てみましょう。これにより、現在のワークフローに最適なツールがどれかがわかるはずです。
Replit は、HTML や Javascript を簡単に試すためのツールから、アプリを実行するための仮想サーバーを備えた本格的なオンライン IDE へと成長しました。多数の言語と、膨大な数のライブラリやパッケージをサポートしています。最新バージョンには、Visual Studio Code と同じオープンソース コード エディターをベースにした非常に優れたコード エディターが含まれています。
2023 年 10 月、Replit はコード エディターに AI ツールを追加しました。入力中に、次に何を入力すればよいかを提案します。表面的には、これは目新しいものではありません。コード エディターは長年オートコンプリート機能を提供してきました。しかし、このオートコンプリートは AI を使用し、オートコンプリートを次のレベルに引き上げます (理論上)。
簡単な例を 1 つ挙げます。Replit で Python アプリを作成しました。次に、Person という新しいクラスを作成しました。このクラスには、self (すべてのメソッドで必要)、firstname、lastname の 3 つのパラメータを取る _init_ コンストラクターが含まれています。次のように入力し始めました。
定義__init__(self, firstname, l
小文字の「l」を入力するとすぐに、最初のパラメータが「firstname」であることに基づいて、2 番目のパラメータが「lastname」になると予測されました。また、閉じ括弧は追加されましたが、コロンは追加されませんでした。そこで、Tab キーを押して提案を受け入れ、コロンを入力しました。
Enter キーを押すと、正しく次の候補が表示されました:
最初のパラメータを同じ名前のメンバーに格納します。Tab キーを押してそれを承認しました。すると、なんと次の提案が示されました。
これもまた、まさに私が必要としていたものです。そこで、もう一度 Tab キーを押してそれを承認しました。結果は次のとおりです。
def __init__(自分、ファーストネーム、ラストネーム):
自己.firstname = ファーストネーム
次に、Person の新しいインスタンスを作成するコードを書きました。驚いたことに、「オートコンプリート」が私の姓を入力しました。変数 Fred を作成し、次のように入力し始めました。
私はびっくりしました。私の姓が自動的に入力されました。それはまさに私が入力しようとしていたものでした。Flintstone です。そしてもちろん、次の行は barney という変数になる予定でした。さらに入力を少なくして、次のようにしました。
最初のパラメータに Barney を入力し、2 番目のパラメータに Rubble を入力しました。
より現代的になるために、Taylor という変数も作成しました。次のように入力しました。
そして、はい、あなたはそれが何を示唆しているか知っています:
taylor = 名前(firstname='Taylor', lastname='Swift')
私はテイラー・スウィフトを受け入れました。(その後、ジョーとドナルドという 2 つの変数を作成しました。提案された名前は、ジョー・ブロッグスとドナルド・ダックでした。わかりました。政治的なことではありません。決心して、ジョーの代わりにジョセフを試してみたところ、ジョセフ・スターリンが提案されました。何だって? わかりました。気にしないで、次に進みましょう。)
はい、これはプログラミングにとって特に重要なことではありませんが、このツールには膨大な量の情報を含む巨大な LLM (大規模言語モデル) があることがはっきりとわかります。実際のコーディング提案を試してみましょう。
そして、それは私の行の残りの部分を埋め、私がどこに向かっているのかを正確に予測しました。
私の名前 = [フレッド、バーニー、テイラー]
名前をリストに入れるつもりだとわかっていました。(そして興味深いことに、タプルではなくリストを選択しました。リストは変更可能で、一般的に便利です。)
もう一歩進めてみましょう。この記事を入力しながら、AI ツールが、名前をループして、名前、スペース、姓を含む文字列を出力する関数を正確に記述できるかどうかを確認します。この段落を入力する前に、まだこれを試していません。試してみましょう。何をしようとしているのかのヒントを与える必要があるため、関数名にそれを指定します。print_full_names という名前を付けます。入力する内容は次のとおりです。
左括弧を入力するとすぐに、この部分が入力されました。
コロンなし。(この関数はクラスの外で書いたので、self パラメータは正しく含まれていませんでした。)
コロンを入力しました。すると何が表示されましたか? これは:
print(名前.firstname, 名前.lastname)
できました。今度は、mynames リストを使用して関数を呼び出す必要があります。関数の後に、次のように入力しました… (おそらく、これがどこに向かっているかはおわかりでしょう):
そして、パラメータが自動的に入力されました:
完璧です! 実行すると、もちろん 2 つのフルネームが出力されます。
また、print_last_names という名前の関数も作成してみました。予想どおり、def に続けて print_last_n と入力しただけで、残りの部分 (print_last_names) が入力され、最終的には各項目の lastname メンバーのみをループして出力するコードが生成されました。
このツールをさらにテストするために、名前をファーストネームでソートし、ラストネームだけを出力する関数を書くことにしました。もちろん、いくつかのヒントが必要なので、関数を呼び出しました。
def ファーストネームとラストネームのみでソート
予測できなかったので、すべて入力する必要がありました。次に左括弧を入力すると、名前がパラメータとして提供されました。タブで移動し、コロンを入力して Enter キーを押しました。いくつかの行が提案されましたが、どちらも Tab キーを押す必要がありました。上記の行に続いてさまざまな括弧、タブ、コロンを入力した後、生成されたものを見てみましょう。
def sort_by_firstname_and_print_only_last_names(名前):
sorted(names, key=lambda name: name.firstname) 内の name の場合:
そして、この文書にこれを入力するのを待っている間に、別の行が表示されました。
ファーストネームでソートし、ラストネームのみを印刷(mynames)
そこで、Tab キーを押してそれを承認し、実行しました。そして、それを実行しました。この特定の関数の出力は次のとおりです。
うまくいきました。ラムダ関数と呼ばれる高度な Python 機能を含む関数を作成し、リストをファーストネーム (Barney、Fred、Taylor) に基づいて並べ替え、姓のみを出力しました。すべて、AI にヒントを提供するために私が注意深く作成した関数名に基づいています。
AI ツールの世界におけるプログラマーにとって最大のエントリーは、おそらく GitHub Copilot でしょう。これは、OpenAI (ChatGPT の開発元) が GitHub と共同で開発したものです。Visual Studio Code、Visual Studio、JetBrains など、いくつかの IDE のプラグインとして利用できます。
Copilot も無料ではなく、サブスクリプションが必要です。(この記事の執筆時点では、個人サブスクリプションは月額 10 ドルまたは年額 100 ドルです。) 以下はすべて個人プランに基づいています。
VS Code で Copilot を使用するには、まず GitHub の Web サイトで Copilot をアクティブ化する必要があります。こちらにアクセスして、「Get Started With Copilot」をクリックすると、個人プランに「無料トライアルを開始」が表示されます。情報を入力すると、さまざまな IDE で Copilot を使用できるようになります。Visual Studio Code を見てみましょう。
VS Code を開き、拡張機能に移動して「Copilot」と入力します。上部に GitHub Copilot が表示されます。それをクリックして、[インストール] ボタンをクリックします。次に、「GitHub Copilot を使用するにはサインインしてください」というポップアップが表示されます。青い [サインイン] ボタンをクリックすると、ブラウザーで GitHub に移動します。許可を求めるポップアップ メッセージが表示されます。[許可] ボタンをクリックします。これにより、「GitHub for VS Code が追加のアクセス許可を要求しています」という GitHub ページが表示されます。[承認] ボタンをクリックすると、VS Code に戻るように求める別のポップアップが表示されます。これで準備完了です。
コード ファイル (Python の場合は .py 拡張子のファイルなど) を開くと、「GitHub Copilot Chat に何かを実行するように指示するには、Ctrl + I を押してください」というメッセージが表示されます (Ctrl キーと大文字の「目」のキーの組み合わせです)。
私は次のように入力しました。「firstname と lastname という 2 つのメンバーと、その 2 つのメンバーを初期化するコンストラクターを含む、Person という Python クラスを作成します。」 すると、なんと、Replit の例で見たのと同じクラスが作成されました。ただし、この場合は誤って Name ではなく Person という名前を付けたため、そのコードがファイルに直接貼り付けられました。
次に、「リストを保持する People という変数を作成」するように指示しました。残念ながら、これはコンストラクター関数内で作成されました。そこでもう一度試しました。「リストを保持する people というグローバル スコープ内の変数を作成」。それでも関数内で作成しようとしました。わかりました。これは忘れてください。関数の外に出て、次のように入力するだけで簡単です。
するとすぐに、名前が「John」、姓が「Doe」の新しい Person インスタンスを作成し、次のようにリストに追加するという提案が表示されました。
people.append(Person("John", "Doe"))
はい、わかりました。Tab キーを押して承認します。
では、さらにいくつかの名前を試してみましょう。Fred Flintstone や、素晴らしい歌手かどうかわからない現代のポップ ミュージシャンの友人たちを探す代わりに、Ctrl + I を押して 12 個のインスタンスを作成するように指示しました。「people というリストにさらに 12 名を追加してください。」と入力しました。
そして、それは実現しました。これは Generative AI なので、言語を簡単に読み取って解析できることを思い出してください。そして、それは実現しました。
people.append(Person("ジェーン", "スミス"))
people.append(Person("マイケル", "ジョンソン"))
people.append(Person("エミリー", "ブラウン"))
people.append(Person("David", "Davis"))
people.append(Person("オリビア", "ミラー"))
people.append(Person("ダニエル", "ウィルソン"))
people.append(Person("ソフィア", "テイラー"))
people.append(Person("マシュー", "アンダーソン"))
people.append(Person("Ava", "Thomas"))
people.append(Person("アンドリュー", "マルティネス"))
people.append(Person("イザベラ", "ヘルナンデス"))
people.append(Person("ジョセフ", "ロペス"))
名前はかなり一般的ですが、問題ありません。(参考までに、私はそれらの行をすべて削除し、代わりに「この people というリストにさらに 12 人の人を追加してください。多文化であることを確認してください。」と入力しました。そして、それはまあまあの成果を上げました。)
次に私はこう尋ねました。「Person インスタンスのリストを受け取り、それらを名前で並べ替え、姓だけを出力する関数を作成してください。」
うまくいきましたが、関数の名前が私の希望どおりに付けられませんでした。関数名は「sort_and_print_last_names」でした。ただし、関数内のコードは、Replit が生成したものとほぼ同じでした。
def sort_and_print_last_names(人):
sorted_people = sorted(people, キー = lambda person: person.firstname)
sorted_people 内の person の場合:
print(人.姓)
次に、関数を呼び出す行が必要でした。「sort」と入力すると、すべてが自動的に入力されました。
姓を並べ替えて印刷する(人)
いいですね! 保存して実行すると、動作します!
Copilot は最も人気のあるツールであり、より一般的な IDE に統合されています。しかし、AI 支援コーディングのニーズに応えるツールは他に何があるでしょうか?
これらのツールは、Python などのプログラミング言語を理解するようにトレーニングされた大規模言語モデル (LLM) を使用していることに注意してください。つまり、他のツールでも同様の結果が得られる可能性が高いということです。ここでご覧いただいたように、Replit に組み込まれている AI は、Copilot の AI とそれほど違いはありません。違いは、私たちが AI とどのようにやり取りするかです。
しかし、それはコードを書くためのものです。バグ検出やコードレビューなどのタスクのための追加のツールもあります。簡単に言えば、次のとおりです。
Tabnine: これは、(Tab キーを押すと) 入力しようとしている内容を「埋める」のに役立つ AI ツールです。これは、Replit が提供するものと似ています。ただし、ほとんどの生成 AI と同様に、最初に必要なものの説明を入力すると、コードが提供されます。Tabbine には、月額 12 ドルから始まるプレミアム プランと 90 日間の無料トライアルが含まれています。
DeepCode: このツールは AI を使用してコードを分析し、問題を探します。
SonarLint: ここで重要なのは「Lint」という言葉です。これは、スタイルと構文をチェックするコード リンターの概念に由来しています。高度なリンターは、バグやその他の問題も探すことができます。言い換えれば、SonarLint は、リンティング プロセスに AI を組み込んだ次世代のリンターです。
最後に、もう 1 つの AI ツールについて考えてみましょう。ドキュメントを忘れないでください。コードには適切なドキュメントが必要ですが、Doxygen というツールがその手助けをしてくれます。興味深いのは、このツールがコードを読み取り、読み取った内容に基づいてドキュメントを作成できることです。
AI ツールはここ数年で驚異的な進歩を遂げています。ジェネレーティブ AI は近年最大の技術的進歩の 1 つとして登場しました。ただし、これらのツールがいかに進歩しても、提供されるコードは注意深く読み、理解し、批判的にレビューする必要があることを忘れないでください。ここで示した Python コードのソート アルゴリズムのラムダ関数の側面を理解しましたか? 理解していない場合は、時間をかけて学習してください。そして、コードが実際に正しく、必要なことを実行しているかどうかを自問してください。
AI を、ある事柄についてはあなたより少しだけ詳しい、あるいは他の事柄については少しだけ劣っているヘルパーとして扱ってください。AI に対しては批判的になりましょう。自分でテストせずに、本番環境のリポジトリにコードを送信しないでください。
しかし、これらの注意事項を理解すれば、これらの AI ツールは開発時間を大幅に短縮できます。これらを学び、理解し、正しく使用すれば、生産性は大幅に向上します。
テクノロジー業界の現状についてもっと知りたいですか? ご質問があれば、私たちが答えます。こちらでご覧ください。
Jeff Cogswell 氏は、「C++ All-In-One Desk Reference For Dummies」、「C++ Cookbook」、「Designing Highly Useable Software」など、数冊の技術書の著者です。20 年以上ソフトウェア エンジニアとして活動してきた Jeff 氏は、さまざまな開発トピックについて幅広く執筆してきました。C++ と JavaScript の専門家である同氏は、Linux での低レベル C 開発から、JavaScript と jQuery、PHP、ASP.NET MVC による最新の Web 開発まで、幅広い経験を持っています。
無料の Dice プロフィールにサインアップし、履歴書を追加して、優れたキャリアの洞察を発見し、テクノロジー関連のキャリアをスタートさせましょう。
元記事: https://www.dice.com/career-advice/ai-tools-for-programmers-what-can-they-do-for-you