31

Historia i rozwój języków programowania

Embed Size (px)

DESCRIPTION

Historia i rozwój języków programowania. - PowerPoint PPT Presentation

Citation preview

Page 1: Historia  i rozwój języków programowania
Page 2: Historia  i rozwój języków programowania

Historia języków programowania rozpoczyna się w epoce taśm perforowanych i komputera Eniac. Jednak w tym opracowaniu analiza tego zagadnienia oparta będzie o języki programowania używane na komputerach osobistych. Wśród nich najstarszym językiem programowania jest Fortran. Język ten był wielokrotnie udoskonalany, stąd jego wersje: Fortran II, Fortran IV, Fortran 77 i ostatnio Fortran 90. Jest on do dziś niezwykle popularny wśród fizyków. Jednocześnie jest językiem wyjątkowo źle skonstruowanym. Za językiem Fortran przemawia olbrzymia ilość gotowych procedur numerycznych - w tym języku programy są pisane już od ponad 30 lat . Określająca go norma ANSI 3.9 powstała w 1966 roku. Przekonanie o jego szczególnej przydatności w rozwiązywaniu problemów numerycznych wynika z istnienia bardzo dobrych kompilatorów tego języka. Komplementarnym do Fortranu miał być Basic - prosty język do nauki programowania. Basic został zastosowany w pierwszych komputerach domowych, takich jak Spectrum czy Commodore C64, jako podstawowy środek porozumiewania się z maszyną. Odmiana Visual Basic jest lansowana przez firmę Microsoft jako łatwy i szybki sposób na tworzenie aplikacji w systemie operacyjnym tej firmy. Z założenia Basic był językiem nieefektywnym w obliczeniach, lecz znacznie wygodniejszym dla programistów, zwłaszcza początkujących. Fortran miał służyć do poważnych obliczeń - Basic to pisania krótkich, klikunastolinijkowych, programików. Pierwszym językiem o solidnych podstawach teoretycznych miał być Algol. Algol się jednak nie przyjął, chociaż właśnie od niego wywodzi się większość współczesnych języków programowania.

Page 3: Historia  i rozwój języków programowania

Język Pascal został stworzony jako język dydaktyczny, gdyż Basic nie pozwalał na programowanie strukturalne i łatwe operowanie na dynamicznych strukturach . W praktyce stał się językiem do wszystkiego i do dzisiaj jest jednym z najbardziej lubianych, choć ma wiele ograniczeń tylko po to, aby początkujący programista uniknął pewnych typowych błędów.

Programowanie strukturalne, które zrewolucjonizowało tworzenie oprogramowania, opiera się na bardzo prostej zasadzie: dziel i rządź. Duży problem rozbija się na kilka mniejszych. Te rozbija się na jeszcze mniejsze. I tak dalej. Zaletą programowania strukturalnego jest możliwość tworzenia programu zespołowo: każdy konkretny programista dostaje pewną część zadania do rozwiązania. Standardowy język Pascal nie wspiera jednak programowania obiektowego. Istnieją różne dialekty, w tym obiektowo zorientowane, ale są one nieprzenośne. W praktyce oznacza to, że np. ucząc się Delphi, wiążemy się z jedną firmą i jednym typem komputera. Tym samym jest prawdopodobne, że napisany przez nas program nie będzie poprawnie pracował po kilkunastu latach czy też na innej platformie (tj. kiedy stare komputery będą zastępowane nowymi).

Język Pascal ogranicza inwencję programisty i brak w nim standaryzacji procesu łączenia z bibliotekami. Piszącemu program wolno tylko to, co kompilator uzna za bezpieczne. W praktyce "zwykły" Pascal jest zbyt krępujący. Brak możliwości dołączania bibliotek uniemożliwia korzystanie z gotowych procedur, o ile nie są one dostępne w formie tekstu źródłowego. Konkurencyjnym w stosunku do Pascala językiem programowania był język C. Jest to język bardzo prosty w konstrukcji, niezbyt łatwy w użyciu, niezbyt teoretycznie konsekwentny w składni, lecz bardzo praktyczny. Jest podstawowym językiem programowania w systemie Unix od lat siedemdziesiątych. W nim jest napisane jądro systemu Linux. Także firma Microsoft uważa język C za fundament dla swojego systemu Windows. Obecnie jest jednak już nieco przestarzały.

