私はChatGPTを使用して、これらの10のマニアックなプログラミング言語で同じルーティンを書きました

画像9.jpg

数週間前、私はChatGPTを使って、最も人気のある12のプログラミング言語で同じルーチンを書いてみることを試みました。しかし、プログラミング言語のギークとして、私は気になりました。果たしてChatGPTはどこまで進むのでしょうか。1950年代の言語でプログラムを作ることはできるのでしょうか?独自の文字セットを使用した言語でプログラムを作成することはできるのでしょうか?また、自身のコードを書く言語でコードを書くことはできるのでしょうか?

また: 最高のAIチャットボット:ChatGPTおよび試すべき代替案

それで、私は飛び込んでみました。ここでピクアップしている言語の中で、たくさん使ってきたので、ちょっと思い出に浸って、使った経験についてのエピソードも含めてみます。

コード自体は実行していませんが、生成されたプログラムをすべて読んでいます。ほとんどのプログラムが正しく見え、要求した言語が表示される適切な指標が表示されています。

画面のヘッダーが間違っているので、これについてお伝えします。ほとんどのヘッダーがSQLと表示されています。なぜかBALはVBNetと表示され、PrologはRustと表示されています。ChatGPTは前回はこのエラーがありませんでしたが、今回は表示されているすべての言語に対して同じエラーが発生しました。

そして、それでは始めましょう。

Fortran(フォートラン)

Fortran(または当時はFORTRANと表記されていた)は、数式翻訳を意味します。主に科学やエンジニアリングの計算に使用されました。1950年代にさかのぼる言語ですが、1970年代や1980年代にエンジニアリング学生に最初に教えられることがよくありました。

また、 この新しい技術はGPT-4やそれに類似したものを吹き飛ばすかもしれません

私にとって、これはBASIC、PDP-8のアセンブリ言語、そしてPDP-8のバイナリに続く4つ目のプログラミング言語でした(はい、初期のミニコンピュータのフロントパネルで設定するためにバイナリコードを書いていたのです)。私の父が親切にも一時間かけて私をニューアーク工科大学(現在のNJIT)まで運転してくれました。私はまだ高校二年生の時でしたが、彼らの1年次プログラミングコースを受講することができました。

フォートランは好まれることはありませんでしたが、ほとんどの計算指向の仕事をこなすことができました。フォートランの派生形が現在も使用されていますが、それはかなり特定の科学的な仕事に限定されています。なぜなら、他の多くのモダンな言語がフォートランレベルの分析を行い、より良い結果を出すからです。

ここでは、implicitキーワードの使用により、ChatGPTがFortran-77バリアントで書かれたコードを描写しているように見えます。

画像7.jpg

COBOL(コボル)

私は10代のCOBOLプログラマーでした。当時はCOBOLを知りませんでしたが、1980年頃にニュージャージー州デンビルにあるインターナショナルペーパーのノースイーストリージョナルデータセンターでCOBOLプログラマーの求人広告を見つけました。それは私の両親の家から約40分で、夏の仕事が必要でした。面接のスケジュールを抑えるとすぐに、地元の書店に駆け込んで、見つけられる限りのCOBOLの参考資料を買い漁りました。

COBOLはビジネス志向の処理向けに設計されていました。現在、同じタイプの顧客はSAPやSalesforceのユーザーとなるでしょう。しかし、以下のCOBOL-88コードからわかるように、COBOLは機能的ではありましたが、エレガントとは言えませんでした。

結局、彼らは正社員を求めていました。しかし、彼らのテストに合格した(専門家たちの得点よりも私の週末の勉強の方が優れていたらしい)ので、彼らは私を夏の間仕事に就かせることにしました。文化の不一致という言葉では表現しきれませんでした。これはマイクロコンピュータ(PC前の時代)の非常に初期の日々であり、私はそれに熱中していました。一方、彼らはスーツやネクタイ、巨大なデータセンターに関してのみだったのです。私はほぼすぐに「トラブル」というニックネームをもらいました。まあ、私はまだ子供でしたからね。

私にとっての決定的な瞬間は、会社の経験豊富なプログラマーの一人が私を引き連れてくれて、そして引用しますが「COBOLは人生だ」と説明してくれた時でした。私はそのメッセージを心に留め、私の人生をCOBOLに捧げたくないと決めました。その夏は私がCOBOLで何かをプログラムする最後の時間でした。

画像11.jpg

RPG(Report Program Generator)

いいえ、それはロケット推進擲弾筒やロールプレイングゲームではありません。RPGはレポート作成のためのプログラムでした。以下に示した2つのバージョン間の言語(およびコンピュータ言語思考全般)の進化をご覧いただけます。RPG IIは1950年代後半にさかのぼります。RPG IVは1990年代に更新され、かなり現代的です(しかし、年代を感じさせるものです)。

私は大学での副業としてAS/400向けにいくつかのRPG IIIプログラムを書いたことがありますが、それほど深く追いかけたものではありませんでした。

画像3.jpg

Lisp

私はLispとの長い恋愛関係があります。LispはLISt Processorという名前で、多くのつまらないただの括弧と形容されることもありました。何故か、その括弧が私の頭でクリックしたのです。LispはAIプログラミングへの私の入り口であり、ChatGPTによる言語処理からも学んだように、知識は単語やリストの文字列として表現できます。

1980年代には、私はRISCベースのCommon Lisp実装の製品マネージャーであり、それを一時的にコーディングしていました。ChatGPTが生成するdefun greetingletの構文に基づくと、下記のコードもまた、1950年代後半のJohn McCarthyのオリジナルLisp実装の後の派生版であるCommon Lispのようです。McCarthyはAI研究の創始者の一人であり、AIが彼の言語で書くのはふさわしいことです。

