BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 3 | UU: 215

Języki programowania

Przegląd najważniejszych języków programowania

Obecnie istnieje bardzo, bardzo wiele języków programowania. Niektóre przeznaczono do konkretnych zastosowań, na przykład sieci neuronowych, inne zaś są narzędziami ogólnego przeznaczenia. Zazwyczaj większe korzyści zajmuje znajomość tych drugich, dlatego nimi właśnie się zajmiemy.

Od razu muszę zaznaczyć, że mimo to nie ma czegoś takiego jak język, który będzie dobry do wszystkiego. Spośród języków "ogólnych" niektóre są nastawione na szybkość, inne na rozmiar kodu, jeszcze inne na przejrzystość itp. Jednym słowem, panuje totalny rozgardiasz ;)

Należy koniecznie odróżniać języki programowania od innych języków używanych w informatyce. Na przykład HTML jest językiem opisu, gdyż za jego pomocą definiujemy jedynie wygląd stron WWW (wszelkie interaktywne akcje to już domena JavaScriptu). Inny rodzaj to języki zapytań w rodzaju SQL, służące do pobierania danych z różnych źródeł (na przykład baz danych).
Niepoprawne jest więc (popularne skądinąd) stwierdzenie "programować w HTML".

Przyjrzyjmy się więc najważniejszym używanym obecnie językom programowania:

  1. Visual Basic
    Jest to następca popularnego swego czasu języka BASIC. Zgodnie z nazwą ( basic znaczy prosty), był on przede wszystkim łatwy do nauki. Visual Basic pozwala na tworzenie programów dla środowiska Windows w sposób wizualny, tzn. poprzez konstruowanie okien z takich elementów jak przyciski czy pola tekstowe.
    Język ten posiada dosyć spore możliwości, jednak ma również jedną, za to bardzo poważną wadę. Programy w nim napisane nie są kompilowane w całości do kodu maszynowego, ale interpretowane podczas działania. Z tego powodu są znacznie wolniejsze od tych kompilowanych całkowicie.
    Obecnie Visual Basic jest jednym z języków, który umożliwia tworzenie aplikacji pod lansowaną przez Microsoft platformę .NET, więc pewnie jeszcze o nim usłyszymy :)


Screen 3. Kod przykładowego projektu w Visual Basicu

  1. Object Pascal (Delphi)
    Delphi z kolei wywodzi się od popularnego języka Pascal. Podobnie jak VB jest łatwy do nauczenia, jednakże oferuje znacznie większe możliwości zarówno jako język programowania, jak i narzędzie do tworzenia aplikacji. Jest całkowicie kompilowany, więc działa tak szybko, jak to tylko możliwe. Posiada również możliwość wizualnego konstruowania okien. Dzięki temu jest to obecnie chyba najlepsze środowisko do budowania programów użytkowych.


Screen 4.Tworzenie aplikacji w Delphi

  1. C++
    C++ jest teraz chyba najpopularniejszym językiem do zastosowań wszelakich. Powstało do niego bardzo wiele kompilatorów pod różne systemy operacyjne i dlatego jest uważany za najbardziej przenośny. Istnieje jednak druga strona medalu - mnogość tych narzędzi prowadzi do niewielkiego rozgardiaszu i pewnych trudności w wyborze któregoś z nich. Na szczęście sam język został w 1997 roku ostatecznie ustandaryzowany.
    O C++ nie mówi się zwykle, że jest łatwy - być może ze względu na dosyć skondensowaną składnię (na przykład odpowiednikiem pascalowych słów begin i end są po prostu nawiasy klamrowe { i } ). To jednak dosyć powierzchowne przekonanie, a sam język jest spójny i logiczny.
    Jeżeli chodzi o możliwości, to w przypadku C++ są one bardzo duże - w sumie można powiedzieć, że nieco większe niż Delphi. Jest on też chyba najbardziej elastyczny - niejako dopasowuje się do preferencji programisty.
  1. Java
    Ostatnimi czasy Java stała się niemal częścią kultury masowej - wystarczy choćby wspomnieć o telefonach komórkowych i przeznaczonych doń aplikacjach. Ilustruje to dobrze główny cel Javy, a mianowicie przenośność - i to nie kodu, lecz skompilowanych programów! Osiągnięto to poprzez kompilację do tzw. bytecode , który jest wykonywany w ramach specjalnej maszyny wirtualnej. W ten sposób, program w Javie może być uruchamiany na każdej platformie, do której istnieje maszyna wirtualna Javy - a istnieje prawie na wszystkich, od Windowsa przez Linux, OS/2, QNX, BeOS, palmtopy czy wreszcie nawet telefony komórkowe. Z tego właśnie powodu Java jest wykorzystywana do pisania niewielkich programów umieszczanych na stronach WWW, tak zwanych apletów .
    Ceną za tą przenośność jest rzecz jasna szybkość - bytecode Javy działa znacznie wolniej niż zwykły kod maszynowy, w dodatku jest strasznie pamięciożerny. Ponieważ jednak zastosowaniem tego języka nie są wielkie i wymagające aplikacje, lecz proste programy, nie jest to aż tak wielki mankament.
    Składniowo Java bardzo przypomina C++.


