Przejdź do głównej części strony

INTERIA360
interia.pl

Nawigacja

Górne menu

Zmora programisty

Autor: Mateusz Mierzwiński (zredagowany przez: Gabusia, Marcin Kosiński)

Słowa kluczowe: programowanie, programista, C, C++, OpenGL, directx, pascal, delphi, linux, Windows, algorytmy

fot. Michal Zacharzewski/sxc.hu

fot. Michal Zacharzewski/sxc.hu

W życiu każdego programisty zdarza się moment, kiedy nakład posiadanej wiedzy przekracza znacznie pojęcie napisania zwykłego programu. Widoczne jest to szczególnie u studentów informatyki, którzy wcześniej już mieli do czynienia z pisaniem kodu...

...w językach niskiego poziomu jak Asembler i później poznali Pascala. Tak właśnie zaczęło się w moim przypadku. Styczność z programowaniem pobudzona przez nauczyciela informatyki w szkole podstawowej językiem programowania Logo szybko przerodziła się w chęć napisania czegoś poważniejszego. Szkoła średnia to czas Pascala a następnie, jako samouk, próbowałem Delphi. Na studiach poznajesz kolejno języki C i C++ kończąc na Javie. Zanim się obejrzałem przeszedłem przez kurs PHP, HTML-a, zrębu QT i GTK, kończąc na programowaniu z wykorzystaniem OpenGL oraz modułów Linux-a po drodze. Poznałem SQL i zasady programowania klient-serwer. Na końcu tej wędrówki stajesz przed pytaniem: „jaki język wybrać?”.

style="margin-bottom: 0in">Zasady wybierania

style="margin-bottom: 0in">Jeśli kiedyś słyszałeś, że lepszy jest C od Pascal-a, PHP od HTML-a, a powłoka DirectX przegrywa z OpenGL to uważam, że nie rozmawiałeś z programistą, który potrafi płynnie programować na odpowiednio wysokim poziomie.

style="margin-bottom: 0in">Prawdziwy programista traktuje języki i powłoki, których używa jako narzędzia potrzebne do wykonania konkretnego zadania. Każde z tych narzędzi jest lepsze i gorsze do konkretnych zagadnień.

style="margin-bottom: 0in">Prostym przykładem jest napisanie niezbyt skomplikowanej aplikacji współpracującej z bazą danych MySQL. Używając C zajmie Ci to znacznie więcej czasu i kombinacji, niż posłużenie się Delphi. Małej strony nie ma sensu tworzyć w PHP, lepiej zastosować HTML, choć i tak wiadomo, że PHP zawsze wiąże z HTML-em. Do małych programów zastosujesz Asembler, który najszybciej jak się tylko da wykona zadanie na konkretnej maszynie. Jeśli zechcesz napisać moduł do jądra systemu Linux użyjesz z pewnością C.

style="margin-bottom: 0in">Jak widać nie ma konkretnych reguł świadczących o wyborze w językach programowania. Wszystko zależy od tego, jak bardzo chcesz się napracować pisząc program. Wiadomo przecież, że kod będzie żył około 10 lat w obiegu, lepiej jest więc zastosować coś, co będzie prościej później rozwikłać i zmodernizować.

style="margin-bottom: 0in">Nie rozumiem programistów, którzy...

style="margin-bottom: 0in">Nie rozumiem programistów, którzy z uporem maniaka mówią o wyższości jednego języka nad drugim. Jeśli mamy do rozwikłania problem złożonego systemu do obsługi komunikatora internetowego, który nasz zleceniodawca napisał, wiadomo że nie sięgniemy po narzędzia typu Asembler, bo pisanie jednego modułu serwera zajmie nam mniej więcej tyle czasu, co napisanie całej aplikacji, debugowanie kodu i wprowadzanie poprawek w C pod Linux-em.

style="margin-bottom: 0in">Różnorodność platform

style="margin-bottom: 0in">Kolejnym problem, jaki czyha na programistę podczas wyborów języka programowania jest platforma systemowa oraz sprzętowa, w której program będzie działał. Nie każdy język daje się implementować na różnych platformach i nie każdy język ma takie same możliwości na różnych systemach.

style="margin-bottom: 0in">Wiadomo, że programowanie w Pascalu nie ma większego sensu pod Linuxem, ponieważ sam kompilator Pascala dla tego systemu ma bardzo duże ograniczenia, między innymi co do rozmiaru gotowego programu i szybkości jego działania. W Windows lepiej jest zastosować C++ z DirectX, niż bawić się z OpenGL-em, który będzie działał wolniej. Odwrotną sytuacją jest brak wsparcia dla technologii DirectX w systemach innych, niż Windows co powoduje kolejne ograniczenia.

style="margin-bottom: 0in">Ograniczenia OpenGL i DirectX, a obecne gry