Page 4: Historia  i rozwój języków programowania

* Język C ewoluował w język C++, nazywany językiem programowania lat dziewięćdziesiątych. Język C++ jest językiem służącym do programowania obiektowego. Co ciekawe, rozbudowane C++ jest językiem znacznie łatwiejszym w użyciu niż "czyste" C i pozwala łatwo, po jedynie drobnych i automatycznych modyfikacjach, adaptować kod źródłowy pierwotnie napisany w Fortranie, Algolu czy Pascalu. Naturalne jest więc przechodzenie w ośrodkach naukowych zajmujących się fizyką z języka Fortran na C++ jako na de facto język standardowy, jak to np. ma miejsce w CERN. Pewnym zagrożeniem dla języka C++ może być, podobny do niego, język Java. Przewaga Javy nad C++ leży w lepszym podejściu do programowania współbieżnego. Java powstała niedawno, nic więc dziwnego, że udało się jej autorom stworzyć język XXI wieku. Jedynym problemem, jaki jest związany z językiem Java, jest polityka licencyjna firmy Sun, będącej formalnie właścicielem tego języka - cokolwiek by to mogło oznaczać. Istnieje wiele innych języków programowania, takich jak Prolog, Oberon, Python, Forth czy Ada, których nie będę przedstawiać. Liczbę języków programowania oceniano na ponad 200 już 20 lat temu i nie istnieje żadna przeszkoda, aby nie powstawały ciągle nowe.

Page 5: Historia  i rozwój języków programowania

Język programowania to inaczej język opisu algorytmów przeznaczonych do wykonywania na komputerze. Językiem programowania nazywa się maszynowo-ukierunkowanym (język niskiego poziomu), gdy odzwierciedla listę rozkazów komputera ( asembler), a maszynowo-niezależnym ( język wysokiego poziomu), gdy nie jest związany z określonym typem komputera (komputer wymaga wyposażenia go w translator określonego językiem programowania). Ze względu na sposób przedstawienia algorytmu obliczeniowego rozróżnia się: język programowania imperatywnego, funkcyjnego i język programowania w logice. Języki programowania imperatywne (np. Pascal, C, Modula, Cobol) charakteryzuje użycie instrukcji, w przypadku języka niskiego poziomu zwanych rozkazami, jako jednostek wykonawczych. Wyrażają one czynności składające się na wykonanie programu. Języki programowania funkcyjne (np. Lisp, Hope) są systemami notacyjnymi dla wyrażania funkcji, umożliwiającymi obliczanie ich wartości. Przedstawiana funkcja jest wyrażeniem zbudowanym z wyrażeń przyjętych za pierwotne poprzez stosowanie specyficznych dla danego języka operatorów, np. pozycji, wskazania argumentów i in. Języki programowania w logice (np. Prolog) są systemami notacyjnymi do zapisywania relacji i formuł logicznych. Wykonanie programu przebiega jako proces weryfikacji prawdziwości określonej formuły lub relacji.

Gdy język programowania pozwala na tworzenie pewnych jednostek (zw. obiektami), wiązanie ich w różne struktury oraz dokonywanie na nich innych, specyficznych dla danego języka, operacji - to mówi się o języku programowania obiektowego (np. Smalltalk, Simula, Loglan, C++). Obiektami mogą być ciągi instrukcji (zw. wtedy współprogramami), grupy danych, struktury graficzne wyświetlane na monitorze (np. okienka) i inne. Ze względu na sposób komunikacji z komputerem języki programowania dzieli się na niekonwersacyjne (większość), w których cały program wprowadza się do komputera przed rozpoczęciem jego wykonywania, oraz konwersacyjne (np. Basic), w których wprowadza się określony zwrot językowy (instrukcję lub pytanie) i w zależności od reakcji komputera wykonuje się kolejny krok itd.

Page 6: Historia  i rozwój języków programowania

* Języki programowania dzieli się przede wszystkim pod względem stopnia zaawansowania:

* Języki pierwszej generacji - są to języki maszynowe, czyli języki procesorów. Instrukcje są w nich zapisywane w postaci liczb binarnych. Przykładowy kod programu:111010100000000000001111111111111111100010011101100000000010100000001

* Języki drugiej generacji - języki symboliczne, asemblery. Języki niskiego poziomu, pod względem składni tożsame z maszynowymi, z tą różnicą że zamiast liczb używa się tu łatwiejszych do zapamiętania mnemoników. Przykładowy kod programu:jmp ffff:0 mov ax, bx add ax, 1

* Należy dodać, iż pod względem znaczenia kod ten jest jednoznaczny z kodem binarnym przedstawionym w poprzednim punkcie (tylko dla procesorów z grupy 80x86).

* Języki trzeciej generacji - języki wysokiego poziomu, proceduralne (imperatywne). W językach tych jedna instrukcja jest tłumaczona na kilka instrukcji procesora, najczęściej od 5 do 10. Pierwszym językiem tego typu był ALGOL. Do tej grupy należą między innymi: FORTH, BASIC - języki niestrukturalne, Pascal, C, FORTRAN - języki strukturalne, C++, Java - języki zorientowane obiektowo. Przykładowy kod:if(!x){printf("Nie wolno dzielić przez zero\n");return 1;}

Page 7: Historia  i rozwój języków programowania

* Języki czwartej generacji - języki bardzo wysokiego poziomu, nieproceduralne (deklaratywne). Korzystając z tych języków programista skupia się na problemie, a nie na sposobie jego rozwiązania (języki zorientowane problemowo, ang. task oriented languages). Syntaktyka wielu języków czwartej generacji przypomina składnię języka naturalnego. Są one często używane do dostępu do baz danych. Przykładem języka z tej grupy jest: SQL. Przykładowy kod:SELECT Nazwa FROM "Faktura.db" WHERE Cena > 1000

* Języki piątej generacji - języki sztucznej inteligencji, języki systemów ekspertowych. Języki najbardziej zbliżone do języka naturalnego. Przykładem języka piątej generacji jest PROLOG.

Page 8: Historia  i rozwój języków programowania

Nazwa Opis Kompilatory Poziom trudności

PascalJest to popularny ale dosyć stary język

Turbo Pascal, Object Pascal, Delphi - wersja wizualna

Średni

CZnany język programowania, obecnie jednak mało używany

Borland C Wysoki

C++

Obecnie najpopularniejszy język programowania, wprawdzie jest dosyć trudny, ale większość programistów go używa

Borland C++, Borland C++ Bulider - wersja wizualna

Wysoki

Java

Nowy język programowania wzorowany na C++, jest on prostszy od C++, przede wszystkim w tym, że nie trzeba zajmować się zarządzaniem pamięcią, stosem, stertą. Jednak nie jest on tak popularny jak omawiany wcześniej C++.

Java Średni

Basic

W miarę prosty język programowania - jak sama nazwa wskazuje jest to język podstawowy. Jest on jednak mało popularny, i bardzo stary. Mimo wszystko ma także wielu zwolenników głownie wśród początkujących programistów. Można w nim bardzo łatwo robić programy, które mają całkiem duże możliwości. Warto go polecić wszystkim, którzy dopiero zaczynają programowanie.

Basic Średni

Logo

Prościutki język programowania. Służy do nauki poprzez "wprawianie w ruch" żółwia odpowiednimi komendami.

Logo Bardzo prosty

Page 9: Historia  i rozwój języków programowania

Asembler - język niskiego poziomu, najbliższy kodu maszynowego, wymaga śledzenia zawartości rejestrów. Programy pisane w asemblerze charakteryzują się duża prędkością działania, wadą ich jest małoczytelna struktura.Przykład: dodanie dwóch liczb:LD rejestr1 adres1LD rejestr2 adres2ADD rejestr1 rejestr2Disasembler - tłumaczy kod maszynowego na asembler. Języki wyższego rzędu często tłumaczą najpierw na asembler, potem na kod maszynowy.

Page 10: Historia  i rozwój języków programowania

* BASIC = Begginers All-purpose Symbolic Instruction Code Zaawansowane cechy:

* manipulacja na wybranych bajtach RAM - instrukcje PEEK (zajrzyj) i POKE (wścib), bezpośredni dostęp do portów zewnętrznych;

* instrukcje graficzne - brak standardu.

* Implementacje: od 5 instrukcji po rozbudowane języki. Basic to zwykle interpretery, które są wygodne w interakcyjnej pracy, ale są też kompilatory i kompilatory przyrostowe. Przykłady:

* BASICA, GWBASIC - nieudane wersje Microsoftu.

* Professional Basic (Morgan Computing Co) - interpreter, pracuje okienkowo nawet w DOSie.

* BetterBasic (SummitSoftware Technology) - kompilator przyrostowy, struktura modułowa.

* Turbo Basic (Borland) i Quick Basic (Microsoft) - dwie udane implementacje, środowisko programisty.

* QBasic - uproszczona wersja Quick Basic bez środowiska programisty.

* Visual Basic - programowanie pod Windows, dostęp do funkcji systemu, elementów interfejsu, współpraca z bazami danych.

Page 11: Historia  i rozwój języków programowania

* FORmula TRANslation, czyli tłumacz formuł". Standard ANSI (American National Standards Institute) Historia standaryzacji: Fortran II, Fortran IV, 77, 90, 95Implementacje IBM Fortran G, H. Język nadal się rozwija, chociaż C. Dijkstra, tak pisał o Fortranie już w 1972 roku: (...) wady ujawniły się dopiero po 10 latach intensywnego używania, ludzie go projektujący godni są podziwu (...) jednak im prędzej zapomnimy, że FORTRAN kiedykolwiek istniał, tym lepiej, bo jako nośnik myśli nie jest on już wystarczający: marnuje nasze władze umysłowe, jest zbyt ryzykowny i dlatego zbyt drogi by go używać. ... Modlę się codziennie za moich towarzyszy-programistów, by więcej z nich znalazło sposób na uwolnienie się od przekleństwa kompatybilności. Jednakże Fortran się rozwinął - teoretycy rzadko potrafili przewidzieć rozwój informatyki.

* Język znalazł zastosowanie numeryczne, naukowe i inżynierskie. Zaletą jest duża szybkość programów oraz rozbudowane biblioteki procedur numerycznych.

* Duży stopień standaryzacji: od PC do superkomputerów.

* Język F: opracowany w połowie lat 90-tych, rozwiniecie Fortranu do nauki programowania, programy modularne, łatwo zrozumiałe i łatwo się je rozwija. Moduły F można wykorzystywać wielokrotnie podobnie jak obiekty. Fortran to programowanie zorientowane modułowo, łatwiejsze od obiektowo zorientowanego. Wady:

* brak środowisk programistów porównywalnych z innymi językami,

* brak standardu grafiki.

* Nowością jest: Digital Visual Fortran - doskonałe środowisko do programowania w Fortranie 90/95, używa środowiska Microsoft Developer Studio, zintegrowany z Microsoft Visual C++ 5.0 i Visual Studio '97, biblioteki graficzne i numeryczne.

Page 12: Historia  i rozwój języków programowania

*APL, czyli A Programming Language; APL W USA w środowisku inżynierów 80% programów stworzonych jest w języku APL. Do APL potrzebne są specjalne klawiatury, ze względu na greckie litery. Dzięki APL można zastosować komputer jako superkalkulator.

*Nowsza wersja APL - język J, nie wymagaja znaków specjalnych na klawiaturze. Kolejna odmiana APL2 - lansowana jest przez IBM jako interakcyjne narzędzie do rozwiązywania problemów, wizualizacji danych i dostępu do baz danych.

Page 13: Historia  i rozwój języków programowania

*Zaprojektował go w 1971 roku N. Wirth z Politechniki w Zurychu. Popularność zdobył dzięki implementacji TurboPascal (1983) firmy Borland. TP ma wiele rozszerzeń, dobre zintegrowane środowisko: edytor, debuger, projekty, doskonałą pomoc, stosunkowo dużą szybkość kompilacji i wykonania, ale bardzo długo trwajace ograniczenia pamięci do 64 K.

* Jest to pierwszy język, którego naucza się informatyków.

