O narodzinach współczesnych języków programowania

28.08.2017 AUTOR: Radek Borzym

Koncept stworzenia języka, za pomocą którego można programować maszyny, nie jest bynajmniej pomysłem XX-wiecznym. Już w XVII wieku Leibniz spekulował o możliwości powstania perfekcyjnego języka idei, w którym w odróżnieniu od powszechnego języka ludzi, nie można by było stosować erystyki w celu ukrycia prawdy. W XIX wieku Ada Lovelace napisała pierwszy program komputerowy dla istniejącej wtedy tylko teoretycznie Maszyny Analitycznej.

Początki programowania

Pierwsze komputery powstały we wczesnych latach 40-tych XX wieku. Trwała wtedy II Wojna Światowa i maszyny te wykorzystywane były w celu poprawiania skuteczności działań militarnych. Dobrym przykładem może być tutaj Projekt Manhattan, który wykorzystywał komputer w celu modelowania skutków użycia broni atomowej.

Komputery w tym czasie korzystały z języka maszynowego, którego składnia była zbieżna niemalże 1:1 do sposobu w jaki urządzenie rozumiało komendy na poziomie mechanicznym. Komputery nie potrzebowały interpretować kodu, który otrzymywały, ponieważ działał on bezpośrednio na poziomie procesora.

Tego typu języki, zwane językami niskiego poziomu, były niezwykle trudne do nauki. Ich działanie zależne było od architektury komputera na którym się znajdowały, więc każde urządzenie w tym czasie posiadało swój odrębny język. Zaletami języka maszynowego było to, że można było z niego korzystać na komputerach, które posiadały małą ilość pamięci, co było niezwykle ważne w początkowych latach rozwoju technologii informacyjnej.

W 1947 roku Kathleen Booth pracując dla londyńskiego uniwersytetu Birkbeck, tworzy język assemblera. Wprowadził on pewną dozę abstrakcji, dzięki której pisanie kodu było łatwiejsze. Assembler zanim był interpretowany przez procesor, przechodził proces tłumaczenia na język maszynowy. Co prawda korzystanie z niego wymagało więcej pamięci operacyjnej, ale za to był on lepiej zrozumiały dla ludzi niż język maszynowy, co usprawniało proces pisania programów.

Dodatkowym problemem, z którym musieli się mierzyć pierwsi programiści był fakt, że język maszynowy wymagał ręcznego manipulowania komponentami maszyny, co znacząco wydłużało czas potrzebny na przeprowadzenie obliczeń.

Na rozwiązanie tego problemu wpadł Von Neumann. Jego komputer nie traktował kodu jako serii następujących po sobie kroków(jak robiły to to wcześniejsze komputery), ale jako bloki, które mogły być swobodnie przestawianie i używanie wielokrotnie. Tego typu budowa dała początek powstaniu języków programowania wysokiego poziomu.

Języki te stanowią pewną abstrakcję kodu maszynowego. Część procesów zostaje zautomatyzowana i ukryta przed użytkownikiem. Przykładem może być tutaj zarządzanie pamięcią. Język wykorzystywany do tworzenia programów jest lepiej zrozumiały dla człowieka, szybciej można się go nauczyć i łatwiej pisze się na nim kod.

Wadą języków wysokiego poziomu, która doskwierała głównie we wczesnych latach technologii IT, było to, że potrzebowały one więcej pamięci operacyjnej na tłumaczenie kodu na język maszynowy. Z kolei programy nimi napisane można było odpalić na różnorodnych maszynach, co dawało im znaczną przewagę nad swoimi prekursorami.

Jeżeli już w latach 40-tych powstał pierwszy język programowania wysokiego poziomu, którego autorem był Konrad Zuse, to jednak nie został on zaimplementowany do żadnego z ówczesnych komputerów.

Programowanie wysokiego poziomu zyskuje popularność

W 1949 powstaje Short Code. Był to pierwszy język programowania wysokiego poziomu, który  wszedł do użytku. Jego autorem był John Maulchy. Mimo tego, że komputer potrzebował około 50 razy więcej czasu na dokonanie interpretacji napisanego za pomocą tego języka programu niż potrzebowałby go na zrozumienie kodu stworzonego przy pomocy języka maszynowego, to Short Code w sposób znaczący usprawnił pracę pierwszych programistów. Z samej nazwy programu można wyczytać radość jaką czuł jego twórca na myśl, że będzie miał lżejsza pracę.

