03 декабря 2020

Historia komputerów - wprowadzenie

Ten obraz Wieży Babel Wieży Komputerowej zdobił okładkę książki Gene Sammit's Programming Languages, która zawierała przegląd wielu niezgodnych języków komputerowych, które istniały w czasie publikacji książki (1969). Dla pokolenia informatyków ilustracja ta symbolizowała nieskuteczność utrzymywania wielu języków, z których każdy wymaga własnego tłumacza i specjalnie przeszkolonych programistów.

We wczesnych latach sześćdziesiątych świat języków komputerowych wydawał się bardzo prosty. Programowanie zdominowane przez trzy języki: Fortran i Cobol opanowały amerykańską naukę i biznes, Algol-60 był szeroko rozpowszechniony w Europie.

Najnowszy język PL / I twierdził, że jest, łącząc najlepsze cechy tych trzech języków, aby stać się uniwersalnym narzędziem językowym. Ale przy pozornym spokoju trwała ciężka praca. W uczelniach i laboratoriach badawczych firm, w pracy indywidualnych badaczy i dyskusjach w autorytatywnych komitetach, narodziły się nowe języki programowania nowoczesnych komputerów.

Pod koniec lat sześćdziesiątych XX wieku języki mnożyły się w takim tempie, że, jak powiedział pewien informatyk, programista „musiał znać co najmniej tuzin języków, aby zdobyć uznanie opinii publicznej”.

Niektórzy programiści próbowali stworzyć zupełnie nowe języki, które ułatwiają rozwiązywanie specjalnych problemów. Również programiści nieustannie modyfikowali kompilatory dla istniejących języków, ulepszając je, a tym samym zmieniając zestaw formalnych reguł języka zdefiniowanego przez programistę.

W rezultacie pojawiło się wiele wariantów języków, zwanych podzbiorami, rozszerzeniami i dialektami. Podzbiór to wersja języka zawierająca tylko podzbiór możliwości całego języka. Rozszerzenie - wersja rozszerzona, uzupełniona o nowe funkcje zwiększające wszechstronność języka. Dialekty zawierają drobne zmiany, które pomagają dostroić język do określonej aplikacji lub podkreślają mocne strony konkretnego komputera. Dialekty są niezgodne zarówno z językiem oryginalnym, jak iz innymi dialektami tego samego języka; program napisany w jednym dialekcie nie może być przetłumaczony przez kompilator przeznaczony dla innego dialektu.

Ta absurdalna sytuacja miała miejsce w 1969 r., Kiedy Gene Sammitt opublikował Języki programowania, pierwszy historyczny przegląd porównawczy postępów w tej dziedzinie.

Na obwolucie i wyklejce znajdowała się niedbale skonstruowana wieża wznosząca się spiralnie w niebo, na której widniały nazwy 117 różnych języków. Na samym szczycie wieży, jakby zwieńczeniem wszystkiego innego, napisano BABEL (Babilon jest symbolem pomieszania języków).

Jednak budynek ten był postrzegany jako pomnik twórczej mocy nowego kierunku naukowego. Programiści nie pisali nowych języków tylko po to, by wyrażać siebie - komputery szybko penetrowały nowe obszary, a programiści musieli dostosowywać do nich języki.

Obecnie co najmniej połowa wszystkich języków programowania nadal służy w określonej dziedzinie, czy to technologii, czy grafiki komputerowej. W przeciwieństwie do Fortranu i innych uniwersalnych języków programowania (które, chociaż zostały stworzone do rozwiązywania pewnego rodzaju problemów, w rzeczywistości okazały się mieć zastosowanie do prawie każdego problemu), języki specjalistyczne są nieodpowiednie poza określonym wąskim obszarem.

Stworzono wiele innych języków specjalistycznych do tworzenia oprogramowania wykorzystywanego w różnych dziedzinach: inżynierii lądowej, badaniach socjologicznych, kompozycji muzycznej, edycji tekstu i produkcji filmowej.

Z kolei niektóre z tych języków dały początek nowym. Na przykład w latach sześćdziesiątych XX wieku powstały dwa języki, film i skaner, co przyczyniło się do wprowadzenia komputera do animacji. Z tej pary powstał system BUGSYS (system Bug System „beetle”), który umożliwiał poruszanie się po ekranie komputera figurami podobnymi do chrząszczy.

W zależności od polecenia „błąd” mógł zmieniać jasność elementu obrazu (piksela), na którym się znajdował, lub oznaczać obszar ekranu. Takie właściwości sprawiły, że BUGSYS stał się niezastąpiony w programach badawczych, w szczególności w analizie mikrografii włókien nerwowych.

W niektórych przypadkach języki pierwotnie przeznaczone do określonych zadań w rzeczywistości znalazły szerokie zastosowanie, zyskując status uniwersalny.

Najbardziej godne uwagi przykłady tego obserwujemy w dziedzinie sztucznej inteligencji (AI), gałęzi informatyki, której celem jest tworzenie programów naśladujących zdolność człowieka do uczenia się i myślenia.

Od lat pięćdziesiątych XX wieku specjaliści od sztucznej inteligencji szukali języka odpowiedniego do manipulowania pojęciami, wyrażanymi słowami i frazami w języku naturalnym. Pierwszym wynikiem tych poszukiwań była rodzina języków zwana IPL (IPL, od ang. Information Processing Language). Został stworzony przez pioniera sztucznej inteligencji Allena Newella i jego współpracowników.

Prace rozpoczęto w Rand Corporation, a następnie w Carnegie Institute of Technology (później Carnegie Mellon) w Pittsburghu, bastionie badań nad sztuczną inteligencją.

Główną ideą IPL było pojęcie listy. Przedstawiając dane jako listę słów i innych symboli, programista może łączyć pojęcia w pamięci komputera w taki sam sposób, w jaki eksperci sztucznej inteligencji uważają, że ludzki mózg jest zorganizowany.

John McCarthy zaproponował w 1959 r. Koncepcję współdzielenia czasu, która umożliwiała niemal jednoczesną obsługę jednego potężnego komputera dużej liczbie użytkowników pracujących przy terminalu, eliminując konieczność czekania, aż ich programy będą przetwarzane jeden po drugim.

Dzięki wytrwałości McCarthy'ego na MIT rozpoczęto szereg projektów z podziałem czasu, a kilka lat później dwóch profesorów z Dartmouth, John Kemeny i Thomas Kurtz, pożyczyło pomysł na ich wprowadzający kurs informatyczny.

W przyszłości, aby uczyć początków programowania w nowym systemie podziału czasu, Kemeny i Kurtz napisali prosty, łatwy do nauczenia język wzorowany na Fortranie.

Nazwali go BASIC (od uniwersalnego symbolicznego kodu instrukcji dla początkujących). BASIC (bogaty w dialekty) miał zdobyć niesamowitą popularność i stać się głównym językiem rewolucji mikrokomputerowej, która rozpoczęła się w roku. 70s.