Pierwsze języki programowania
Pierwszym programistą była kobieta ?🙂 Jeśli uznać za pierwszy kod, program napisany do maszyny analitycznej - to tak❤️ Maszyna stworzona przez Charles Babbage, była mechanicznym archekomputerem. Sam Babbage jednak nie zdołał zakończyć prac nad swym wynalazkiem. To Ada Lovelace opisała tę nieprawdopodobną maszynę, po czym stworzyła dla niej program, który obliczał liczby Bernoulliego. No to nieźle😉
Pierwsze języki programowania były zwykle językami maszynowymi lub symbolicznymi reprezentacjami instrukcji maszynowych. Od czasów Ady Lovelace wiele się zmieniło. Dziś zapraszamy troszkę do takiej podróży sentymentalnej do korzeni programowania. Jak wyglądały pierwsze języki programowania i jak przybliżały Nas do coraz lepszego i szybszego kodowania.
Oto krótka historia:
ENIAC na tle ważnych wydarzeń historycznych.
Choć dziś programuje się komputery w systemie binarnym, to najstarszy komputer, za który uznaje się ENIAC, posługiwał się na początku systemem dziesiętnym. Jednak, w czasie prac zrozumiano, że system dwójkowy, jest bardziej efektywny dla operacji logicznych i przechowywania danych. Programowanie tego komputera, wtedy uznawane za jego konfigurowanie, było skomplikowanym procesem i wymagało zatrudnienia bardzo wielu osób. ENIAC był bowiem programowany za pomocą przewodów i przełączników, co było uciążliwe i czasochłonne. W 1945 roku armia amerykańska zatrudniła 6 kobiet-matematyczek (które do tej pory pracowały przy wyliczeniach trajektorii bomb) nad tajnym projektem rządowym, którym właśnie było programowanie ENIAC. Po roku ich trudy przyniosły niespotykane jak dotąd efekty. ENIAC, zamiast wykonywać pięć funkcji (w tym przypadku było to dodawanie) na sekundę, wykonywał 20 000! WOW. I to był wynik możliwy do osiągnięcia przez każdy z 20 generatorów (ang. accumulators), którymi dysponował ENIAC. Był on też maszyną niezwykle wszechstronną. Początkowo miał służyć do przewidywania pogody. Jednak jego uniwersalna architektura sprawiała, że został wykorzystany do prac związanych m.in z projektowaniem i testowaniem broni jądrowej.
Jak to wszystko ułatwić?
Duży przełom w pisaniu kodów przyniósł Asembler. W 1948 J.M. Hill i Maurice Wilkes opracowali pierwszy asembler dla komputera EDSAC. Był to zestaw makroinstrukcji, które tłumaczono na instrukcje maszynowe. Czyli zmieniono polecenia z naszego na maszynowe, czyt. staliśmy się bardziej "zrozumiali" dla maszyn". Dwa lata później, Alick Glennie, również pracujący przy projekcie EDSAC, opracował język asemblera, który nazywał się "SOAP" (Symbolic Optimal Assembly Program) i był pierwszym językiem asemblera w historii. Kolejne dwa lata później, w 1952 r., IBM stworzyło pierwszy asembler dla komputera IBM 701. W tym czasie równie duży przełom w tej materii przyniósł też rozwój komputera UNIVAC II. Wynalazki i pomysły przełomu lat 40tych i 50 tych dały początek swego typu standaryzacji i upowszechnieniu asemblera.
Ah ten FORTRAN.
U podstaw powstania FORTRANA jest stworzenie języka, który miałby formę bardziej zrozumiałą dla ludzi, opartą na matematycznych formułach i równaniach. Prace nad nim rozpoczęły się w roku 1954 i po trzech latach powstała pierwsza wersja Fortranu (Fortran I). Warto się tu zatrzymać bo ten rok uznaje się za rok powstania pierwszego języka wysokiego poziomu. Już trzy lata później, w marcu 1957, wydano książkę pt.: "The FORTRAN Automatic Coding System for the IBM 704" autorstwa Johna Backusa i innych członków zespołu IBM. Była to ważna publikacja, która dokumentowała zasady i sposób korzystania z języka Fortran. Oczywiście historia FORTRANA nie kończy się na '58 roku😄 Tutaj zależało Nam na pokazaniu jego wpływu na historię języków programowania.
Co było dalej?
Wydaje, że rok '58 i '59 były momentem zwrotnym w historii języków programowania (lub co najmniej bardzo ważnym😉 ). Na ten rok przypadają bowiem jeszcze trzy ważne wydarzenia. W 1958 powstaje LIPS i ALGOL, a rok później COBOL.
Każdy z nich wprowadził jakiś przełom.
LISP
W 1958 John McCarthy przedstawił koncepcję języka, który byłby zdolny do manipulowania symbolicznymi wyrażeniami. Wprowadził również podstawowe operacje na listach, takie jak CAR i CDR. Tak powstał LISP. Następnie przyszedł czas na wprowadzenie pojęcia lambda-kalkulu, który pozwalał na formalne wdrażanie operacji na funkcjach i wyrażeniach. W tym samym czasie McCarthy wprowadził też funkcję "eval".
ALGOL
Język ten powstał jako wypadkowa międzynarodowego spotkania matematyków. Matematycy powołali specjalny komitet. Jego cel? Oczywiście, opracowanie nowego języka programowania. W roku 1959 została opublikowana pierwsza wersja standardu ALGOL 60. Język ten miał być używany w naukowych i inżynieryjnych obliczeniach. Wprowadzał liczne innowacje, takie jak: bloki kodu, rekordy, procedury, operatory arytmetyczne, warunkowe i iteracyjne struktury kontrolne i dawał możliwość definiowania własnych typów danych.
COBOL
I znów prawdziwe okazało się stwierdzenie, że potrzeba jest matką wynalazków. Doniesienia z tamtych lat mówią, że programistka Burroughs Corporation - Mary Hawes, w marcu 1959, wezwała użytkowników i producentów komputerów do stworzenia nowego języka komputerowego, który miałby działać na komputerach różnych producentów. Uznała także, że program ten powinien robić zadania księgowe, takie jak obliczanie płac, zapisy kredytów i obciążeń czy kontrola zapasów. I tak COBOL został zaprojektowany przez członków CODASYL. Tutaj swój znaczący wkład miała Grace Hopper. Przez lata związana z marynarką wojenna, w 1949 roku zaczęła pracę dla sektora prywatnego. W 1952 r. Hopper wraz ze swym zespołem stworzyła pierwszy w historii kompilator komputerowy. Stał się on tak naprawdę podwaliną dla języka programowania COBOL (common business oriented language). Grece jest do dziś nazywana - "Babcią COBOL'a'". Sam COBOL był to język wysokiego poziomu, przyjazny dla użytkownika, a jego kod mógł być wielokrotnie wykorzystywany.
Tutaj na razie postawimy kropkę. Te 15 lat historii języków programowania pokazuje, jak zdeterminowani byli badacze i programiści tamtych czasów. Jak potrafili kreować nowe programy, które miały się stawać jeszcze doskonalszymi narzędziami. Niektóre ich pomysły wyprzedzały epokę. Imponujący jest także fakt, jak różne grupy i organizacje umiały ze sobą współpracować, a nie tylko konkurować😉 . Niezaprzeczalnie, te kilkanaście lat na przełomie lat 40tych i 50tych dało podwaliny do spektakularnego rozwoju naszej dziedziny. W następnych latach było już tylko ciekawiej😄
Będziemy z pewnością jeszcze o tym pisać na naszym blogu.