Wadą Short Code było to, że podobnie jak we wcześniejszych językach maszynowych, programista musiał ręcznie zamieniać napisany przez siebie kod na system binarny. Dopiero w 1951 roku powstaje kompilator A-o System, który samodzielnie tłumaczył kod napisany przez człowieka na system binarny, a potem na język maszynowy. Ten wynalazek, którego autorką była Grace Hopper, otworzył drogę do szybkiego rozwoju i upowszechniania się języków programowania wysokiego poziomu.

John Backus tworzy dla IBM w 1954 roku język wysokiego poziomu o nazwie FORTRAN. 3 lata później zostaje on udostępniony dla celów komercyjnych. Staje się on pierwszym językiem wysokiego poziomu, który zdobywa dużą popularność. Wiele z jego funkcji na zawsze wchodzi do kanonów programowania i jest dziedziczona przez następne języki, jak np. logiczne typy danych.

FORTRAN zmniejszył dwudziestokrotnie przeciętną liczbę linii kodu potrzebnych do napisania programu. Ciężko było zaprzeczyć sprawności nowego języka, co przyczyniło się do jego popularyzacji oraz odchodzenia od stosowania języka maszynowego. Co ciekawe FORTRAN do dziś jest wykorzystywany w środowiskach naukowych. Przez dziesięciolecia wiele programów wspomagających pracę badaczy było napisanych w tym języku i do tej pory nie wyszły one z użycia. Wiele współczesnych superkomputerów także korzysta z tego FORTANu, zwłaszcza te wykonujące najbardziej zasobożerne operacje.

Jak widać, FORTRAN był przystosowany do potrzeb naukowców. Nadal jednak nie był na tyle prosty, żeby osoby spoza środowiska badaczy mogły szybko się go nauczyć. Dlatego też powstaje COBOL. Głównym celem przyświecającym wszystkim decyzjom podjętym podczas jego projektowania było uczynienie go bardziej przyjaznym dla laików. Kod napisany w tym języku był czytelniejszy od kodów napisanych w starszych językach, poza tym jego struktura zaprojektowana była tak, by maksymalnie przypominać język angielski.

Programowanie upowszechnia się

COBOL jest już gotowy w 1959 roku. Tak jak przewidzieli jego autorzy, szybko zdobywa on popularność w rozwijającym się wtedy środowisku biznesowym ludzi korzystających z pierwszych komputerów w celach komercyjnych.

5 lat później powstaje kolejny język adresowany do osób nieposiadających dogłębnej wiedzy z dziedziny matematyki: BASIC. Grupą docelową dla BASICa byli studenci tworzący programy na ówczesne komputery akademickie. Z czasem język ten stał się popularny wśród hobbistów. Wielu studentów programistki w latach 70-tych samodzielnie nauczyło się tego języka przed podjęciem oficjalnej nauki.  

W 1958 roku powstaje Algol. Jest on dziadkiem C, Javy, Pascala czy innych współczesne wykorzystywanych języków programowania. Algol posiadał wiele nowatorskich rozwiązań, jak np. dzielenie kodu na osobne bloki. Mimo nowatorstwa, Algol był niewygodny w użytkowaniu, zwłaszcza w późniejszych wersjach i szybko traci on na popularności na rzecz Pascala.

Pascal powstaje 1969 roku. Jego autorem jest Niklaus Wirth, który tworzy go z myślą o swoich studentach. Pascal miał w zamyśle być łatwy do nauki i posiadać dobre narzędzie debugujące. Niklaus wzorował się na istniejących w tym czasie językach, z każdego pożyczając jego dobre strony i ignorując wady. Nic dziwnego w tym, że Pascal łatwo zyskał popularność.  

Pomiędzy rokiem 1969, a 1973 powstawał język C. Jego autorami są Dennis Ritchie oraz Ken Thompson. Wraz z kolegami tworzą w nim system operacyjny Unix, który staje się pierwszym systemem operacyjnym stworzonym w języku wysokiego poziomu. C wraz z Unixem podbijają ówczesny świat. C szybko zaczął odbierać Pascalowi jego zwolenników i stał się  jednym z najpopularniejszych języków programowania w historii.  