* Istnieje wiele udanych kompilatorów i narzędzi do programowania w Pascalu. Siłą języka są rozbudowane struktury danych: typ prosty porządkowy, wyliczeniowy, okrojony, całkowity (shortint, longint, byte), logiczny, znakowy (bajt), rzeczywisty (single, double, extended, comp), łańcuchowy, strukturalny, tablicowy, rekordowy, zbiorowy, plikowy, wskaźnikowy.

Page 14: Historia  i rozwój języków programowania

*Niklaus Wirth niezadowolony z Pascala opracował Modulę - bardziej modularny język nadający się do budowy dużych programów, można w nim też wygodnie pisać kompilatory czy całe systemy operacyjne. Modula zawiera związane ze sobą procedury i dane, podobnie jak obiekty, składa się z części definiującej oddziaływanie z innymi modułami i części określającej jego funkcje. Język ten pozwala odwoływać się bezpośrednio do sprzętu. *Modula-Prolog służy do programowania

logicznego; Modula/R, od programowania baz danych. Ulepszone: Modula-2 i Modula-3 są już o orientacji obiektowej (DEC Software Research Center), Wadą Moduli jest brak standaryzacji. *Oberon, Oberon-2 to kolejne dwa języki Wirtha,

zbliżone do języków obiektowych, jednak mało znane.

Page 15: Historia  i rozwój języków programowania

*Jest to najczęściej obecnie używany język na komputerach klasy PC. System Unix został napisany w C, jest on standardem na stacjach roboczych, stąd też duża jego popularność.

*C ma duże możliwości, pozwala dobierać się do rejestrów procesora podobnie jak asembler, łatwo przenosić programy C między różnymi systemami komputerowymi. Struktury danych w C są prostsze niż w Pascalu.

Page 16: Historia  i rozwój języków programowania

* Nazwa języka pochodzi od imienia Ady Lovelace (1811-1852), przyjaciółki Babbage'a, uznawanej za pierwszą programistkę na świecie (patrz Wstęp do niniejszej pracy).

* Język powstał na zlecenie Departamentu Obrony (DoD) USA, gdyż żaden istniejący język nie spełniał ich wymagań, a były to:

* zmniejszenie kosztów oprogramowania,

* zapewnienie bezbłędności programu (bezpieczeństwo),

* ułatwienie dalszego rozwoju oprogramowania (czytelność),

* stosowanie naturalnej konstrukcji,

* zapewnienie sprawności.

* Ada 95 - rozszerza wymagania o większe możliwości współpracy z innymi językami, giętkość konstrukcji języka (używanie obiektów), kontrolę nad zarządzaniem bazami danych i synchronizacją rozproszonych danych oraz standaryzacją bibliotek oprogramowania. Ada 95 jest pierwszym obiektowo zorientowanym językiem, który przeszedł przez proces standaryzacji. Jest uniwersalnym językiem programowania, nadaje się również do programowania w czasie rzeczywistym (sterowanie procesami). Pozwala nawet wstawiać fragmenty kodu maszynowego do programu. Ada jest językiem bogatym, niełatwo go dobrze opanować.

* Przeprowadzone w połowie lat 90-tych badania efektywności programowania w C i w Adzie pokazały, ze koszty rozwoju programów w C były dwukrotnie wyższe. Składa się na to kiepska czytelność programów napisanych w C i trudności w usuwaniu w nich błędów. Na etapie tworzenia programów zanotowano 70% mniej błędów, a na etapie obsługi klienta aż 90% mniej błędów korzystając z Ady zamiast C.

* Kompilatory muszą przejść ostre testy zgodności ze standardem. Darmowym kompilatorem języka Ada95 jest GNAT.

Page 17: Historia  i rozwój języków programowania

*Ciekawy język, opracowany przez Charlesa Moore około 1970 roku do sterowania radioteleskopem, początkowo realizacje na 8-bitowych komputerach, 1994 - standard ANSI Forth. Język jest bardzo prosty, programy są niewielkie, efektywne ale mało czytelne. *Zastosowano w nim Odwrotną Polską Notację