画像4.jpg

アルゴル

ALGOL(ALGOthymic Language)は時代を先取りしていました。関数のパラメータとしての関数の渡し方や、再帰の使用を可能にしました。これらは、ALGOLが登場した当時に人気のあったFortranやCOBOLといった言語には欠けていた現代のプログラミングの重要な要素です。

もしFortranやBASIC、アセンブリ言語が私に上から下へのプログラミングを教えてくれたのであれば、ALGOLは私にコードの構成方法を教えてくれました。それは、私がCやPascal、Java、JavaScriptなど、現代のほとんどの構造化された言語を使う基礎的な言語であり、その舞台を作り上げました。

画像5.jpg

シミュラ

シミュラとは、おそらく想像できるように、シミュレーションやモデリングのために開発されました。ALGOLと同様に、シミュラも時代を先取りしており、オブジェクトやクラスの使用をサポートしていました。オブジェクト指向プログラミングはその後、今日の多くの効果的なプログラミング言語にとって基礎となっています。

キーワードOUTFIXの使用から、ChatGPTがおそらく以下のコードをSimula-67で書いたことを示しています。

画像6.jpg

BAL(IBM 360/370アセンブリ言語)

BALは、「basic assembly language」の略称であり、1970年代と1980年代のIBMの大型コンピュータ向けのアセンブリ言語でした。アセンブリ言語は「ハイレベル言語」よりも「ローレベル」と考えられており、個々の命令やキーワードがプロセッサの個々の命令にマッピングされます。ハイレベル言語(現在私たちが使っているもののほとんど)では、言語はしばしば基盤となるマシンアーキテクチャから遠く離れており、ハードウェアの効率的な使用よりもプログラミングの効率性を重視して設計されています。

私は大学でBALの学期を受けました。それは大変でした。教授はほとんどの日、生徒の背中を向いてモノトーンでつぶやきながら、黒板にひたすら書き込むことに時間を費やしていました。私は最後の列に座って、隣にローラという女の子がいました。ある日、ローラと私はコーヒーを飲むために裏窓から抜け出すことにしました。コーヒーを手に入れると、窓から再び戻りました。教授は全く気付きませんでした。

私たちの中で誰もが合格したのは不思議ですが、ほとんどの人がBALプログラミングを選んでコーディングの武器にしたわけではありません。

image8.jpg

APL

APL、またはAプログラミング言語は、別のプログラミング言語です。APLの最も印象的な側面の1つは、いくつかの演算子とコーディングに非標準の文字セットを使用していることです。以下の画像で確認できます。小さな符号は、ChatGPTが使用しているフォントから取得できるものですが、APLはAPL385 Unicodeフォントを使用するように設計されており、APLでのプログラミングに固有のものです。

コンパクトな構文と大規模データセットの効果的な管理能力のために、Pythonは科学、金融、分析のプロジェクトで広く使われています。

image10.jpg

Prolog(プロログ)

Prolog(プログラミングインロジックのフレーズから派生したもの)は、AIに焦点を当てた別の言語です。Prologは述語型言語であり、ルールや条件をリストアップし、それらの宣言に対してクエリを実行します。ChatGPTによると:

Prologは、ChatGPTの開発で使用されるプログラミング言語の一つで、テキストの生成に特化しています。Prolog-to-Englishモジュールで使用され、Prologの論理形式を自然言語の文に翻訳します。

画像1.jpg

スモールトーク

Smalltalkは特別です。それはマウスやウィンドウ環境の開発に影響を与えたXerox PARCという研究所で開発されました。Simulaのオブジェクト指向プログラミングの革新を取り入れ、更に進化させました。また、GUIベースのインタラクティブなプログラミング環境を積極的に活用した最初の言語の一つでもありました。JavaやPython、Rubyなど、今日の主要な言語の多くはSmalltalkの大きな影響を受けています。

私はSmalltalkをちょっとだけ触ったことがありますが、主にそれを知るためでした。当時シリコンバレーに住んでいたため、後にパークプレイスシステムをスピンオフして、Xeroxの企業的な重苦しさからSmalltalkを商品化しようとしたデザイナーたちと知り合うことができました。パロアルトのちょっとした疲れたバーベキュー店で肋骨とコールスローを食べながら、プログラミング理論について話すという楽しい思い出がいくつもあります。

私が勤めていたコンピュータ企業で一緒に働いていた取締役の一人が、スタートアップ市場へSmalltalkを応用するために一緒に会社を設立するように説得しようとしました。しかし私はまだスタートアップの魅力に取り憑かれていませんでした。Smalltalkは市場として成功しませんでした。それでも、私の人生が現在のような道を歩んでいることに満足していますが、時折、彼の申し出を受けていたら何が起きていたのかと考えることがあります。

イメージ2.jpg

私には考えがあります

このコードは実行していませんし、PHPとJavaScriptほど最近の知識があるわけではないので、上記に表示されているコードが正常に実行されることを視覚的に確認できるとは確信できません。先週のバードの新しいプログラミング力の探求で見たように、コードが動作しなくてもコードを書くことは可能です。

また: ChatGPTに必要なワードプレスのプラグインを作るよう頼んだら、5分以内に完成しました

各例には少なくとも1つのエラーがあることを認識しています:見出しは誤っています。したがって、AIが比較的マイナーな言語のコードを生成する能力が信じられないほど素晴らしいとしても、それが完全に正確に仕事をしているとは思わないでください。

ChatGPTプログラムをワークフローに組み込むことを決めた場合、それが生成するコードを、あたかも誰かが基本的なルーチンを書いてくれた場合と同じように、チェックし、テストし、デバッグする必要があります。

関連記事

もっと見る >>

HIX.AI で AI の力を解き放ちましょう!