Użyłem ChatGPT do napisania tej samej rutyny w dziesięciu rzadkich językach programowania

obraz9.jpg

Kilka tygodni temu przyjrzałem się używaniu ChatGPT do napisania tej samej rutyny w dziesięciu najpopularniejszych językach programowania. Ale jako maniak języków programowania, zastanawiałem się, jak daleko ChatGPT posunie się. Czy może programować w języku z lat 50.? Czy jest w stanie napisać kod w języku, który używał własnego zestawu znaków? Czy potrafi napisać kod w jednym z języków, w którym pisano jego kod?

Również: Najlepsze chatboty AI: ChatGPT i alternatywy do wypróbowania

I tak, zanurzyłem się w tym. Użyłem wielu języków, na które teraz skupiam uwagę, więc przejdę trochę po wspomnieniach i opowiem kilka historii o moim doświadczeniu z tymi, których używałem.

Mimo że nie uruchomiłem samego kodu, przeczytałem wszystkie wygenerowane programy. Większość wygląda dobrze i pokazuje odpowiednie wskaźniki, informujące nas, że prezentowany język to język, o który poprosiłem.

Powtarzam to, ponieważ nagłówki na wszystkich zrzutach ekranu są błędne. Większość jest wymieniona jako SQL. Z jakiegoś powodu, BAL jest pokazane jako VBNet, a Prolog jest wymieniony jako Rust. ChatGPT nie popełnił tego błędu ostatnim razem, ale zrobił to dzisiaj, dla wszystkich pokazanych tutaj języków.

I teraz, zanurzmy się w to.

Fortran

Fortran (lub FORTRAN, jak to wtedy przedstawiano) oznacza Formula Translation. Pierwotnie został opracowany głównie do obliczeń naukowych i inżynieryjnych. Pomimo że pochodzi z lat 50. XX wieku, często był to pierwszy język, który uczono studentów inżynierii w latach 70. i 80.

Również: Ta nowa technologia może zdmuchnąć GPT-4 i wszystko podobne do niego

Dla mnie było to czwarte język programowania, po BASIC-u, języku maszynowym PDP-8 i kodzie binarnym PDP-8 (tak, pisałem kod binarny, więc mogłem go wprowadzić na przednim panelu wczesnego minikomputera). Mój Tata hojnie zawiózł mnie przez godzinę do Newark College of Engineering (obecnie NJIT), żebym mógł uczęszczać na ich kurs programowania pierwszego roku, mimo że byłem jeszcze w drugiej klasie liceum.

Fortran nigdy nie był ulubionym językiem, choć potrafił wykonać większość zadań związanych z obliczeniami. Wariację języka Fortran nadal używa się dzisiaj, ale jest ona dość ograniczona do specjalistycznych prac naukowych, ponieważ wiele nowoczesnych języków obsługuje analizę na poziomie Fortrana, i robią to lepiej.

Tutaj, ze względu na użycie słowa kluczowego implicite, wydaje się, że ChatGPT przedstawia kod napisany w odmianie Fortran-77.

obraz7.jpg

COBOL

Byłem nastoletnim programistą COBOL-a. Nie znałem wtedy COBOL-a, ale gdzieś około 1980 roku zobaczyłem ogłoszenie o poszukiwaniu programisty COBOL-a w Northeast Regional Data Center International Paper w Denville, NJ. Było to około 40 minut od domu moich rodziców, a potrzebowałem pracy na lato. Jak tylko udało mi się umówić na rozmowę kwalifikacyjną, pobiegłem do lokalnej księgarni i przez cały weekend zagłębiałem się w literaturę związaną z COBOL-em.

COBOL było przeznaczone do przetwarzania o orientacji biznesowej. Dzisiaj, do tego samego typu klientów należą użytkownicy SAP lub Salesforce. Ale COBOL, jak można zobaczyć na poniższym kodzie COBOL-88, był funkcjonalny, ale z pewnością nie był elegancki.

Okazuje się, że chcieli pełnoetatowego pracownika. Ale ponieważ zdałem ich test (wygląda na to, że moje weekendowe nauki zwyciężyły wyniki profesjonalistów, którzy aplikowali), postanowili dać mi pracę na lato. Powiedzieć, że doszło do kulturowego niezgodnego połączenia, to było niedopowiedzenie. To były bardzo wczesne dni mikrokomputerów (myśl o okresie przed PC) i uwielbiałem to. Tymczasem ci ludzie byli całkowicie koncentrowani na garniturach, krawatach i gigantycznych centrach danych. Prawie od razu przywaliłem przydomkiem "Trouble". Hej, wciąż byłem tylko dzieckiem.

