Ik heb ChatGPT gebruikt om dezelfde routine te schrijven in deze tien obscure programmeertalen

afbeelding9.jpg

Een paar weken geleden heb ik gekeken naar het gebruik van ChatGPT om dezelfde routine te schrijven in een dozijn van de meest populaire programmeertalen. Maar als programmeertaal liefhebber vroeg ik me af hoever ChatGPT zou gaan. Zou het programmeren in een taal uit de jaren 50? Zou het programmeren in een taal die zijn eigen tekenreeks gebruikt? Zou het code kunnen schrijven in één van de talen die zijn eigen code schrijft?

Ook: De beste AI-chatbots: ChatGPT en alternatieven om uit te proberen

En dus dook ik erin. Ik heb veel van de talen die ik hier belicht heb gebruikt, dus ik neem een kleine wandeling door mijn geheugen en zal wat verhalen toevoegen over mijn ervaring met de talen die ik heb gebruikt.

Hoewel ik de code zelf nog niet heb uitgevoerd, heb ik alle gegenereerde programma's doorgelezen. De meeste zien er correct uit en tonen de juiste indicatoren die aangeven dat de gepresenteerde taal de taal is die ik heb gevraagd.

Ik vertel je dit omdat de koppen op alle screenshots verkeerd zijn. De meeste worden vermeld als SQL. Om de een of andere reden wordt BAL weergegeven als VBNet en staat Prolog vermeld als Rust. ChatGPT heeft deze fout de vorige keer niet gemaakt, maar het heeft het vandaag gemaakt voor alle talen die hier worden getoond.

En met dat, laten we beginnen.

Fortran

Fortran (of FORTRAN, zoals het destijds werd afgebeeld) staat voor Formula Translation. Het werd voornamelijk ontwikkeld voor wetenschappelijke en technische berekeningen. Ondanks dat het dateert uit de jaren 50, was het vaak de eerste taal die werd onderwezen aan technische studenten in de jaren 70 en 80.

Ook: Deze nieuwe technologie kan GPT-4 en alles wat erop lijkt wegblazen

Voor mij was het mijn vierde programmeertaal, na BASIC, PDP-8 assemblytaal en PDP-8 binaire code (ja, ik schreef binaire code zodat ik het handmatig kon invoeren via het voorpaneel van een vroege minicomputer). Mijn vader reed me genereus een uur naar Newark College of Engineering (nu NJIT) zodat ik hun programmeercursus voor eerstejaars kon volgen terwijl ik nog in de tweede klas van de middelbare school zat.

Fortran was nooit een favoriet, hoewel het de meeste rekenkundige taken kon uitvoeren. Een variant van Fortran wordt nog steeds gebruikt, maar het is voornamelijk beperkt tot gespecialiseerd wetenschappelijk werk, aangezien veel andere moderne talen Fortran-niveau analyses uitvoeren, en het beter doen.

Hier lijkt het erop dat ChatGPT code weergeeft die is geschreven in de Fortran-77 variant vanwege het gebruik van het impliciete trefwoord.

afbeelding7.jpg

COBOL

Ik was een tienerprogrammeur in COBOL. Destijds kende ik COBOL niet, maar rond 1980 zag ik een vacature voor een COBOL-programmeur bij het Northeast Regional Data Center van International Paper in Denville, NJ. Het was ongeveer 40 minuten van het huis van mijn ouders, en ik had een zomerbaan nodig. Zodra het me lukte om een sollicitatiegesprek te plannen, rende ik naar de lokale boekwinkel en besteedde ik een weekend aan het lezen van alle COBOL-studiematerialen die ik kon vinden.

COBOL was bedoeld voor zakelijke verwerking. Vandaag de dag zouden dezelfde soort klanten SAP- of Salesforce-gebruikers zijn. Maar COBOL, zoals je kunt zien aan de COBOL-88 code hieronder, was functioneel, maar zeker niet elegant.

Het blijkt dat ze een fulltime medewerker wilden. Maar omdat ik hun test had gehaald (blijkbaar versloeg mijn weekend van studie de scores van de professionals die hadden gesolliciteerd), besloten ze om me voor de zomer aan het werk te zetten. Om te zeggen dat er een culturele mismatch was, was een understatement. Dit waren de zeer vroege dagen van microcomputers (denk aan pre-PC) en ik genoot daarvan. Ondertussen waren deze mensen helemaal gek van pakken, stropdassen en gigantische datacenters. Ik kreeg bijna onmiddellijk de bijnaam "Trouble". Hé, ik was nog steeds een kind.

Het beslissende moment kwam voor mij toen één van de meer ervaren programmeurs bij het bedrijf mij apart nam om uit te leggen, en ik citeer: "COBOL is het leven." Ik nam die boodschap ter harte en besloot dat ik niet wilde dat mijn leven om COBOL zou draaien. Die zomer was de laatste keer dat ik iets programmeerde in COBOL.

afbeelding11.jpg

RPG (Report Program Generator)

Nee, het is geen raket-aangedreven granaat of een rollenspel. RPG was een programma voor het maken van rapporten. Je kunt de evolutie in de taal (en het denken over computertalen in het algemeen) zien tussen de twee onderstaande versies. RPG II stamt uit de late jaren 1950. RPG IV werd bijgewerkt in de jaren 1990 en is aanzienlijk moderner (maar nog steeds zeker verouderd).

Ik heb tijdens mijn studie wel wat RPG III-programma's geschreven voor de AS/400 als bijbaan, maar het was nooit iets waar ik heel actief mee bezig was.

afbeelding3.jpg

Lisp

Ik heb een lange liefdesaffaire met Lisp. Lisp, vernoemd naar LISt Processor, werd soms omschreven als Veel Nutteloze Domme Haakjes. Om de een of andere reden klikten die haakjes in mijn brein. Lisp was mijn opstapje naar AI-programmeren, en zoals we hebben geleerd van het verwerken van taal door ChatGPT, kan kennis worden gerepresenteerd als reeksen van woorden, of lijsten.

In de jaren 80 was ik productmanager voor een Common Lisp-implementatie gebaseerd op RISC, en codeerde er een tijdje in. Afgaande op de door ChatGPT gegenereerde defun-groet en let syntaxis, lijkt de onderstaande code ook Common Lisp te zijn, een latere variant van John McCarthy's oorspronkelijke Lisp-implementatie uit eind jaren 50. McCarthy was een van de grondleggers van onderzoek naar AI, dus het is alleen maar passend dat een AI in zijn taal schrijft.

afbeelding4.jpg

Algol

ALGOL (ALGOritmische Taal) was zijn tijd vooruit. Het maakte het mogelijk om functies als parameters door te geven en maakte het gebruik van recursie mogelijk. Dit zijn twee belangrijke elementen van moderne programmering die ontbraken in populaire talen zoals Fortran en COBOL, die in dezelfde periode populair waren toen ALGOL geïntroduceerd werd.

Als Fortran, BASIC en assembly language hebben me top-down programmeren geleerd, dan leerde ALGOL me hoe ik mijn code moet structureren. Het was een fundamentele taal die het toneel vormde voor het gebruik van C, Pascal, Java, JavaScript en de meeste moderne gestructureerde talen die we vandaag gebruiken.

afbeelding5.jpg

Simula

Simula, zoals je je kunt voorstellen, werd ontwikkeld voor simulatie en modellering. Net als ALGOL liep Simula ook voorop in zijn tijd, waardoor het gebruik van objecten en klassen mogelijk was. Objectgeoriënteerd programmeren is sindsdien essentieel geworden voor veel van de meest effectieve programmeertalen van vandaag.

Het gebruik van het trefwoord OUTFIX vertelt mij dat ChatGPT waarschijnlijk de volgende code heeft geschreven in Simula-67.

afbeelding6.jpg

BAL (IBM 360/370 assemblagetaal)

BAL, wat staat voor "basic assembly language," was de assembleertaal voor grote IBM-ijzerwaren in de jaren 70 en 80. Assembleertaal wordt beschouwd als meer "laag niveau" dan "hoog niveau talen," wat betekent dat individuele instructies en sleutelwoorden overeenkomen met individuele processor instructies. In hogere niveautalen (zoals de meeste die we vandaag gebruiken), is de taal vaak ver verwijderd van de onderliggende machinestructuur en is het ontworpen voor efficiënt programmeren in plaats van efficiënt gebruik van hardware.

Ik volgde een semester LANG op de universiteit. Het was pittig. De professor stond de meeste dagen met zijn rug naar de studenten, mompelde zijn lezing in monotone, terwijl hij non-stop op het zwarte bord schreef. Ik zat op de achterste rij naast een meisje genaamd Laura. Op een dag besloten Laura en ik om via het achterste raam weg te sneaken om koffie te halen. Nadat we onze koffie hadden gehaald, klommen we terug het raam in. De professor heeft het nooit gemerkt.

