出版日: 2024年1月19日
生成的AIは今日の最もハイプされているトピックです。
多くの人がこう言っているのを聞くでしょう:"GenAIは未来だ"。それを信じるべきでしょうか?それとも 数年前にメタバースがハイプされたのと同じように、それらの考え方は捨てるべきでしょうか?
プログラミングは、ChatGPTが他のプログラマーと同じようにコードを書けるように見えるため、危険な仕事のようです。例えば、ヒューマンの助けを借りてFlappy Birdのプログラムを書いているのが見られます。こちらをご覧ください。
実際のところ、プログラミングに関してはChatGPTはまだ幼い段階にあります。そして、最近ChatGPTに与えたコーディングタスクを使って、それを強調したいと思います:
別の記事の一環として、ウェブサイトの訪問者のデバイス(デスクトップ、モバイルなど)をどのように判別するかについて、ChatGPTに伝えるよう依頼しました。そして、それに対する以下の応答を提供してもらいました:
// デバイスタイプの検出
function detectDevice() {
const isMobile = /iPhone|iPad|iPod|Android|Windows Phone/i.test(navigator.userAgent);
const isTablet = /iPad|Android|Windows Phone/i.test(navigator.userAgent);
if (isMobile) {
return 'モバイル';
} else if (isTablet) {
return 'タブレット';
} else {
return 'デスクトップ';
}
}
一般的なマネージャーはこの応答を見て、「見てください、GenAIがコードを書いています。これによって私たちのプログラマーははるかに効率的になります!やったね!」と思うでしょう。
しかし、あなたが私のウェブサイトを訪れている場合、次のように考える必要があります:"それほど簡単ではありません..." そんなに単純ではありません。
なぜでしょうか?
問題は、プログラミング言語が構文の面で自然言語よりもはるかに厳格であるということです。
例えば、挨拶する方法は複数あります:
しかし、コーディングで特定の目的を達成するためには、限られた方法しかありません。エレガントで効率的なコードを書きたい場合、通常は1つの方法しかありません。例えば、Pythonではこれを「Pythonic」と呼びます。
2つの変数をPythonで足し合わせたいとします。Pythonではこれを2〜3通りしか行うことができません。
1. 即座に行う
a+b
2. その目的のための関数を作成する
def add(a,b):
return a+b
3. 過剰:クラスを作成する
class Numbers:
def __init__(self, a, b):
self.a = a
self.b = b
def add(self):
return self.a + self.b
numbers = Numbers(10, 5)
numbers.add()
Pythonで加算する方法は3つまでしかありません。しかし、ChatGPTに2つの数を足すように要求する方法は1000通りあります:
全ての卵を同じバスケットに入れないでください... 強いバスケットが1つある場合を除いて。
Danyel Koca
ChatGPTから得た応答に問題があるのは何でしょうか?
ChatGPTが提供したコードを2〜3分間見て、何が間違っているかを特定してみてください。
あなたが経験豊富なプログラマーでなくても、平均的なプログラマーであれば、Mobileの条件がTabletを包含していることに気付くでしょう。そのため、ChatGPTが提供したコードを使用してデバイスをタブレットとしてタグ付けする方法はありません。
これは構文エラーのみです。
コードを見るときに言うことはそれ以上にあります。例えば、「Android」と「Windows Phone」がタブレットに適しているかどうかを尋ねることができます。適していません!
愚かなChatGPT。少なくとも今のところは。
もしあなたがプログラマーなら、友達よ、安心してください。次の5年間は、あなたの仕事がどこにも行かないでしょう。
保証は次の5年間のみですが。
Happy hacking!
このブログは英語からChatGPTによって翻訳されました。不明な点がある場合は、お問い合わせページからご連絡ください。
コメントを残す
コメント
その他のブログ
2024/06/19
SvelteとJavaScriptを使用してシンプルで動的なツールチップを作成する
2024/06/17
JavaScriptを用いて東京都のインタラクティブな地図を作成する
2024/06/14
Matplotlibで日本語文字化けを解決できる簡単な方法
2024/06/13
書評 | トーキング・トゥ・ストレンジャーズ 「よく知らない人」について私たちが知っておくべきこと by マルコム・グラッドウェル
2024/06/07
日本語で最もよく使われる3000字の漢字
2024/06/07
VSCodeでRegexを使用してReplaceする方法
2024/06/06
SvelteではReadable Storeを使用するな
2024/06/05
GzipとPakoでデータを圧縮してWebサイトのローディング速度を上げる方法
2024/05/31
JavaScriptを使用してWebページ上でマウスが指している単語を特定する
2024/05/29
SvelteとSVGを用いてインタラクティブな地図を作成する
2024/05/28
書評 | Originals 誰もが「人と違うこと」ができる時代 by アダム・グラント & シェリル・サンドバーグ
2024/05/27
Javascriptを使用して数独を解く方法
2024/05/26
ウェブサイトへのトラフィックを1か月で10倍に増やした方法
2024/05/24
人生はサイクリングに似ている
2024/05/19
JavaScriptでバックトラッキング・アルゴリズムを用いて完全な数独グリッドを生成する
2024/05/16
Tailwindが素晴らしい理由とWeb開発をいかに楽にするか
2024/05/15
PythonとGitフックを使用してサイトマップを自動的に生成する
2024/05/14
書評 | Range (レンジ) 知識の「幅」が最強の武器になる by デイビッド・エプスタイン
2024/05/13
SvelteとSvelteKitはなんですか?
2024/05/12
SvelteKitで国際化(多言語化)
2024/05/11
SvelteでCachingを用いてDeploy時間を短縮する方法
2024/05/10
SvelteとIntersection Oberverによるレイジーローディング
2024/05/10
遺伝的アルゴリズムで最適な株式ポートフォリオを作る方法
2024/05/09
Pythonを用いてShapeFileをSVGに変換できる方法
2024/05/08
Svelteの反応性:変数、バインディング、およびキー関数
2024/05/07
書評 | 孫子の兵法
2024/05/06
スペシャリストは終了。ゼネラリスト万歳!
2024/05/03
トルコ人の有権者の投票行動をPythonでの分析
2024/05/01
Seleniumを用いてトルコ投票データベースを作る方法
2024/04/30
SvelteとTailwindを使用してInfinite Scrollできる方法
2024/04/29
1年間以内で日本語を駆使できるようになるための方法
2024/04/25
SvelteとTailwindを用いたWebサイトテンプレート
2024/01/29
怠惰なエンジニアとひどいデザイン
2024/01/28
偉大さについて
2024/01/28
MacBook で PDF を PNG に変換する
2023/12/31
2023年振り返り:24冊の読んだ本のまとめ
2023/12/30
Python PILを使用して写真コラージュを作成する方法
2024/01/09
ウェブサイトの訪問者のデバイスとブラウザを検出する方法