Popularność doprowadziła do powstania licznych wersji języka C, przykładem tutaj może być C++, który został stworzony jako próba zaadaptowania funkcjonalności C w celu ich wykorzystania do programowania obiektywnego.

W 1983 roku Fred Cohen prezentuje napisany przez siebie wirus komputerowy. Wirus powstał w celach edukacyjnych. Cohen dzięki niemu udowodnia, że cyberbezpieczeństwo jest poważnym problemem. Program przejął kontrolę nad zainfekowanym komputerem w pół godziny.

W 1991 roku powstaje Python, którego nazwa wywodzi się od grupy Monty Python. Język ten ma na celu usprawnienie procesu tworzenia programów poprzez zmniejszenie liczby potrzebnych linijek kodu.

W pierwszej połowie lat 90-tych Internet zaczyna zyskiwać na popularności. Wraz ze zwiększającą się liczbą jego użytkowników, zaczyna występować zapotrzebowanie na atrakcyjnie wyglądające i szybko działające strony. W jakim języku powinno się je stworzyć? Odpowiedzią na powstałe zapotrzebowanie staje się Java, która początkowo miała być wykorzystywana do programowania interaktywnej telewizji. Siłą tego języka jest to, że napisany w nim program da się uruchomić na każdym urządzeniu wspierającym Javę.

Do podobnej funkcji został zaadaptowany powstały w 1995 roku język PHP. Znalazł on swoją niszę w programowaniu stron internetowych po stronie serwera.

W XXI wieku powstało wiele nowych języków programowania takich jak C#, Swift czy Go. Bazują one na dokonaniach swoich poprzedników, rozwijając te ich aspekty, które przypadły do gustu ich twórcom, jednocześnie porzucając te, które ich frustrowały.

Podsumowanie

W początkowym okresie głównym zmartwieniem twórców nowych języków programowania było to, czy język będzie w stanie spełniać powierzone mu zadania pomimo ograniczeń technologicznych. Stworzone w ten sposób języki były ulepszanie w celu zwiększenia łatwości ich użytkowania,  po to żeby nie tylko zawodowi matematycy byli w stanie pisać przy ich pomocy programy komputerowe.

Pierwsze języki potrafiły wykonać niewielką ilość funkcji i bezpośrednio opisywały sposób w jaki komputer czytał kod. Bardziej współczesne języki, starają się być uniwersalne i abstrakcyjne. Brak ograniczeń takich jak ilość dostępnej pamięci, pozwala na uproszczenie składni poprzez ukrywanie wielu czynności w tle.

Wszystko to sprawiło, że dzisiejsze języki programowania mogą być wykorzystywane do olbrzymiej liczby czynności i tylko wyobraźnia i czas ograniczają możliwości programistów.

Coders Lab

Łącząc doświadczenie edukacyjne ze znajomością rynku pracy IT, Coders Lab umożliwia szybkie i efektywne zdobycie pożądanych kompetencji związanych z nowymi technologiami. Skupia się się na przekazywaniu praktycznych umiejętności, które w pierwszej kolejności są przydatne u pracodawców.

Wszystkie kursy odbywają się na bazie autorskich materiałów, takich samych niezależnie od miejsca kursu. Dzięki dbałości o jakość kursów oraz uczestnictwie w programie Career Lab, 82% z absolwentów znajduje zatrudnienie w nowym zawodzie w ciągu 3 miesięcy od zakończenia kursu.


CONNECTIS_

+48 22 222 5000
[email protected]

Złota 59
00-120 Warszawa

CONNECTIS_ jest spółką technologiczną świadczącą usługi z zakresu outsourcingu specjalistów, zespołów projektowych oraz procesów IT.


CONNECTIS_
łączy wyjątkowe doświadczenie, kompleksową znajomość branży oraz kompetencje specjalistów z klientami, aby pomóc im usprawniać projekty informatyczne i zwiększać wydajność procesów biznesowych.

Współpracujemy na szeroką skalę z liderami branżowymi w całej Europie z sektora m.in. finansowego, IT, konsultingowego, ubezpieczeniowego, energetycznego oraz telekomunikacyjnego. Codziennie wspieramy ich ponad 350 specjalistami w strategicznych projektach informatycznych.

 

 

Do góry!

Polecane artykuły

22.09.2020

Comarch e-Sale, jako e-commerce na dobry ...