Decydujący moment nadszedł, gdy jeden z bardziej doświadczonych programistów w firmie zabrał mnie na bok i wyjaśnił, cytując: „COBOL to życie”. Wziąłem to do serca i postanowiłem, że nie chcę, aby moje życie było związane z COBOL-em. Tamtego lata było ostatnim razem, kiedy programowałem cokolwiek w COBOL-u.

obraz11.jpg

RPG (Report Program Generator)

Nie, to nie jest granatnik rakietowy ani gra fabularna. RPG był programem do tworzenia raportów. Można zobaczyć ewolucję w języku (i ogólnie w myśleniu programistycznym) pomiędzy dwiema pokazanymi poniżej wersjami. RPG II pochodzi z lat 50. RPG IV został zaktualizowany w latach 90. i jest znacznie nowocześniejszy (choć nadal przestarzały).

Pisałem kilka programów RPG III dla AS/400 jako dodatkowe zajęcie, gdy byłem na studiach, ale nigdy nie była to moja główna dziedzina zainteresowań.

obraz3.jpg

Lisp

Mam długą miłość do Lispa. Lisp, nazwany na cześć LISt Procesora, czasami był opisywany jako Wiele Irytujących Głupich Nawiasów. Z jakiegoś powodu te nawiasy działały na moim mózgu. Lisp był moim wejściem do programowania AI i jak się dowiedzieliśmy z przetwarzania języka przez ChatGPT, wiedza może być reprezentowana jako ciągi słów lub listy.

W latach 80. byłem menedżerem produktu dla implementacji wspólnej lispy opartej na RISC, i przez pewien czas kodowałem w niej. Bazując na składni defun greeting oraz let wygenerowanej przez ChatGPT, wygląda na to, że poniższy kod jest również Common Lispem, późniejszą wersją oryginalnej implementacji Lispy Johna McCarthy'ego z przełomu lat 50. McCarthy był jednym z ojców założycieli badań nad sztuczną inteligencją, więc wydaje się to odpowiednie, żeby SI również pisało w jego języku.

obraz4.jpg

Algol

ALGOL (ALGOrytmiczny Język) był wyprzedzający swoją epokę. Pozwalał na przekazywanie funkcji jako parametrów oraz na wykorzystywanie rekurencji. Są to dwa kluczowe elementy nowoczesnego programowania, które były nieobecne w popularnych językach takich jak Fortran i COBOL, które były popularne w tym samym czasie co wprowadzenie ALGOL'a.

Jeśli Fortran, BASIC i język asemblera nauczyły mnie programowania od góry do dołu, ALGOL nauczył mnie, jak strukturyzować mój kod. Był to język podstawowy, który ułożył podwaliny pod moje używanie C, Pascala, Javy, JavaScriptu i większości nowoczesnych strukturalnych języków, z których korzystamy dzisiaj.

obraz5.jpg

Simula

Simula, jak można sobie wyobrazić, została opracowana do symulacji i modelowania. Podobnie jak ALGOL, Simula również była przed swoim czasem, wspierając używanie obiektów i klas. Programowanie zorientowane obiektowo stało się od tego czasu podstawą wielu z najbardziej efektywnych języków programowania dostępnych dzisiaj.

Użycie słowa kluczowego OUTFIX mówi mi, że ChatGPT prawdopodobnie napisał poniższy kod w Simula-67.

obraz6.jpg

BAL (język maszynowy IBM 360/370)

BAL, czyli basic assembly language, był językiem asemblera dla dużych maszyn IBM w latach 70. i 80. Język asemblera uważany jest za bardziej niskopoziomowy niż wysokopoziomowe języki, co oznacza, że poszczególne instrukcje i słowa kluczowe odnoszą się bezpośrednio do instrukcji procesora. W wysokopoziomowych językach (takich jak większość używanych dzisiaj) język jest często oddalony od podstawowej architektury maszyny i jest projektowany bardziej pod kątem efektywności programowania niż efektywnego wykorzystania sprzętu.

W college'u zaliczyłem semestr BAL-u (język polski jako obcy). To było ciężkie. Profesor większość czasu spędzał z plecami do studentów, mrucząc monotematyczny wykład, pisząc nieustannie na tablicy. Siedziałem w ostatnim rzędzie obok dziewczyny o imieniu Laura. Pewnego dnia, Laura i ja postanowiliśmy uciec przez tylne okno, żeby się napić kawy. Gdy już mieliśmy naszą dawkę kofeiny, wspięliśmy się z powrotem przez okno. Profesor nawet nie zauważył.