Het is een wonder dat we allemaal geslaagd zijn, maar het is geen wonder dat vrijwel niemand van ons ervoor koos om BAL-programmering als onze favoriete programmeertaal te gebruiken.

afbeelding8.jpg

APL

APL, of A Programming Language, is een andere programmeertaal. Een van de meest opvallende kenmerken van APL is dat het een niet-standaard karakterset gebruikt voor sommige van zijn operatoren en coderingen. Dat kun je zien in de onderstaande afbeelding. De kleine tekens zijn wat ChatGPT uit het gebruikte lettertype heeft weten te halen, maar APL is ontworpen om het APL385 Unicode-lettertype te gebruiken, dat uniek is voor programmeren in APL.

Vanwege de beknopte syntax en het goed beheren van grote datasets, wordt het gebruikt in een behoorlijk aantal wetenschappelijke, financiële en analytische projecten.

afbeelding10.jpg

Proloog

Prolog (afgeleid van de term Programming in Logic) is een andere taal gericht op AI. Prolog is een declaratieve taal, waarin regels en voorwaarden worden opgesomd, die vervolgens worden gecontroleerd door middel van queries. Volgens ChatGPT:

Prolog is een van de programmeertalen die wordt gebruikt bij de ontwikkeling van ChatGPT, specifiek voor het genereren van tekst. Het wordt gebruikt in het Prolog-naar-Engels-module, dat logische vormen in Prolog vertaalt naar zinnen in natuurlijke taal.

afbeelding1.jpg

Kleine Praatjes

Smalltalk is speciaal. Het is ontwikkeld bij Xerox PARC, hetzelfde onderzoekslab dat invloed heeft gehad op de ontwikkeling van de muis en vensteromgevingen. Het heeft enkele van de innovaties in objectgeoriënteerd programmeren van Simula overgenomen en ging nog verder. Het was ook een van de eerste talen die actief gebruik maakte van een op GUI gebaseerde interactieve programmeeromgeving. Veel van de top talen van vandaag, waaronder Java, Python en Ruby, zijn sterk beïnvloed door Smalltalk.

Ik heb alleen een beetje geëxperimenteerd met Smalltalk, voornamelijk om het te leren kennen. Toen ik destijds in Silicon Valley woonde, leerde ik de ontwerpers van Smalltalk kennen, die later ParcPlace Systems oprichtten om Smalltalk commercieel beschikbaar te maken buiten het stijve bedrijfsklimaat van Xerox. Ik koester veel mooie herinneringen aan het bespreken van programmeertheorie onder het genot van spareribs en koolsalade in een klein, vervallen barbecuerestaurant in Palo Alto.

Eén van de vicepresidenten waarmee ik heb samengewerkt bij het computerbedrijf waar ik werkzaam was, probeerde me over te halen om samen met hem een bedrijf op te starten om Smalltalk toe te passen op de zakelijke markt, maar op dat moment was ik nog niet gegrepen door het start-up-virus. Smalltalk heeft het nooit gemaakt als markt. Maar hoe tevreden ik ook ben met de weg die mijn leven bewandeld heeft, vraag ik me soms af wat er zou zijn gebeurd als ik zijn aanbod had aangenomen.

afbeelding2.jpg

Ik heb gedachten

Ik heb deze code niet uitgevoerd en omdat ik niet zo bekend ben met deze talen als met PHP en JavaScript, kan ik niet met zekerheid zeggen dat mijn visuele beoordeling garandeert dat de bovenstaande code succesvol zal worden uitgevoerd. Zoals we eerder deze week hebben gezien in mijn verkenning van Bard's nieuwe programmeervaardigheden, is het mogelijk om code te schrijven zonder dat deze werkt.

Ook: Ik vroeg ChatGPT om een WordPress-plugin te schrijven die ik nodig had. Het deed het binnen 5 minuten

We weten dat er minstens één fout zit in elk voorbeeld: de koppen zijn verkeerd. Dus hoewel het vermogen van AI om code te genereren in een aantal relatief obscure talen ongelooflijk gaaf is, neem niet aan dat het de hele klus correct uitvoert.

Als je ervoor kiest om de programmacode van ChatGPT in je workflow op te nemen, moet je de gegenereerde code controleren, testen en debuggen, net zoals je zou doen als je iemand zou inhuren om wat basisroutines voor je te schrijven.

Gerelateerde Artikelen

Bekijk meer >>

Ontgrendel de kracht van AI met HIX.AI!