Jeg har brugt ChatGPT til at skrive den samme rutine i disse ti ukendte programmeringssprog

billede9.jpg

For flere uger siden kiggede jeg på brugen af ChatGPT til at skrive den samme rutine i et dusin af de mest populære programmeringssprog. Men som en sprog-geek undrede jeg mig bare over, hvor langt ChatGPT egentlig kunne gå. Ville den kunne programmere på et sprog fra 1950'erne? Ville den kunne programmere på et sprog, der brugte sit eget tegnsæt? Kunne den skrive kode i et af de sprog, som skrev sin egen kode?

Også: De bedste AI chatbots: ChatGPT og alternativer at prøve

Og så dykkede jeg ned. Jeg har brugt mange af de sprog, som jeg fremhæver her, så jeg vil tage en lille tur ned ad hukommelsens vej og inkludere nogle historier om mine erfaringer med dem, jeg har brugt.

Selvom jeg ikke har kørt koden selv, har jeg læst igennem alle de genererede programmer. De fleste ser ud til at være korrekte og viser de passende indikatorer, der fortæller os, at det præsenterede sprog er det sprog, jeg har bedt om.

Jeg fortæller dig dette, fordi overskrifterne på alle skærmbillederne er forkerte. De fleste er angivet som SQL. Af en eller anden grund vises BAL som VBNet, og Prolog er anført som Rust. ChatGPT begik ikke denne fejl sidste gang, men det gjorde den i dag for alle de sprog, der vises her.

Og med det, lad os springe ud i det.

Fortran

Fortran (eller FORTRAN, som det blev kaldt dengang) står for Formeloversættelse. Det blev primært udviklet til videnskabelige og ingeniørmæssige beregninger. Selvom det går tilbage til 1950'erne, var det ofte det første sprog, der blev lært til ingeniørstuderende i 1970'erne og 1980'erne.

Også: Denne nye teknologi kunne blæse GPT-4 og alt lignende væk

For mig var det mit fjerde programmeringssprog, efter BASIC, PDP-8 assemblysprog og PDP-8 binær (ja, jeg skrev binærkode, så jeg kunne skifte den ind på frontpanelet af en tidlig minicomputer). Min far kørte generøst en time ned til Newark College of Engineering (nu NJIT), så jeg kunne tage deres førsteårsprogrammeringskursus, mens jeg stadig var en andenårsstuderende på gymnasiet.

Fortran var aldrig en favorit, selvom det kunne udføre de fleste beregningsorienterede opgaver. En variation af Fortran er stadig i brug i dag, men den er ret begrænset til specialiseret videnskabeligt arbejde, da mange andre moderne sprog udfører Fortran-niveau analyser og gør det bedre.

Her ser det ud til, at ChatGPT bruger kode skrevet i varianten Fortran-77 på grund af brugen af nøgleordet implicit.

image7.jpg

COBOL

Jeg var en teenager COBOL-programmør. På det tidspunkt kendte jeg ikke til COBOL, men et eller andet sted omkring 1980 så jeg en jobannonce efter en COBOL-programmør i Northeast Regional Data Center hos International Paper i Denville, NJ. Det lå cirka 40 minutter fra mine forældres hjem, og jeg havde brug for et sommerjob. Så snart jeg fik arrangeret en jobsamtale, skyndte jeg mig hen til den lokale boghandel og brugte en weekend på at læse alt det COBOL-materiale jeg kunne finde.

COBOL skulle bruges til forretningsorienteret databehandling. I dag ville de samme typer kunder være SAP- eller Salesforce-brugere. Men COBOL, som du kan se i COBOL-88-koden nedenfor, var funktionelt, men det var bestemt ikke elegant.