Screen 5. Krzyżówka w formie apletu Javy

  1. PHP
    PHP (skrót od Hypertext Preprocessor ) jest językiem używanym przede wszystkim w zastosowaniach internetowych, dokładniej na stronach WWW. Pozwala dodać im znacznie większą funkcjonalność niż ta oferowana przez zwykły HTML. Obecnie miliony serwisów wykorzystuje PHP - dużą rolę w tym sukcesie ma zapewne jego licencja, oparta na zasadach Open Source (czyli brak ograniczeń w rozprowadzaniu i modyfikacji).
    Możliwości PHP są całkiem duże, nie można tego jednak powiedzieć o szybkości - jest to język interpretowany. Jednakże w przypadku głównego zastosowania PHP, czyli obsłudze serwisów internetowych, nie ma ona większego znaczenia - czas wczytywania strony WWW to przecież w większości czas przesyłania gotowego kodu HTML od serwera do odbiorcy.
    Jeżeli chodzi o składnię, to trochę przypomina ona C++. Kod PHP można jednak swobodnie przeplatać znacznikami HTML.
    Z punktu widzenia programisty gier język ten jest w zasadzie zupełnie bezużyteczny (chyba że kiedyś sam będziesz wykonywał oficjalną stronę internetową swojej wielkiej produkcji ;D), wspominam o nim jednak ze względu na bardzo szerokie grono użytkowników, co czyni go jednym z ważniejszych języków programowania.


Screen 6. Popularny skrypt forów dyskusyjnych, phpBB, także działa w oparciu o PHP

To oczywiście nie wszystkie języki - jak już pisałem, jest ich całe mnóstwo. Jednakże w ogromnej większości przypadków główną różnicą między nimi jest składnia, a więc sprawa mało istotna (szczególnie, jeżeli dysponuje się dobrą dokumentacją :D). Z tego powodu poznanie jednego z nich bardzo ułatwia naukę następnych - po prostu im więcej języków już znasz, tym łatwiej uczysz się następnych :)

Brzemienna w skutkach decyzja

Musimy zatem zdecydować, którego języka będziemy się uczyć, aby zrealizować nasz nadrzędny cel, czyli poznanie tajników programowania gier. Sprecyzujmy więc wymagania wobec owego języka:

  • programy w nim napisane muszą być szybkie - w takim wypadku możemy wziąć pod uwagę jedynie języki całkowicie kompilowane do kodu maszynowego
  • musi dobrze współpracować z różnorodnymi bibliotekami graficznymi, na przykład DirectX
  • powinien posiadać duże możliwości i zapewniać gotowe, często używane rozwiązania
  • nie zaszkodzi też, gdy będzie w miarę prosty i przejrzysty :)

Jeżeli uwzględnimy wszystkie te warunki, to spośród całej mnogości języków programowania (w tym kilku przedstawionych wcześniej) zostają nam aż. dwa - Delphi oraz C++.

Przyglądając się bliżej Delphi, możemy zauważyć, iż jest on przeznaczony przede wszystkim do programowania aplikacji użytkowych, które pozostają przecież poza kręgiem naszego obecnego zainteresowania :) Na plus można jednak zaliczyć prostotę i przejrzystość języka oraz jego bardzo dużą wydajność. Również możliwości Delphi są całkiem spore.

Z kolei C++ zdaje się być bardziej uniwersalny. Dobrze rozumie się z ważnymi dla nas bibliotekami graficznymi, jest także bardzo szybki i posiada duże możliwości. Składnia z kolei jest raczej "ekonomiczna" i być może nieco bardziej skomplikowana.