To zdumienie, że którykolwiek z nas zdał, ale nic dziwnego, że prawie nikt nie wybrał programowania BAL jako swojego wyborowego języka kodowania.

obraz8.jpg

APL

APL, czyli język programowania APL, to kolejny język programowania. Jedną z najbardziej charakterystycznych cech APL jest to, że używa on niestandardowego zestawu znaków dla niektórych operatorów i kodowania. Możesz zobaczyć to na obrazku poniżej. Małe symbole to to, co ChatGPT był w stanie wyświetlić z wykorzystywanego przez siebie czcionki, ale APL jest zaprojektowany do użytku z czcionką Unicode APL385, która jest unikalna dla programowania w APL.

Ponieważ posiada zwięzłą składnię i dobrze zarządza dużymi zbiorami danych, jest używany w wielu projektach naukowych, finansowych i analitycznych.

obraz10.jpg

Wstęp

Prolog (pochodzący od frazy Programowanie w Logice) to kolejny język skupiony na sztucznej inteligencji. Prolog jest językiem deklaratywnym, w którym wylicza się reguły i warunki, a następnie uruchamia się zapytania na podstawie tych deklaracji. Według ChatGPT:

Prolog jest jednym z języków programowania używanych w rozwoju ChatGPT, szczególnie do generowania tekstu. Jest używany w module Prolog-to-English, który przekształca logiczne formy w Prologu na zdania w języku naturalnym.

obraz1.jpg

Smalltalk

Smalltalk jest wyjątkowy. Został opracowany w Xerox PARC, tym samym laboratorium badawczym, które miało wpływ na rozwój myszy i środowisk z oknami. Wprowadził kilka innowacji w programowaniu zorientowanym obiektowo, które zostały zapoczątkowane przez Simulę, a także poszedł dalej. Był także jednym z pierwszych języków, które aktywnie wykorzystywały środowisko programistyczne oparte na interaktywnym GUI. Wiele z dzisiejszych głównych języków, w tym Java, Python i Ruby, było silnie wpływane przez Smalltalk.

Sporadycznie zajmowałem się Smalltalkiem, głównie po to, aby go poznać. Wtedy mieszkałem w Dolinie Krzemowej i miałem okazję poznać projektantów Smalltalka, którzy później założyli firmę ParcPlace Systems, próbując komercjalizować Smalltalk poza korporacyjną sztywnością Xeroxa. Mam wiele miłych wspomnień z rozmów na temat teorii programowania przy żebrowych żarnach i sałatce z białej kapusty w małej, zniszczonej restauracji w Palo Alto.

Jeden z wiceprezesów, z którymi pracowałem w firmie komputerowej, w której byłem zatrudniony, próbował namówić mnie do założenia razem z nim firmy, która stosowałaby Smalltalk na rynku przedsiębiorstw. Jednak wtedy jeszcze nie byłam zarażona wirusem startupu. Smalltalk nigdy nie stał się popularny na rynku. Mimo to, chociaż jestem zadowolony z wyboru, który dokonałem w swoim życiu, czasem zastanawiam się, co by się stało, gdybym przyjął tę ofertę.

obrazek2.jpg

Mam myśli

Nie uruchomiłem tego kodu i ponieważ nie mam ostatniej znajomości tych języków takiej jak mam z PHP i JavaScript, nie mogę być pewien, czy moja wizualna recenzja gwarantuje, że kod pokazany powyżej zostanie pomyślnie uruchomiony. Jak widzieliśmy wcześniej w tym tygodniu podczas eksploracji nowych umiejętności programistycznych Barda, można napisać kod, który nie działa.

Również: Poprosiłem ChatGPT o napisanie potrzebnego mi wtyczki WordPress. Wykonał to w mniej niż 5 minut

Wiemy, że w każdym przykładzie jest przynajmniej jeden błąd: nagłówki są nieprawidłowe. Dlatego, choć umiejętność generowania kodu przez sztuczną inteligencję w różnych, dość nietypowych językach jest naprawdę imponująca, nie zakładajmy, że wykonuje ona całą pracę poprawnie.

Jeśli zdecydujesz się włączyć programowanie ChatGPT do swojego procesu pracy, będziesz musiał sprawdzić, przetestować i debugować generowany przez niego kod tak samo, jakbyś zatrudnił kogoś do napisania podstawowych rutyn dla Ciebie.

Powiązane artykuły

Więcej informacji >>

Odblokuj moc AI dzięki HIX.AI!