Som det viser sig, ønskede de en fuldtidsansat. Men da jeg klarede deres test (tilsyneladende slog min weekendstudie ud over professionelle der ansøgte), besluttede de at sætte mig i arbejde for sommeren. At sige der var en kulturel uoverensstemmelse, var en underdrivelse. Dette var de meget tidlige dage med mikrocomputere (tænk før PC'en) og jeg glædede mig over den slags. Imens handlede disse mennesker om jakkesæt og manchetknapper og kæmpe datacentre. Jeg fik næsten øjeblikkeligt kælenavnet "Trouble". Hej, jeg var stadig et barn.

Det afgørende øjeblik for mig kom, da en af de mere erfarne programmører i virksomheden tog mig til side for at forklare, og jeg citerer, "COBOL er livet." Jeg tog den besked til mig og besluttede, at jeg ikke ønskede, at mit liv skulle handle om COBOL. Den sommer var sidste gang, jeg programmerede noget i COBOL.

billede11.jpg

RPG (Rapportprogramgenerator)

Nej, det er ikke en raketdrevet granat eller et rollespil. RPG var et program til at oprette rapporter. Du kan se udviklingen i sproget (og datalogisk tænkning generelt) mellem de to versioner, der er vist nedenfor. RPG II stammer fra slutningen af 1950'erne. RPG IV blev opdateret i 1990'erne og er væsentligt mere moderne (men stadig definitivt forældet).

Jeg skrev nogle RPG III programmer til AS/400 som en sidejob mens jeg var på college, men det var aldrig noget, jeg fulgte særligt tæt.

billede3.jpg

Lisp

Jeg har haft en lang kærlighedsaffære med Lisp. Lisp, navngivet efter LISt Processor, blev nogle gange beskrevet som Masser af Insipid Stupid Parenteser. Af en eller anden grund klikkede de parenteser i min hjerne. Lisp var min gateway drug ind i AI-programmering, og som vi har lært fra ChatGPT's behandling af sprog, kan viden repræsenteres som streng af ord eller lister.

Tilbage i 1980'erne var jeg produktchef for en Common Lisp-implementering baseret på RISC, og jeg kodede i det i en periode. Baseret på defun greeting og let syntaksen genereret af ChatGPT, ser det ud til, at koden nedenfor også er Common Lisp, en senere variation af John McCarthys originale Lisp-implementering fra slutningen af 1950'erne. McCarthy var en af grundlæggerne af AI-forskning, så det er passende, at en AI skal skrive i hans sprog.

billede4.jpg

Algol

ALGOL (ALGOrytmiske Sprog) var forud for sin tid. Det tillod overførsel af funktioner som parametre og tillod brugen af rekursion. Disse er to nøglekomponenter i moderne programmering, der var fraværende i populære sprog som Fortran og COBOL, der var populære på samme tid som ALGOL's introduktion.

Hvis Fortran, BASIC og assembly-sprog har lært mig top-down programmering, har ALGOL lært mig at strukturere min kode. Det var et grundlæggende sprog, der lagde grundlaget for min brug af C, Pascal, Java, JavaScript og de fleste moderne strukturerede sprog, vi bruger i dag.

billede5.jpg

Simula

Simula, som du kan forestille dig, blev udviklet til simulering og modellering. Lig ALGOL var Simula også forud for sin tid og understøttede brugen af objekter og klasser. Objektorienteret programmering er sidenhen blevet grundlæggende for mange af dagens mest effektive programmeringssprog.

Brugen af nøgleordet OUTFIX fortæller mig, at ChatGPT sandsynligvis har skrevet følgende kode i Simula-67.

billede6.jpg

BAL (IBM 360/370 maskinsprog)

BAL, der står for "basic assembly language", var assembly-sproget til store IBM-maskiner tilbage i 1970'erne og 1980'erne. Assembly-sprog betragtes som mere "lavniveau" end "højniveau-sprog", hvilket betyder, at individuelle instruktioner og nøgleord mapper til individuelle processorinstruktioner. I højniveau-sprog (som de fleste vi bruger i dag), er sproget ofte langt borte fra den underliggende maskinarkitektur og er designet mere til effektiv programmering end effektiv brug af hardware.

Jeg tog en semester i BAL på universitetet. Det var hårdt. Professoren stod de fleste dage med ryggen til eleverne og mumlede sin forelæsning i en monoton tone, mens han skrev uafbrudt på tavlen. Jeg sad bagerst ved siden af en pige ved navn Laura. En dag besluttede Laura og jeg at smutte ud af vinduet og hente kaffe. Da vi havde fået vores java, kravlede vi tilbage ind af vinduet. Professoren lagde aldrig mærke til det.

Det er en wonder, at nogen af os bestod, men det er ikke underligt, at næsten ingen af os valgte BAL-programmering som vores foretrukne kodeværktøj.

billede8.jpg

APL

APL, eller en programmeringssprog, er endnu et programmeringssprog. En af de mest iøjnefaldende aspekter ved APL er, at det bruger et ikke-standard tegnsæt for nogle af dets operatører og koder. Du kan se det på billedet nedenfor. De små symboler er det, ChatGPT var i stand til at præsentere fra den font, den brugte, men APL er designet til at bruge APL385 Unicode-fonten, som er unik for programmering i APL.

På grund af dets knappe syntaks og evnen til at håndtere store datasæt godt, bliver det brugt i en ret stor mængde videnskabelige, finansielle og analytiske projekter.

billede10.jpg

Prolog

Prolog (som stammer fra udtrykket Programmering i Logik) er endnu et sprog med fokus på kunstig intelligens. Prolog er et deklarativt sprog, hvor man opstiller regler og betingelser og derefter kører forespørgsler på disse erklæringer. Ifølge ChatGPT:

Prolog er en af de programmeringssprog, der anvendes i udviklingen af ChatGPT, specifikt til generering af tekst. Det anvendes i Prolog-til-engelsk-modulet, som oversætter logiske former i Prolog til naturlige sprog sætninger.

billede1.jpg

Smalltalk

Smalltalk er speciel. Det blev udviklet på Xerox PARC, det samme forskningslaboratorium, der påvirkede udviklingen af musen og vinduesmiljøer. Det inkorporerede nogle af Simulas innovationer inden for objektorienteret programmering og gik videre. Det var også et af de første sprog, der gjorde aktiv brug af et GUI-baseret interaktivt programmeringsmiljø. Mange af dagens top-sprog, herunder Java, Python og Ruby, blev stærkt påvirket af Smalltalk.

Jeg har kun leget med Smalltalk, mest for at lære det at kende. På det tidspunkt boede jeg i Silicon Valley, og jeg lærte designerne af Smaltalk at kende, som senere startede ParcPlace Systems for at gøre Smalltalk kommercielt tilgængeligt uden for Xerox's stivhed. Jeg har mange gode minder om at diskutere programmeringsteorier over spareribs og coleslaw på en lille nedslidt grillrestaurant i Palo Alto.

En af vicepræsidenterne, som jeg arbejdede sammen med hos computerfirmaet, hvor jeg var ansat, forsøgte at overtale mig til at starte et firma sammen med ham for at anvende Smalltalk på erhvervsmarkedet, men jeg var endnu ikke blevet grebet af iværksætterlysten. Smalltalk blev aldrig en succes på markedet. Alligevel, så lykkelig som jeg er med den vej, mit liv har taget, spekulerer jeg sommetider på, hvad der ville være sket, hvis jeg havde taget imod hans tilbud.

billede2.jpg

Jeg har tanker

Jeg kørte ikke denne kode, og da jeg ikke har lige så meget kendskab til disse sprog som jeg har til PHP og JavaScript, kan jeg ikke være sikker på, at min visuelle gennemgang garanterer, at koden ovenfor vil køre korrekt. Som vi så tidligere på ugen med min udforskning af Bards nye evner inden for programmering, er det muligt at skrive kode, uden at den virker.

Også: Jeg bad ChatGPT om at skrive en WordPress-plugin, jeg havde brug for. Den gjorde det på mindre end 5 minutter

Vi ved, at der er mindst en fejl i hvert eksempel: overskrifterne er forkerte. Så selvom evnen for AI'en til at generere kode på en masse relativt obskure sprog er helt fantastisk, så gå ikke ud fra, at den udfører hele jobbet korrekt.

Hvis du beslutter dig for at inkorporere ChatGPT-programmering i din arbejdsgang, skal du kontrollere, teste og debugge den kode, den genererer, præcis som du ville gøre, hvis du havde hyret nogen til at skrive nogle grundlæggende rutiner for dig.

Relaterede Artikler

Se mere >>

Lås op for AI-kraften med HIX.AI!