Czyżbyśmy mieli zatem remis, a prawda leżała (jak zwykle) pośrodku? :) Otóż niezupełnie - nie uwzględniliśmy bowiem ważnego czynnika, jakim jest popularność danego języka. Jeżeli jest on szeroko znany i używany (do programowania gier), to z pewnością istnieje o nim więcej przydatnych źródeł informacji, z których mógłbyś korzystać.

Z tego właśnie powodu Delphi jest gorszym wyborem, ponieważ ogromna większość dokumentacji, artykułów, kursów itp. dotyczy języka C++. Wystarczy chociażby wspomnieć, iż Microsoft nie dostarcza narzędzi pozwalających na wykorzystanie DirectX w Delphi - są one tworzone przez niezależne zespoły 1 i ich używanie wymaga pewnego doświadczenia.

A więc - C++! Język ten wydaje się najlepszym wyborem, jeżeli chodzi o programowanie gier komputerowych. A skoro mamy już tą ważną decyzję za sobą, została nam jeszcze tylko pewna drobnostka - trzeba się tego języka nauczyć :))

Kwestia kompilatora

Jak już wspominałem kilkakrotnie, C++ jest bardzo przenośnym językiem, umożliwiającym tworzenie aplikacji na różnych platformach sprzętowych i programowych. Z tegoż powodu istnieje do niego całe mnóstwo kompilatorów.

Ale kompilator to tylko program do zamiany kodu C++ na kod maszynowy - w dodatku działa on zwykle w trybie wiersza poleceń, a więc nie jest zbyt wygodny w użyciu. Dlatego równie ważne jest środowisko programistyczne , które umożliwiałoby wygodne pisanie kodu, zarządzanie całymi projektami i ułatwiałoby kompilację.

Środowisko programistyczne (ang. integrated development environment - w skrócie IDE) to pakiet aplikacji ułatwiających tworzenie programów w danym języku programowania. Umożliwia najczęściej organizowanie plików z kodem w projekty, łatwą kompilację, czasem też wizualne tworzenie okien dialogowych.
Popularnie, środowisko programistyczne nazywa się po prostu kompilatorem (gdyż jest jego główną częścią).

Przykłady takich środowisk zaprezentowałem na screenach przy okazji przeglądu języków programowania. Nietrudno się domyśleć, iż dla C++ również przewidziano takie narzędzia. W przypadku środowiska Windows, które rzecz jasna interesuje nas najbardziej, mamy ich kilka:

  1. Bloodshed Dev-C++
    Pakiet ten ma niewątpliwą zaletę - jest darmowy do wszelakich zastosowań, także komercyjnych. Niestety zdaje się, że na tym jego zalety się kończą :) Posiada wprawdzie całkiem wygodne IDE, ale nie może się równać z profesjonalnymi narzędziami: nie posiada na przykład możliwości edycji zasobów (ikon, kursorów itd.)
    Można go znaleźć na stronie producenta .
  2. Borland C++Builder
    Z wyglądu bardzo przypomina Delphi - oczywiście poza zastosowanym językiem programowania, którym jest C++. Niemniej, tak samo jak swój kuzyn jest on przeznaczony głównie do tworzenia aplikacji użytkowych, więc nie odpowiadałby nam zbytnio :)
  3. Microsoft Visual C++
    Ponieważ jest to produkt firmy Microsoft, znakomicie integruje się z innym produktem tej firmy, czyli DirectX - wobec czego dla nas, (przyszłych) programistów gier, wypada bardzo korzystnie. Nic dziwnego zatem, że używają go nawet profesjonalni twórcy.

Tak jest, dobrze myślisz - zalecam Visual C++ :) Warto naśladować najlepszych, a skoro ogromna większość komercyjnych gier powstaje przy użyciu tego narzędzia (i to nie tylko w połączeniu z DirectX), musi to chyba znaczyć, że faktycznie jest dobre 2 .

Jeżeli upierasz się przy innym środowisku, to pamiętaj, że przedstawione przeze mnie opisy niektórych poleceń i opcji mogą nie odpowiadać twojemu IDE. W większości nie dotyczy to jednak samego języka C++, którego składnię i możliwości zachowują wszystkie kompilatory. W razie jakichkolwiek kłopotów możesz zawsze odwołać się do dokumentacji :)

1 Najbardziej znanym jest JEDI

2 Wiem, że dla niektórych pojęcia "dobry produkt" i "Microsoft" wzajemnie się wykluczają, ale akurat w tym przypadku wcale tak nie jest :)

| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker