Menu
O mnie Kontakt

Programowalny porusza fascynujący temat historii przemysłu włókienniczego i jego wpływu na rozwój technologii komputerowej. Wszystko zaczęło się w 1804 roku, kiedy to Joseph Marie Jacquard wynalazł krosno, które wprowadziło karty perforowane do produkcji tkanin. Dzięki temu proces produkcji stał się automatyczny i bardziej efektywny. To krosno miało znaczący wpływ na tworzenie bardziej skomplikowanych wzorów i wprowadziło zasadę programowalności do przemysłu włókienniczego, co w rezultacie wpłynęło na dalszy rozwój komputerów.

W 1822 roku Charles Babbage, angielski matematyk, zaprojektował maszynę różnicową, a później maszynę analityczną, która uważana jest za pierwszy programowalny komputer. Dzięki pomysłom Babbage'a, wprowadzono koncepcję użycia kart perforowanych do programowania, co nawiązywało do wynalazku Jacquarda. Ada Lovelace, uznawana za pierwszą programistkę, opracowała algorytm do obliczania liczb Bernoulli'ego, co było kluczowym krokiem w rozwoju programowania, a jej nazwisko żyje w języku Ada, stworzonym wiele lat później.

W latach 40. XX wieku powstał pierwszy wysokopoziomowy język programowania Plank and Cool, który, mimo że nie został od razu zaimplementowany, umożliwił dalszy rozwój takich języków jak Fortran. To Fortran, stworzony przez Johna Bacchusa w 1954 roku, szybko stał się standardem w programowaniu, zwłaszcza dla obliczeń naukowych i inżynieryjnych. Programowanie w Fortranie miało wpływ na rozwój teorii kompilatorów, co zwiększyło wydajność i dostępność dla kolejnych pokoleń programistów.

Rok 1956 przyniósł nowe języki takie jak LISP, ALGOL i COBOL, które wprowadziły kolejne innowacje. LISP, chociaż bardziej skomplikowany, dał podstawy wielu nowoczesnym koncepcjom programowania, takim jak dynamiczne typowanie. ALGOL z kolei stał się standardem w dokumentacji algorytmów, a COBOL zyskał uznanie w biznesie dzięki zrozumiałej składni. Lata 60. i 70. to czas, gdy nowe języki jak BASIC i PASCAL zyskały popularność na platformach mikrokomputerowych, co sprawiło, że programowanie stało się bardziej dostępne.

Na dzień pisania tego artykułu, wideo na kanale Programowalny zostało wyświetlone już 10,280 razy i zebrało 267 „lajków”. To dobra liczba, która świadczy o zainteresowaniu tym kluczowym tematem i historią rozwoju programowania. Zachęcamy do dalszego odkrywania treści kanału i ich edukacyjnych wartości, które mogą zainspirować kolejne pokolenia programistów. W najbliższej części autorzy obiecują przybliżyć bardziej współczesne języki programowania i obecne trendy w tej dziedzinie.

Toggle timeline summary

  • 00:00 Wprowadzenie do urządzeń programowalnych w produkcji tekstylnej.
  • 00:08 Krosno Joseph-Marie Jacquarda, opracowane w 1804 roku, uważane jest za pierwsze urządzenie programowalne.
  • 00:15 Przemysł tekstylny wpłynął na rozwój komputerów oraz języków programowania.
  • 00:23 Maszyna Jacquarda uprościła produkcję złożonych tkanin wzorzystych.
  • 00:28 Urządzenie wykorzystywało perforowane karty do automatycznego wyboru włókien.
  • 00:36 Wynalazek umożliwił automatyczne i precyzyjne tworzenie wzorów.
  • 00:42 W 1822 roku Charles Babbage stworzył pierwszy model mechanicznego kalkulatora.
  • 00:50 Urządzenie Babbage'a, znane jako maszyna różnicowa, było zaprojektowane do obliczeń funkcji wielomianowych.
  • 00:57 Projekt został porzucony, ale zainspirował silnik analityczny, uważany za pierwszy ogólnego przeznaczenia programowalny komputer.
  • 01:09 Silnik analityczny Babbage'a miał być napędzany parą i używałby perforowanych kart do wejścia.
  • 01:20 Wyniki miały być drukowane, rysowane lub dziurkowane w kartach.
  • 01:25 Projekt zawierał jednostkę pamięci do przechowywania tysiąca 40-cyfrowych liczb.
  • 01:36 Zawierał również jednostkę obliczeniową zdolną do wykonywania podstawowych operacji arytmetycznych.
  • 01:47 Język programowania dla silnika analitycznego przypominał nowoczesne języki asemblera.
  • 01:55 Ada Lovelace stworzyła pierwszy algorytm dla silnika analitycznego.
  • 02:05 Opublikowała swoją pracę, tłumacząc artykuł o silniku analitycznym.
  • 02:12 Lovelace jest uznawana za pionierkę w dziedzinie programowania.
  • 02:36 Na początku lat 40. XX wieku zaprojektowano Plank i Cool, pierwszy wysokopoziomowy język programowania.
  • 02:52 Plank i Cool wspierały tabele oraz znane wyrażenia warunkowe.
  • 03:03 AutoCode, stworzony w latach 50., był pierwszym kompilowanym językiem programowania.
  • 03:17 Fortran, opracowany w 1954 roku, stał się pierwszym powszechnie używanym wysokopoziomowym językiem programowania.
  • 03:27 Fortran jest nadal znany i używany w obliczeniach wysokowydajnych.
  • 06:04 Common Business-Oriented Language (COBOL) kładł nacisk na czytelność i auto-dokumentację.
  • 06:20 Lata 60. wprowadziły koncepcje języków obiektowych, prowadząc do Simula 67.
  • 07:07 Microsoft spopularyzował BASIC w późnych latach 70., czyniąc go standardem w komputerach domowych.
  • 07:30 Pascal, zaprojektowany dla strukturalnego kodu, był szeroko używany w akademii.
  • 08:15 C, opracowany do programowania systemów UNIX, stał się bardzo popularny.
  • 08:34 Smalltalk stał się pierwszym w pełni obiektowym językiem programowania.
  • 09:37 SQL pojawił się w celu zarządzania relacyjnymi bazami danych pod koniec lat 70.

Transcription

DŻBIK 1. PRZEMYSŁ WŁÓKIENNICZY Za pierwsze urządzenie programowalne uważa się krosno stworzone przez Josepha Marie Chacarda w 1804 roku. Choć może wydawać się to zaskakujące, to właśnie przemysł włókienniczy mógł wpłynąć na rozwój komputerów i języków programowania jakie dzisiaj znamy. Maszyna Chacarda uprościła proces wytwarzania tkanin posiadających skomplikowane wzory. Urządzenie wykorzystywało karty perforowane posiadające kilka rzędów otworów, które umożliwiały automatyczny dobór nici na wrzecionie. Dzięki wynalazkowi tworzenie wzorów stało się automatyczne, powtarzalne i dokładne jak nigdy przedtem. W 1822 roku Charles Babbage, angielski matematyk, stworzył model pierwszego kalkulatora mechanicznego. Urządzenie nazwano maszyną różnicową i służyło do obliczania funkcji wielomianowych wykorzystując metodę różnic skończonych. Ze względu na niewystarczające środki potrzebne do zbudowania maszyny, projekt został porzucony, ale stał się inspiracją do stworzenia maszyny analitycznej, uznawanej za pierwszy programowalny komputer ogólnego zastosowania. Maszyna analityczna miała być urządzeniem napędzanym silnikiem parowym, gdzie dane wejściowe miały być wprowadzane za pomocą kart perforowanych, tak samo jak u Josepha Jacquarda w jego konstrukcji Crosna, natomiast wyniki działania programu miały być drukowane, rysowane lub dziurkowane na kartach. Projekt zakładał, że maszyna analityczna będzie zawierała magazyn pamięci zdolny do pomieszczenia tysiąca liczb pod 40 cyfr, co oznaczało, że potrzebowała kilkanaście kilobajtów pamięci. Urządzenie miało zawierać jednostkę obliczeniową, tak zwany młyn, który byłby zdolny do wykonywania obliczeń dodawania, podejmowania, mnożenia i dzielenia, a także obliczania pierwiastków kwadratowych. Język programowania używany w maszynie analitycznej był podobny do współczesnych języków Assemblera i zakładał używanie pętli czy instrukcji warunkowych. Maszyna analityczna Charlesa Babbage'a stała pierwszym urządzeniem, do którego napisano program komputerowy i choć dominującą większością matematyków w tamtych czasach stanowili mężczyźni, to właśnie kobieta opracowała algorytm do obliczania liczb Bernoulli'ego, przy okazji tłumaczenia artykułu o maszynie analitycznej. Pracę tą opublikowała Ada Lovelace, brytyjska matematyczka i poetka. I choć wielu historyków informatyki uważa, że autorem pierwszych programów na swoje urządzenie był Charles Babbage, a Ada korzystając ze znajomości z Charlesem tylko użyła jego pomysłów, to Brytyjka już na zawsze stała się ikoną słowa programowanie, a blisko 130 lat po jej śmierci, jeden z języków wysokiego poziomu został nazwany Ada. Na początku lat 40 XX wieku został zaprojektowany język Plank and Cool, był to pierwszy język wysokiego poziomu. Choć syntaks języka nie przypomina współczesnych zapisów, to wspierał on tablice czy tuple oraz wykorzystywał znane nam wyrażenia warunkowe i pętle. Plank and Cool jednak nie został od razu zaimplementowany, co pozwoliło zaistnieć językowi shortcode, który jako pierwszy język wysokiego poziomu został użyty na urządzeniu elektronicznym. Kolejnym przełomem z lat 50 było stworzenie języka AutoCode, uważanego za pierwszy język kompilowany, czyli taki którego kod jest zamieniany do postaci binarnej. Razem ze swoim kompilatorem język został zaprojektowany na komputery Mark I. W 1954 roku w siedzibie firmy IBM, John Bacchus stworzył Fortrana, pierwszy szeroko używany język wysokiego poziomu. Choć został wymyślony on ponad pół wieku temu, to niemal każdy programista kojarzy jego nazwę i nadal używany jest przez wysokowydajne komputery. Autor języka w jednym ze swoich wywiadów powiedział, że powstał on z lenistwa. Nie chciał mu się pisać instrukcji ręcznie, więc opracował język, który ułatwił mu pracę. W latach 60. język się mocno rozwinął, a jego popularność sprawiła, że producenci komputerów zaczęli dostarczać kompilatory języka, co wpłynęło na jego wydajność i globalny rozwój teorii kompilatorów. Ciekawostką języka było wyrażenie warunkowe IF. Instrukcja przekazywała kontrolę do pierwszej, drugiej lub trzeciej etykiety, jeśli wartość wyrażenia arytmetycznego jest odpowiednia mniejsza od 0, równa 0 lub większa od 0. Przed opracowaniem dysków, edytorów tekstowych czy nawet terminali, programy były tworzone przy pomocy klawiatury numerycznej na 80-kolumnowej karcie perforowanej. Jedna linia na kartę. Powstała talia kart była wprowadzona do czytnika w celu skombinowania. Odzwierciedlając praktykę wprowadzania kart perforowanych, programy w języku Fortran zostały pierwotnie napisane w formacie o stałej długości kolumny. Uprogramowanie dla sąd NASA Voyager 1 i Voyager 2 zostały napisane właśnie w Fortranie. W końcówce lat 50-tych powstały takie języki jak LISP, ALGOL czy COBOL, które są nadal w użyciu w wielu systemach, także tych mocno komercyjnych. LISP powstał w oparciu o rachunek Lambda stworzony przez Alonso Charcha. Podstawową strukturą danych w LISP są listy, stąd powstała jego nazwa – od słów LISPROCESSING. LISP miał duży wpływ na późniejsze języki programowania. Zapoczątkował takie konstrukcje jak IF-THEN-ELSE, dynamiczne typowanie czy zbieranie nieużytków. Od początku był mocno związany ze społecznością zajmującą się sztuczną inteligencją i nie osiągnął tak dużej popularności jak Fortran czy Sea ze względu na swoje wymagania sprzętowe. Powstało również wiele jego dialektów. Dziś do najpopularniejszych należą Common LISP, Scheme i Clojure. ALGOL to skrót od Algorithmic Language. Przez 20 lat od swojego powstania był standardem opisu algorytmów w publikacjach naukowych i podręcznikach. Jego początkowa wersja zaprojektowana w 1958 roku oparta była na Fortranie i dopiero wersja stworzona dwa lata później zyskała uznanie i wprowadziła brakujące konstrukcje. ALGOL wprowadził bloki kodu z wyrażeniami BEGIN i END na ich granicach, rekurencje czy tablice dynamiczne. COBOL, czyli Common Business Oriented Language, opiera swoją składnię na języku angielskim, tak aby jego zapis był bardzo czytelny, a kod samodokumentujący się. Język ten wykorzystuje 300 zarezerwowanych wyrazów właśnie przez częste wykorzystanie słów kluczowych zamiast wyrażeń matematycznych. Kolejne dwie dekady przyniosły wysyp nowych języków programowania, których implementacje stanowią podstawę paradigmatów współczesnego kodowania. W latach 60. zrodził się pomysł pierwszego obiektowego języka, czyli Simuli 67. Język został zapoczątkowany jako Simula 1, wykorzystując syntaks Angola, jednak po pięciu latach zostały wprowadzone także pojęcia obiektów, klas, podklas czy dziedziczenia. W Simuli nie była uwzględniana jednak koncepcja hermatyzacji. W roku 1964 powstał BASIC, język wysokiego poziomu oparty na Fortranie Angolu. Gwałtowny rozwój BASIC-a związany był z wprowadzeniem pierwszych mikrokomputerów. Pierwsza wersja dialektu BASIC-a została napisana na komputery Altair, przez Bea Gatesa i Paula Allena dla ich nowo powstałej firmy Microsoft. Na przemowie lat 70. i 80. MS BASIC był już standardem i praktycznie każdy domowy komputer zawierał go w pamięci ROM. Wersje języka BASIC były zaimplementowane na komputerach Commodore, Apple II, a później także na IBM PC, co sprawiło, że język BASIC stał się często pierwszym poznawanym językiem programowania przez deweloperów spoza kadry naukowej. W 1970 roku prekursor inżynierii programowania i ikona świata komputerów Nicholas Wirth zaprezentował swój język PASCAL. Język wzorował się na Angolu i przeznaczony był do tworzenia strukturalnego kodu. PASCAL pozwalał na budowanie złożonych typów danych oraz dynamiczne budowanie list, drzew czy grafów. Był bardzo rozpowszechniony w środowiskach akademickich. Służył najczęściej jako język do nauki programowania. Był szeroko używany także przez polskie uniwersytety. Język był prosty, łatwo było wytłumaczyć podstawowe pojęcia programistyczne, a do tego kompilatory języka były łatwo dostępne w swoich pirackich wersjach. Jego obiektowa wersja Object PASCAL powstała w 1975 roku, ale język został wyparty przez C, a później C++. Dwa lata później swoją premierę miał język C, który powstał w celu przepisania jądra systemu UNIX na język wysokiego poziomu. C został stworzony jako język z niskopoziomowym dostępem do pamięci komputera i z efektywnym mapowaniem na instrukcje maszynowe. Do dziś jest jednym z najpopularniejszych języków na świecie. W tym samym roku został zaprezentowany język Smalltalk. Był to pierwszy w pełni obiektowy język programowania inspirowany językiem Simula. Smalltalk działał na maszynie wirtualnej, przez co był niezależny od platformy. W języku wszystko było obiektem, a komunikowały się one tylko poprzez przesyłanie wiadomości. Smalltalk był reflektywnym językiem. Refleksje wykorzystywał do rozszerzania kodu nowe klasy i metody w trakcie działania programu, a także do sprawdzania obiektu nadającego komunikat czy obsługi wyjątków. Był też pionierem implementacji wzorca MVC czy rozwinięcia koncepcji kompilatora Just-In-Time. Trzeba przyznać, że Smalltalk dostarczył całkiem sporo elementów współczesnych języków nieproporcjonalnie do swojej popularności. Lata 70. to także wiele innych ciekawych języków jak Prolog, pierwszy i najpopularniejszy język programowania logicznego, czyli taki, w którym na podstawie zależności obliczane były pewne stwierdzenia, szeroko stosowane w sztucznej inteligencji czy lingwistyce komputerowej. Kolejny był ML, statycznie typowany język funkcyjny, wprowadzający np. polimorfiz parametryczny. Pod koniec lat 70. ukazał się SQL, czy też sequel jak niektórzy wymawiają jego nazwę, język służący do projektowania i zarządzania relacyjnymi bazami danych. W kolejnej części zobaczymy jak powstawały nieco bardziej współczesne języki i zastanowimy się jaka będzie ich przyszłość.