style="margin-bottom: 0in">Nie należy tutaj zapominać o, tak istotnym, temacie gier. Tego rodzaju programy napisane dla platformy DirectX nie mają racji istnienia w systemach innych, niż Windows z powodu braków implementacji powłoki na innych platformach programowych. Nieco inna sytuacja jest z kodem napisanym w OpenGL.

style="margin-bottom: 0in">OpenGL jako otwarta biblioteka graficzna jest w pełni przeniesiona na system Windows. Występuje też w środowiskach Solaris oraz Linux/Unix. W Windows jest nieco wolniejsza od DirectX jednak efektami naprawdę nie ustępuje DirectX.

style="margin-bottom: 0in">Doskonałym przykładem jest tutaj gra z rodzaju FPS o nazwie Unreal Tournament. Każda kolejna wersja na jednej płycie posiadała instalator dla systemów Linux i Windows. Przenośność kodu zapewniono dzięki zastosowaniu technologii OpenGL oraz możliwości włączenia sterownika DirectX w Windows lub korzystania z OpenGL. Obecnie rozwój tej gry wskazuje kierunek wzrostu jakości gier zarówno pod względem funkcjonalności, jakości grafiki oraz szybkości działania.

style="margin-bottom: 0in">Podsumowanie, czyli notka na marginesie

style="margin-bottom: 0in">Będąc programistą powinno się pamiętać o jeden zasadzie - zawsze najkrócej jak się da - lecz nie na tyle, by znaleźć się w lesie wśród wygłodniałych wilków. Należy starannie przemyśleć program, zaprojektować go zadając sobie pytania „co?”, „jak?”. Po uzyskaniu odpowiedzi bez problemu dobierzemy odpowiednie narzędzie. Najważniejsze to nie śpieszyć się za bardzo.

style="margin-bottom: 0in"> 

Warto było przeczytać?

kliknij aby ocenić

  • Tak, polecam innym
  • Nie warto marnować czasu
AKTUALNA OCENA   71,36 %

Przeczytano razy: 2463

 
  • Wracaj na Fotkę... (3)
    ( 2007-11-05 11:24)
    ~Niszczyciel

    lub zanim zaczniesz pisać artykuły o
    programowaniu dowiedz się czym jest HTML.
    hint: językie...

  • Bardzo ciekawe (3)
    ( 2007-11-05 18:56)
    ~kaka9202

    Artykul bardzo dobry . Chcialbym sie dowiedziec od
    kiedy trzeba zaczac uczyc sie jezykow i czy tr...

    • Re: Bardzo ciekawe
      ( 2007-11-17 21:36)
      ~SasQ

      Nie czaje was, ludzie. Przecież uczymy się całe
      życie!
      "Za późno" to tylko wymówka. Dla k...

  • (OpenGL)W Windows jest nieco wolniejsza od DirectX
    ( 2007-11-08 14:47)
    ~crh

    niezgodze sie z tym ;o wszystko zalezy od
    sterownikow i sposobu w jaki zostala napisania
    aplikaci...

  • "Wiadomo, że programowanie w Pascalu nie ma
    ( 2007-11-08 13:29)
    ~SWI

    większego sensu pod Linuxem, ponieważ sam
    kompilator Pascala dla tego systemu ma bardzo
    duże ...

  • Programowanie (1)
    ( 2007-11-06 01:18)
    ~Mateusz Mierzwi...

    Dla niektórych również PHP nie jest językiem
    programowania. No i tu nasuwa się pytanie,
    czym...

    • Re: Programowanie
      ( 2007-11-08 11:05)
      ~Spaxio

      Jezykiem programowania mozna nazwac wszystko w
      czym da sie napisac jakis algorytm.

      Co do porow...

  • winda (1)
    ( 2007-11-05 16:05)
    ~hi

    Z tego wynika, że winda to pomyłka
    programistyczna skoro kod praktycznie jest
    dublowany w spos...

    • Re: winda
      ( 2007-11-06 06:30)
      ~Mateusz Mierzwinski

      Właściwie z Windows nie chodzi tutaj o sam kod.
      Chodzi o rozwiązania wprowadzane w innych syst...

  • Linux-? (5)
    ( 2007-11-05 10:13)
    ~iss

    "modułów Linux-a", "pod Linux-em"

    Modułów czego? Pod czym? Co to za nowy,
    tajemniczy produ...

    • Re: Linux-?
      ( 2007-11-06 01:23)
      ~Mateusz Mierzwi...

      Po pierwsze Linux lub Linuks jak wolisz, nie jest
      produktem. Jako projekt OpenSource nie jest ods...

  • Straszny staje sie swiat, gdy okazuje sie ze
    ( 2007-11-05 11:47)
    ~Evlinka

    nikt nie wiem czym jest Linux....
    Artykuł świetny, czekam i zachęcam na więcej
    takich!


Dodatki


Informacje dodatkowe