Am utilizat ChatGPT pentru a scrie aceeași rutină în aceste zece limbaje de programare obscure.

imagine9.jpg

Acum câteva săptămâni, am analizat utilizarea ChatGPT pentru a scrie aceeași rutină într-un număr de douăsprezece dintre cele mai populare limbaje de programare.

Dar ca un fan al limbajelor de programare, m-am întrebat cât de departe poate merge ChatGPT. Va programa într-un limbaj din anii 1950? Va programa într-un limbaj care folosește propriul său set de caractere? Va putea scrie cod în unul dintre limbajele care scriu propriul lor cod?

De asemenea: Cele mai bune chatbot-uri AI: ChatGPT și alternative de încercat

Și astfel, m-am aruncat în lumea aceasta. Am folosit multe dintre limbajele pe care le prezint aici, așa că voi face o mică călătorie în trecut și voi include câteva povești despre experiența mea cu cele pe care le-am folosit.

Deși nu am rulat codul în sine, am citit toate programele generate. Marea majoritate par corecte și afișează indicatorii corespunzători, care ne arată că limbajul prezentat este cel pe care l-am solicitat.

Îți spun asta pentru că titlurile de pe toate capturile de ecran sunt greșite. Cele mai multe sunt listate ca SQL. Dintr-un motiv oarecare, BAL este indicat ca VBNet, iar Prolog este listat ca și Rust. ChatGPT nu a făcut această eroare data trecută, dar a făcut-o astăzi, pentru toate limbajele afișate aici.

Și cu asta, să trecem direct la subiect.

Fortran

Fortran (sau FORTRAN, așa cum era denumită la acea vreme) înseamnă Formula Translation. A fost dezvoltat în principal pentru calculul științific și de inginerie. Chiar dacă datează din anii 1950, adesea era primul limbaj predat studenților de inginerie în anii '70 și '80.

De asemenea: Această nouă tehnologie ar putea anula complet GPT-4 și tot ce ține de el

Pentru mine, a fost a patra limbă de programare, după BASIC, limbajul de asamblare PDP-8 și codul binar PDP-8 (da, am scris cod binar pentru a-l introduce manual pe panoul frontal al unui minicalculator timpuriu). Tatăl meu m-a condus generos timp de o oră până la Newark College of Engineering (acum NJIT), astfel încât să pot face cursul lor de programare pentru primul an în timp ce eram încă în clasa a doua la liceu.

Fortran nu a fost niciodată un favorit, deși poate realiza majoritatea sarcinilor orientate spre calcul. O variantă a limbajului Fortran este încă utilizată în prezent, dar este destul de limitată în domeniul lucrărilor științifice specializate, deoarece multe alte limbaje moderne realizează analize la nivelul limbajului Fortran și o fac mai bine.

Aici, din cauza utilizării cuvântului cheie implicit, pare că ChatGPT prezintă cod scris în varianta Fortran-77.

imagine7.jpg

COBOL

Eram un programator COBOL adolescent. Nu cunoșteam COBOL la acea vreme, dar undeva în jurul anului 1980 am văzut un anunț pentru un programator COBOL la Centrul de Date Regional de Nord-Est al International Paper în Denville, NJ. Era la aproximativ 40 de minute de casa părinților mei și aveam nevoie de un job de vară. Odată ce am reușit să stabilesc o programare pentru interviu, am alergat la librăria locală și mi-am petrecut un weekend citind toată literatura disponibilă despre COBOL.

COBOL a fost creat pentru procesarea orientată către afaceri. Astăzi, aceeași tipologie de clienți ar utiliza SAP sau Salesforce. Dar, așa cum se poate observa din codul COBOL-88 de mai jos, COBOL era funcțional, dar cu siguranță nu era elegant.

După cum s-a dovedit, ei doreau un angajat pe timp întreg. Dar deoarece am obținut un rezultat excelent la testul lor (se pare că weekendul meu de studiu a învins scorurile profesioniștilor care au aplicat), au decis să mă pună la treabă în timpul verii. Să spunem că era o discrepanță culturală majoră. Erau acele zile foarte timpurii ale microcalculatoarelor (gândiți-vă înainte de apariția PC-urilor) și eu mă bucuram de acele lucruri. Între timp, acești oameni se concentrau pe costume și cravate și centre de date uriașe. Aproape imediat am primit porecla "Probleme". Hei, eram totuși un copil.

