W dzisiejszych czasach komputer zdaje się być niezastąpiony w pracy, nauce czy zabawie. Postęp techniczny szybko wpłynął na sposób wykorzystywania komputera przez różne grupy ludzi, a wszystko to, czym kiedyś zajmowali się tylko profesjonaliści jest dziś dostępne dla wszystkich. Niewątpliwym przełomem w informatyce było stworzenie stosunkowo prostych prostych konstrukcji sekwencyjnych, proceduralno-modularnych języków programowania, które znalazły zastosowanie w systemach o architekturze 8 i 16 bitowej, a obecnie z powodzeniem są wykorzystywane w środowiskach 32-bitowych takich jak Windows czy Linux. Pierwsze języki programowania były trudne do opanowania i miały małe zastosowanie użytkowe, co sprawiało, że posługiwała się nimi mała grupa ludzi, która wykorzystywała swoje umiejętności w pracy czy badaniach naukowych. Dziś prawie każdy może zacząć pisać swoje programy. Wszelkie istotne informacje, które pozwolą nam przyswoić tą umiejętność są powszechnie dostępne w Internecie lub licznych publikacjach (książki i czasopisma), a stworzenie podstawowego środowiska do programowania w danym języku z reguły nic nie kosztuje, bo producenci komercyjnego oprogramowania tego typu oferują wersje Home czy Personal Edition zupełnie za darmo. Te programy w zupełności wystarczają do nauki i do pisania mało rozbudowanych programów użytkowych.
1. C/C++
Zdecydowanie najbardziej zaawansowany język programowania, który powstał w wyniku pracy nad uniwersalnym językiem dającym możliwość pisania programów na różne platformy. W Polsce pojawił się on dość późno gdyż komputery wyposażone były przede wszystkim w systemy typu DOS, które potrafiły interpretować polecenia BASIC-a (język wykorzystywany niegdyś między innymi w Commodore i ZXspectrum), a jedynym popularnym językiem dostępnym na ten system był Turbo Pascal firmy Borland. Na zachodzie natomiast, zastosowanie we wszystkim, co było związane z komputerami znalazł przede wszystkim Unix, który do tej pory jest najlepiej opracowanym systemem. Doczekał się wielu mutacji i wersji w zależności od potrzeb i zastosowania. Kompilator C/C++ wchodzi w skład podstawowych narzędzi niemal każdej wersji tego systemu (za wyjątkiem systemu Xenix, który jest bardzo ubogi).
Z założenia, programy napisane w C mają być małe, szybkie i zajmować mało pamięci, co ma swoje odbicie w wygodzie pisania programów i nauce programowania. Kod programu, w stosunku do innych języków, zawiera znacznie mniejszą ilość znaków poprzez stosowanie krótszego zapisu, który (w przeciwieństwie do np.: Pascala czy Basica) z reguły nie jest logiczny. Oto porównanie zapisów tej samej informacji w trzech językach:
Pascal: i:=i+1; (7 znaków)
Basic: 10 I=I+1 (8 znaków)
C++: i++; lub ++i; (4 znaki)
Oznacza to tyle samo co „następne I” (C++ znaczy „następne C”- czyli oznacza kolejną wersję). Różnica w ilości znaków sprawia, że programy są od kilku do kilkuset razy szybsze i lżejsze, a forma jest bardziej czytelna dla komputera, oferuje programiście większą kontrolę nad programem i daje możliwość pisania programów bardziej zaawansowanych.
Od czasu utworzenia pierwszej wersji C powstało wiele implementacji, mutacji i wersji tego języka różniących się od siebie przede wszystkim funkcjami oraz sposobem zapisu kodu. Architektura 32-bitowa znacznie upraszcza tworzenie aplikacji, a jednocześnie pozostawia wiele miejsca na kreatywność programisty. C++ umożliwia wykorzystywanie funkcji i bibliotek innych języków (np.: wykorzystanie funkcji assemblera). Bardziej popularne programy do pisania aplikacji w C++ dla Windows to np.: Borland C++ i Visual C++. Rozszerzenia plików źródłowych to [*.c] lub [*.cpp] w zależności od wersji.
2. Turbo Pascal
Język ten, ze względu na mały stopień trudności w opanowaniu, wykorzystywany jest przede wszystkim w nauczaniu programowania. Opanowanie Pascala przybliża do języków bardziej zaawansowanych i ułatwia ich późniejszą naukę, bo wprowadza w programowanie sekwencyjno- proceduralno-modularne. Obecnie pierwszym etapem nauczania w szkołach o profilu informatycznym jest Turbo Pascal.
Na program utworzony w Pascalu składają się następujące symbole i słowa kluczowe:
Znakami języka Pascal są litery alfabetu angielskiego (wielkie i małe), spacja, cyfry dziesiętne oraz znak podkreślenie: _
Symbolami są:
· operatory arytmetyczne: + - * /
· operatory relacji: = < > <= >= <>
· nawiasy: okrągłe (w wyrażeniach), klamrowe {w komentarzach} i kwadratowe [w tablicach]
· inne symbole: . , ; : ' @ # $ " ? ! % & ~ \ ^
Słowa kluczowe są stosowane do formułowania poleceń i do definiowania zmiennych np.: PROGRAM, BEGIN, END, DIV, MOD, AND, NOT, OR, IF, THEN, ELSE, FOR, TO, DOWNTO, DO, CASE, REPEAT, UNTIL, WHILE, VAR, TYPE, CONST, STRING, FILE, USES.
Program w języku Pascal ma następującą strukturę:
-Nagłówek programu, zaczynający się od słowa PROGRAM, po którym następuje nazwa danego programu lub też jakieś inne informacje.
-Opis elementów programu, zawierający przede wszystkim deklaracje zmiennych oraz podprogramów. Mogą się tu znajdować również definicje stałych i definicje typów. Definicje występują w stałej kolejności:
stałe (CONST), typy (TYPE), zmienne (VAR) – umieszcza się tu wszystko, co jest potrzebne w programie.
-Część wykonawcza programu, rozpoczynająca się słowem BEGIN i kończąca słowem END, po którym następuje kropka.
Każda instrukcja zakończona jest średnikiem za wyjątkiem BEGIN. Na końcu programu zawsze powinna być kropka – END.
Borland Turbo Pascal jest językiem 16-bitowym mającym zastosowanie w systemie DOS i trybie MS-DOS pod kontrolą systemu Windows, a w przypadku systemów typu Unix tylko w konsoli ale te drugie rzadko posiadają kompilatory i interpretery poleceń Pascala ze względu na małą przydatność w tych systemach. Używa się innych bardziej złożonych i lepiej przystosowanych języków do pracy z jądrami tych systemów (np.: C++, Python itp.).
Za pomocą Turbo Pascala możemy operować na plikach, czego najlepszym przykładem były pierwsze wersje systemów antywirusowych Nortona napisanych właśnie w Pascalu (na owe czasy Pascal dawał duże możliwości)- dziś te aplikacje jak i większość innych dobrych programów (np.: MS Word) pisana jest w C++. Możemy na przykład pisać programy przeliczeniowe, w TP można wykonywać dość skomplikowane zadania matematyczne, a amatorzy rzeczy mniej pożytecznych mogą przeformatować cudzy dysk albo pisać w nim wirusy, które po mimo swojej prostoty i łatwości w usunięciu przez prawie każdy nawet mało rozbudowany program antywirusowy, są zabójcze dla systemu, gdy programów przeciwdziałających nie ma.
3. Delphi
Delphi jest kontynuacją pomysłu Andersa Hejlsberga, ojca Turbo Pascala. Jest to narzędzie typu RAD (Rapid Application Development), przeznaczone do błyskawicznego pisania aplikacji. Delphi wykorzystuje obiekty, dzięki czemu wstawienie określonych elementów programu nie wymaga pisania kodu tylko edytowania ich właściwości. Oparty jest na Pascalu (a właściwie Object Pascalu), który jak już wspomniałam wcześniej, nie jest tak bardzo skomplikowany jak inne języki. Delphi wydaje się być idealnym środowiskiem dla początkujących programistów chcących tworzyć aplikacje dla Windows.
Interfejs programu Delphi jest opracowany tak, by maksymalnie przyspieszyć tworzenie aplikacji. Na górze głównego okna umieszczono pasek komponentów, na który składa się kilka zakładek podzielonych według określonych kategorii elementów umieszczanych w programach, a panel właściwości i zdarzeń obiektów jest wygodnym narzędziem do opisywania parametrów poszczególnych elementów kodu.
Fragment inspektora zdarzeń w Delphi.
Prezentuje on właściwości czcionki jednego z obiektów użytych w programie. Bez takiego wspomagania trzeba by było wszystko to wpisać ręcznie.
A oto kilka przykładowych funkcji używanych w Delphi, większość można edytować za pomocą inspektora zdarzeń:
Alignment - określa sposób justowania wyświetlanego napisu
AutoSize - jeśli True to komponent automatycznie zmienia swój rozmiar
Caption - własność komponentu określająca wyświetlany przez niego napis
ClientHeight - określa wysokość okna (bez paska tytułu i pasków przewijania)
ClientWidth - określa szerokość okna (bez paska tytułu i pasków przewijania)
Font - określa czcionkę
Font.Style - określa styl czcionki (pogrubienie, kursywa, podkreślenie, itp.)
Form - okno programu
IntToStr(LCałkowita) - funkcja zamieniająca podaną liczbę w ciąg znaków
Max - określa maksymalną wartość przyjmowaną przez dany komponent
Min - określa minimalną wartość przyjmowaną przez dany komponent
Name - własność wszystkich komponentów; określa ona nazwę, poprzez którą uzyskuje się dostęp do komponentu
OnChange - zdarzenie generowane w momencie zmiany zawartości komponentu
OnCreate - zdarzenie generowane w momencie tworzenia komponentu (podczas uruchamiania programu)
OnMouseMove - zdarzenie generowane gdy wskaźnik myszki znajduje się nad obiektem
Position - (pasek przewijania) własność opisująca aktualną wartość komponentu
Random(zakres) - generuje liczbę losową z przedziału <0; zakres)
Randomize - procedura inicjująca generator liczb losowych
Round(LRzeczywista) - funkcja zaokrąglająca podaną liczbę rzeczywistą do
najbliższej całkowitej
Width - określa szerokość komponentu
4. Assembler
Assembler należy do najbardziej skomplikowanych języków wysokiego poziomu. Bazuje on na tzw. przerwaniach DOSa i mapie pamięci komputera PC więc by zacząć programować w Assemblerze należy zaopatrzyć się w odpowiednią dokumentację i na pewno przyda się doświadczenie w programowaniu.
Poniżej prezentuję przykład kodu tego samego ale w dwóch różnych językach, powszechnie znanego początkującym programistom programu, który wyświetla na monitorze napis Hello World:
Turbo Pascal
Program hello;
begin
write('Hello world');
end.
Assembler
Hello segment
org 100h
start:
lea dx,napis
mov ah,9h
int 21h
int 20h
napis db 'Hello world$'
Hello ends
end start
Tak skomplikowany zapis w Assemblerze wynika z tego, że program jest rozbity na najmniejsze części- to daje największe możliwości kontroli nad programem (a programu nad komputerem). W efekcie program potrafi wykorzystać w pełni podzespoły komputera (procesor, pamięć, BIOS, ChipSet itp.) i kart rozszerzeń np.: dźwięku czy video gdyż musimy w kodzie dokładnie określić np.: w jakim stosie (jednostce pamięci operacyjnej komputera) ma się dana informacja znaleźć czy z jakiego musi być pobrana. Myślę, że nie jestem w stanie opisać sposobu działania tego języka ale najważniejsza informacja to, że język ten służy do pisania bardzo skomplikowanych programów, w których każda część programu musi być dokładnie kawałek po kawałku opisana w kodzie, a w przypadku innych języków pewne procesy są dla uproszczenia zautomatyzowane - wystarczy jedna funkcja żeby program zapisał w odpowiednim stosie pamięci jakąś informację, a w Assemblerze należy to dokładnie zaadresować). W tym języku mamy kontrolę nawet nad bitami czyli najmniejszymi jednostkami jakimi posługuje się komputer. Przykładem możliwości tego języka jest jeden z bardziej znanych, ze swojego wyjątkowego okrucieństwa, wirus o nazwie CIH. Uaktywnia się on w rocznicę wybuchu reaktora w Czarnobylu. Powoduje całkowite wyczyszczenie pamięci BIOSUu, a co za tym idzie, komputera nie da się uruchomić do czasu ponownego załadowania do BIOSu potrzebnych informacji. Z reguły nie zmusza to do wymiany płyty głównej, bo popularne BIOSy można ściągnąć z Internetu i za pomocą specjalnego urządzenia zaprogramować kość, o ile ma ona możliwość programowania, jeśli nie - można zamówić całą kość ale niektóre są tak rzadkie, że konieczna jest wymiana tego najważniejszego elementu komputera jakim jest płyta główna.
5. Języki programowania wykorzystywane w Internecie
Popularność Internetu ciągle wzrasta, co ciągnie za sobą konieczność stosowania coraz to nowszych technik tworzenia i realizowania usług sieciowych. Na równi z utworzeniem protokołu http powstał język służący do tworzenia stron internetowych - HTML, który do tej pory tak naprawdę jest nieodłącznym ich elementem. W porównaniu do innych języków programowania HTML charakteryzuje się prostotą zbudowanego dokumentu (rozszerzenia *.htm i *.html), a do odczytania tych dokumentów służą przeglądarki internetowe np.: Internet Explorer czy Netscape Communikator.
Tak w wielkim skrócie można przedstawić proces wyświetlania stron internetowych:
- załóżmy, że wpisujemy w przeglądarce adres http://www.onet.pl, nasz komputer ściąga dla nas z serwera, na którym znajduje się strona, kod źródłowy dokumentu html.
- z zawartych w dokumencie informacji o wyglądzie strony i wszystkich jej elementach tłumaczy go na postać czytelną dla człowieka.
- wynik wyświetla na monitorze komputera.
Elementy języka HTML to tzw. Tagi (znaczniki z angielskiego) każdy znacznik z ewentualnymi parametrami zawarty jest w nawiasach trójkątnych np.:
W większości przypadków Tag otwarty należy zamknąć tym samym Tagiem z dodatkowo dopisanym ukośnikiem np.:
A tak wygląda podstawowa osnowa dokumentu HTML
w tym miejscu umieszcza się całą zawartość strony internetowej, czyli wszystko to co widzimy na monitorze wchodząc na stronę.
Dodatkowo język PHP wzbogaca konstrukcję stron internetowych. Istnieją też inne języki stosowane w kompleksowych rozwiązaniach internetowych opartych przede wszystkim na programach wykonywanych po stronie serwera tzn. że nie są one ściągane wraz z dokumentem ale tylko powiązane z nim i uruchamiane w przypadku ich wywołania. Często takie rozwiązania wiąże się z bazami danych i stosowane są głównie na dużych wydajnych serwerach, bo każde wywołanie strony powoduje uruchomienie dodatkowego procesu w systemie. Szczególnie CGI znalazło zastosowanie w tworzeniu profesjonalnych systemów portalowych w Internecie. Programy wykonywane po stronie serwera wykorzystywane są przede wszystkim do interakcji z użytkownikami (np.: rejestracja konta internetowego on-line, wypełnianie formularzy z informacjami zwrotnymi)oraz do dynamicznego generowania elementów serwisu. Stanowią bezpieczną formę wymiany informacji pomiędzy serwerem a komputerem klientem. Dość często można spotkać się też z bazami danych takimi jak SQL, MySQL. Są to typowe rozwiązania bazodanowe dla systemów unixowych .
Charakterystyka popularnych języków programowania takich jak asembler, turbo pascal, C++ itp. Praca na poziomie szkoły średniej ale nie o profilu informatycznym. Oceniona na 5 :)