(Reverse Polish Notation, RPN), używaną również w popularnych kalkulatorach Hewletta-Packarda. Np. (3+4)*5 trzeba napisać: 3 4 + 5 * Programowanie polega na definiowaniu słów z listy ok. 30 słów bazowych, słowa kompilowane są w całość i dodawane do listy słów. Język jest mało używany i nie ma chyba szans na rozpowszechnienie.

Page 18: Historia  i rozwój języków programowania

*Logo stworzone zostało w latach 60-tych przez Daniela Bobrowa i Wallace'a Feurzeiga z firmy Bolt, Beranek and Newman, Inc.oraz Seymura Paperta, profesora informatyki z MIT. Język programowania ma umożliwiać łatwy start - już siedmiolatki mogą go używać - a przy tym stwarzać nieograniczone możliwości w miarę nauki. Język Logo to sterowanie żółwiem po ekranie przy pomocy odpowiednich komend, np.:DOPRZODU 10 (FORWARD 10)WPRAWO 90 (RIGHT 90)*W latach 80-tych bardzo popularny w Polsce. W

czasie komputerów 8-bitowych: ZX Spectrum, Atari, Commodore. Obecnie już chyba zapomniany, a szkoda.

Page 19: Historia  i rozwój języków programowania

*COBOL jest akronimem od Common Business Oriented Language. Służy głównie do zagadnień finansowych, dla banków, mniej administracyjnych (brak bazy danych), Jeszcze niedawno za zachodzie było wielkie zapotrzebowanie na programistów programujących w tym języku, gdyż problem roku 2000 istniał głównie z powodu programów napisanych w Cobolu. Konstrukcje zbliżone są do naturalnego opisu problemu w języku angielskim. Programy długie ale łatwo zrozumiałe. Rozbudowane struktury danych, np. rozgałęzione typu drzewa, rekordy. Istnieją dobre kompilatory na PC, również darmowe. *PL/I, opracowany w 1964 roku, był połączeniem

Fortranu i Algolu z COBOLem. Cechy języka to rozbudowane i niezależne od sprzętu typy danych, dynamiczna alokacja pamięci, prawie 200 wbudowanych operacji na zmiennych numerycznych i tekstowych, dobra komunikacja z urządzeniami zewnętrznymi. Niestety nigdy nie zdobył większej popularności.

Page 20: Historia  i rozwój języków programowania

* OOP (Object-Oriented Programming), rozwija się od 1981 roku, pierwszym językiem OOP był Smalltalk.

* Klasa jest pewnym wzorcem rzeczy, działania, zjawiska którego dotyczy nasz program. Najprostsza klasa: liczby określonego rodzaju, np. liczby całkowite lub zmiennoprzecinkowe. Klasa zawiera również metody, czyli funkcje i procedury, które dają się zastosować do danej klasy. W przypadku liczb całkowitych są to operacje arytmetyczne. Konkretne elementy (realizacje) danej klasy to właśnie obiekty. Obiekty zawierają w sobie zarówno metody (programy) jak i dane.

* Program przesyła informację pomiędzy obiektami; działanie programu polega na komunikacji obiektów, tworzeniu zależności między obiektami i modyfikacji ich cech. Nowe obiekty buduje się w oparciu o już istniejące, poprzez dziedziczenie cech innych obiektów i dodawanie nowych cech. Do obiektu można wysłać komunikat (dane), obiekt użyje dostępnych mu metod przetwarzania informacji i wyśle komunikaty do innych obiektów. Nową klasę utworzyć można z innych klas przez dziedziczenie ich danych i metod oraz dodawanie nowych lub zmianę odziedziczonych danych i metod. Powiązania między klasami wygodnie jest przedstawić w postaci drzewa, na którym zaznacza się klasy-rodziców i ich klasy-potomstwo.

Page 21: Historia  i rozwój języków programowania

* Języki OOP oferują narzędzia do tworzenia obiektów, czyli hermetyzacji (enkapsulacji, zwinięcia) danych i programu w obiekt. Obiekty są wielokrotnie używalne, biblioteki obiektów pozwalają na składanie programu z klocków. Polimorfizm (czyli wielopostaciowość) umożliwia ukrycie wewnętrznej struktury obiektów przez wyposażenie ich w jeden zunifikowany interfejs. *Object Management Group (OMG) opracowała