Momentul hotărâtor pentru mine a venit atunci când unul dintre programatorii mai experimentați de la companie m-a luat deoparte să-mi explice, și citez, "COBOL este viață." Am ținut cont de acest mesaj și am decis că nu vreau ca viața mea să fie despre COBOL. Acela a fost ultimul an când am programat ceva în COBOL.

imagine11.jpg

RPG (Generator de Rapoarte de Program)

Nu, nu este o grenadă propulsată cu rachetă sau un joc de rol. RPG a fost un program pentru crearea de rapoarte. Poți vedea evoluția limbajului (și a gândirii în limbajul calculatorului, în general) între cele două versiuni prezentate mai jos. RPG II datează din anii 1950. RPG IV a fost actualizat în anii 1990 și este considerabil mai modern (dar totuși învechit).

Am scris câteva programe RPG III pentru AS/400 ca job secundar în timpul facultății, dar nu am fost niciodată foarte implicat în acest domeniu.

imagine3.jpg

Lisp

Am o relație de dragoste îndelungată cu Lisp. Lisp, denumit după LISt Processor, a fost uneori descris ca fiind o gramadă de paranteze insipide și stupide. Dintr-un motiv oarecare, acele paranteze mi-au dat un click în creier. Lisp a fost poarta mea de intrare în programarea AI, și așa cum am învățat din prelucrarea limbajului de la ChatGPT, cunoștințele pot fi reprezentate ca șiruri de cuvinte, sau liste.

În anii '80, am fost manager de produs pentru o implementare a Lisp de tip RISC și am scris cod în acest limbaj o perioadă de timp. Bazându-ne pe sintaxa defun salut și let generată de ChatGPT, se pare că codul de mai jos este tot în Lisp, o variantă ulterioară a implementării originale Lisp a lui John McCarthy de la sfârșitul anilor '50. McCarthy a fost unul dintre pionierii cercetării în domeniul IA, așa că este potrivit ca o IA să scrie în limbajul lui.

imagine4.jpg

Algol

ALGOL (ALGOthymic Language) a fost înaintea timpului său. Acesta permitea transferul de funcții ca parametri și permitea utilizarea recursivității. Acestea sunt două componente cheie ale programării moderne care erau absente din limbajele populare precum Fortran și COBOL, care erau populare în aceeași perioadă cu introducerea ALGOL-ului.

Dacă Fortran, BASIC și limbajul de asamblare m-au învățat programarea top-down, ALGOL m-a învățat cum să structurez codul meu. A fost un limbaj fundamentat care a pregătit terenul pentru utilizarea mea a limbajului C, Pascal, Java, JavaScript și a majorității limbajelor moderne structurate pe care le utilizăm în prezent.

imagine5.jpg

Simula

Simula, așa cum vă puteți imagina, a fost dezvoltat pentru simulare și modelare. La fel ca și ALGOL, Simula a fost în avans pentru vremea sa, susținând utilizarea obiectelor și a claselor. Programarea orientată pe obiect a devenit între timp fundamentală pentru multe dintre limbajele de programare eficiente de astăzi.

Utilizarea cuvântului cheie OUTFIX îmi indică faptul că ChatGPT probabil a scris următorul cod în Simula-67.

imagine6.jpg

BAL (limbaj de asamblare IBM 360/370)

BAL, cunoscut sub numele de "basic assembly language," a fost limbajul assembly pentru mașinile mari IBM din anii '70 și '80. Limbajul assembly este considerat mai "nivel inferior" decât "limbaje de nivel superior," ceea ce înseamnă că instrucțiunile și cuvintele cheie se mapează către instrucțiuni individuale ale procesorului. În limbajele de nivel superior (ca cele folosite în mare parte azi), limbajul este adesea mult separat de arhitectura mașinii subiacente și este proiectat mai mult pentru eficiența programării decât pentru utilizarea eficientă a hardware-ului.

Am urmat un semestru de BAL la facultate. A fost dificil. Profesorul își petrecea majoritatea zilelor stând cu spatele la studenți, vorbind în șoaptă monotonică și scriind neîncetat pe tablă. Am stat în ultimul rând lângă o fată numită Laura. Într-o zi, eu și Laura am hotărât să ieșim pe fereastră și să luăm o cafea. După ce ne-am luat băutura, am urcat înapoi prin fereastră. Profesorul nu a observat nimic.

E minune că am trecut cu toții, dar nu-i de mirare că practic nimeni dintre noi nu a ales programarea în limbajul BAL drept arma de codificare preferată.

imagine8.jpg

APL

APL, sau A Programming Language, este un alt limbaj de programare. Unul dintre cele mai remarcabile aspecte ale APL este că utilizează un set de caractere non-standard pentru unele operații și codare. Puteți observa acest lucru în imaginea de mai jos. Micile glife sunt ceea ce ChatGPT a putut selecta din fontul pe care îl folosea, dar APL este conceput să utilizeze fontul Unicode APL385, care este unic pentru programarea în APL.

Datorită sintaxei sale concize și gestionării eficiente a seturilor de date mari, este folosit într-un număr considerabil de proiecte științifice, financiare și analitice.

imagine10.jpg

Prolog

Prolog (care este derivat din expresia Programare în Logică) este un alt limbaj focalizat pe IA. Prolog este un limbaj declarativ, enumerând reguli și condiții, și apoi rulând interogări asupra acestor declarații. Conform ChatGPT:

Prolog este unul dintre limbajele de programare utilizate în dezvoltarea ChatGPT, în mod specific pentru generarea de text. Este utilizat în modulul Prolog-to-English, care traduce formele logice în Prolog în propoziții în limbaj natural.

imagine1.jpg

Smalltalk

Smalltalk este special. A fost dezvoltat la Xerox PARC, același laborator de cercetare care a influențat dezvoltarea mouse-ului și a mediilor cu fereastră. A încorporat unele dintre inovațiile lui Simula în programarea orientată pe obiecte și a mers mai departe. De asemenea, a fost unul dintre primele limbaje care au făcut utilizare activă a unui mediu de programare interactiv pe baza unei interfețe grafice. Multe dintre limbajele de top ale zilelor noastre, inclusiv Java, Python și Ruby, au fost puternic influențate de Smalltalk.

Am doar cunoștințe de bază în Smalltalk, în mare parte pentru a-l cunoaște mai bine. Trăind în Silicon Valley la vremea respectivă, am ajuns să-i cunosc pe designerii Smalltalk, care ulterior au fondat ParcPlace Systems, în încercarea de a comercializa Smalltalk în afara rigidității corporatiste a Xerox-ului. Am multe amintiri plăcute vorbind despre teoria programării peste costițe și salată de varză într-un mic restaurant de barbecue din Palo Alto.

Unul dintre vicepreședinții cu care am lucrat la compania de calculatoare unde am fost angajat a încercat să mă convingă să încep o companie împreună cu el pentru a aplica Smalltalk pe piața întreprinderilor, dar încă nu fusese sălbăticit de febra startup-urilor. Smalltalk nu a reușit să se impună pe piață. Totuși, deși sunt fericit cu drumul pe care l-a luat viața mea, uneori mă întreb ce s-ar fi întâmplat dacă aș fi acceptat oferta lui.

imagine2.jpg

Am gânduri

Nu am rulat acest cod și, deoarece nu am atât de multă experiență recentă cu aceste limbaje precum am cu PHP și JavaScript, nu pot garanta că revizuirea vizuală făcută mai sus garantează că codul prezentat mai sus va fi rulat cu succes. După cum am văzut mai devreme în săptămâna asta cu explorarea abilităților de programare proaspete ale lui Bard, este posibil să scrii cod care să nu funcționeze.

De asemenea: Am cerut ChatGPT să scrie un plugin WordPress de care aveam nevoie. L-a făcut în mai puțin de 5 minute

Noi știm că în fiecare exemplu există cel puțin o eroare: antetele sunt greșite. Deci, în timp ce capacitatea AI-ului de a genera cod într-o mulțime de limbi relativ obscure este uimitoare peste măsură, nu presupuneți că face întregul job corect.

Dacă decideți să incorporați programarea ChatGPT în fluxul dvs. de lucru, va trebui să verificați, testați și depanați codul pe care îl generează așa cum ați face dacă ați angaja pe cineva să vă scrie unele rutine de bază.

Articole asociate

Vizualizați mai multe >>

Deblocați puterea AI cu HIX.AI!