wymagania dla języków zorientowanych obiektowo. *Niezależne testowanie ułatwia pielęgnację

programu, oszczędza czas dzięki wielokrotnemu wykorzystaniu obiektów, np. elementów systemu graficznego dialogu z użytkownikiem. *Smalltalk to uniwersalny język stworzony dla

potrzeb muzyki, gry komputerowe, inteligentne bazy danych, programy dla robotów, przetwarzanie sygnałów z oscyloskopu, zarządzanie centralami telefonicznymi w USA, systemem kolejkowania na dużych instalacjach komputerowych, testowaniem półprzewodników i oceną kosztów produkcji samochodów, zastosowania w systemach informacyjnych dla potrzeb biznesu. Sporo udanych implementacji, darmowy kompilator GNU Smalltalk

Page 22: Historia  i rozwój języków programowania

*Eiffel - metoda konstrukcji oprogramowania i dobry język do nauczania programowania. Sather, wzorowany na Eiffel. *C++, najczęściej stosowany język obiektowy -

nie jest to język czysto obiektowy, ma pewne ograniczenia. Ogromne rozbudowanie i trudne do opanowania środowiska, pełne bardzo rzadko używanych obiektów. *Wiele udanych realizacji: Borland C++ Builder,

środowisko 4GL dla C++ *Visual C++ Warsztat Programisty (Visual

Workbench), środowisko tworzenia programów pozwalające na edycję, kompilację i śledzenie błędów w opracowywanym programie; Studio Aplikacji (AppStudio) do budowania graficznego systemu dialogu z użytkownikiem i edycji programów; Czarodziej Aplikacji (AppWizard), szybkie "składanie" obiektów znajdujących się w bibliotece i tworzenie szkieletu programu; Czarodziej Klas (ClassWizard) , śledzenie wykonywania programu i modyfikację obiektów.

Page 23: Historia  i rozwój języków programowania

*SQL, czyli Structured Query Language, najbardziej popularny jezyk DBMS.

*Bazy danych zawierają własne języki, np.: Oracle, Ingres, Informix, Paradox, dBase, FoxPro, MS Access ...

*Obliczenia w biznesie - np. język ABAP/4, język czwartej generacji. Jest połączeniem SQL'a i języka wysokiego poziomu. Używany w systemach SAP R/3.

Page 24: Historia  i rozwój języków programowania

*4GL - języki czwartej generacji*Najbardziej znane: *CA-Visual Objects, reklamowany jako software

"który myśli" ... *Delphi *PowerBuilder Enterprise *Team Enterprise (Symantec Corp), oraz

późniejsza wersja, Enterprise Developer *Oracle Power Objects *Wiele innych: Clarion, Magic, Matrix Layout,

Plastic Software, Vermont Views, 4th Dimension ...

Page 25: Historia  i rozwój języków programowania

*Visual Programming Languages. Jest to program przedstawiony w postaci powiązanych ze sobą obiektów zamiast tekstu.

Page 26: Historia  i rozwój języków programowania

Visual Programming Languages. Jest to program przedstawiony w postaci powiązanych ze sobą obiektów zamiast tekstu.

Page 27: Historia  i rozwój języków programowania

Programy w języku Java (tzw. aplety) są niewielkie, można uruchamiać na wielu różnych systemach operacyjnych. Są to największe zalety tego języka. Obecnie znalazł on zastosowanie w telefonach komórkowych, programy noszą nazwę midletów.

*Języki skryptowe - JavaScript, CGI, PHP, Perl, DHTML, ActiveX, do programowania stron WWW

*DHTML, dynamiczny HTML, czyli HTML + interaktywne rozszerzenia. Zwykle są to skrypty JavaScript i kaskadowe arkusze stylów (CSS). Są różnice interpretacji pomiędzy przeglądarkami. Typowe efekty: przeciągane rysunki, podświetlane menu, zmiana koloru, kształtu elementu po jego wskazaniu i wiele innych. Zalety: dynamiczne, multimedialne, małe strony, wykonywane po stronie klienta.

*CSS (Cascading Style Sheet), kaskadowe arkusze stylów. Skrypty przypisujące style elementom języków HTML i XML, pozwalają na tworzenie złożonych stron WWW.

*CGI (Common Gateway Interface). Najstarszy sposób tworzenia interaktywnych stron WWW; służy wymianie informacji między serwerami WWW a zewnętrznymi programami. Zamienia serwer w bramę (gateway) do źródła informacji, np. bazy danych. Skrypt wywołuje zewnętrzny program podając parametry zaznaczone na stronie przez użytkownika; wynik zwracany jest jako strona HTML.

*JavaScript - język obiektowy, niezależny od platformy, interpretowany zwykle przez przeglądarkę WWW. Typowe efekty: rollover - wskazanie elementu graficznego powoduje jego zamianę na inny obrazek, tekst przesuwa się w okienku lub pojawia się czas i data.

*PERL, Practical Extraction and Reporting Language. Szybkie i łatwe przeszukiwanie dużych zbiorów tekstowych, tworzenie interakcyjnych stron WWW - np. książek gości czy sklepów internetowych. Perl dostępny jest za darmo dla Linuxa i Windows. Wady: zawiła składnia poleceń, np. skomplikowane funkcje przetwarzania łańcuchów tekstowych.

*PHP (Personal Home Page Tools), PHP: Hypertext Preprocesor. Darmowy język, licencja open source - dostępny razem z kodem źródłowym. Jest to język skryptowy + interpreter wykonujący skrypty po stronie serwera. Kod PHP umieszcza się w dokumencie HTML; przed wysłaniem do przeglądarki serwer przekazuje dokument HTML interpreterowi PHP, który tłumaczy komendy PHP oraz wykonuje odpowiadające im operacje.

Page 28: Historia  i rozwój języków programowania

*Od lat siedemdziesiątych XX wieku języki programowania i samo programowanie przeżywają intensywny rozkwit. Wiąże się to ściśle z pojawieniem się komputerów osobistych i ciągłą ich miniaturyzacją przy wzrastającej mocy obliczeniowej. Eniac, protoplasta współczesnych komputerów wypełniający całe piętro, był wielokrotnie słabszy od komputerów, którymi dziś bawią się już kilkuletnie dzieci. Jednak jego programowanie było zadaniem z pogranicza nauki i sztuki - prawdziwym wyzwaniem dla obsługujących tą wielką maszynę inżynierów. Dzisiaj stworzenie podobnych programów zajmuje średnio zaawansowanemu użytkownikowi Pascala, C++ czy też Javy nie więcej niż jeden dzień. Postęp w tej dziedzinie jest więc olbrzymi i zauważalny na pierwszy rzut oka.

* ęzyki programowania ewoluują dalej wraz z rozwojem mikrokomputerów oraz rozpowszechnianiem zastosowań technik informatycznych. Sztuka programowania, do niedawna dostępna tylko dla wąskiej grupy, staje się nauką możliwą do przyswojenia dla przeciętnego użytkownika komputera. Zmienia się też jakość obsługi języków programowania. Coraz popularniejsze języki obiektowe wypierają języki wcześniejszych generacji. Dzięki wykorzystaniu interfejsów graficznych i specjalnych nakładek tworzenie prostych programów jest równie łatwe jak budowa strony WWW (z resztą HTML też jest pewną formą języka programowania). Można stwierdzić, że technologia WYSIWYG zaadaptowała się do świata programowania wraz z wkroczeniem języków Visual Basic oraz Java.

Page 29: Historia  i rozwój języków programowania

*Trzeba jednak zwrócić uwagę, że ciągle utrzymują swoją pozycję również starsze, tradycyjne języki programowania. Każdy adept tej sztuki rozpoczyna swoje szkolenie od Pascala, a jeżeli edukację informatyczną zaczyna na poziomie szkoły podstawowej czy też gimnazjum, to często ma do czynienia również z sympatycznym językiem Logo. Pewne prawidłowe nawyki oraz sposoby pisania programów nabyte podczas nauki Pascala czy właśnie Logo procentują później podczas poznawania bardziej zaawansowanych języków, jak C++ czy Java.

Page 30: Historia  i rozwój języków programowania

KONIEC

Page 31: Historia  i rozwój języków programowania