O pehapowcu, który chciał zostać javowcem

Znowu zleciał prawie miesiąc od ostat­niego wpisu… Nie ozana­cza to oczy­wi­ście, że przez ten czas nic się nie działo. Wręcz prze­ciw­nie, a to za sprawą próby „wgry­zie­nia się” w Javę.

Na różnych mądrych forach wyczy­ta­łem, że PHP to właści­wie zabawka, a praw­dziwe progra­mo­wa­nie zaczyna się dopiero od Javy. Szkoda tylko, że niektó­rzy nie zauwa­żają, że „zabawki” typu Alle­gro napi­sane są w PHP. Dodat­kowo zachę­cony hasłem „write once, use every­where” zain­sta­lo­wa­łem sobie NetBe­ans na Ubuntu i „ruszy­łem z tym koksem”.

Co nowego zauwa­ży­łem w Javie z punktu widze­nia znajo­mo­ści wyłącz­nie PHP (nie liczę Logo, Basic a potem Turbo Pascal za dzieciaka):

  • Nie ma w Javie zmien­nych bez wcze­śniej­szego zade­kla­ro­wa­nia ich typu. Koniec ze zmienną będącą raz inte­ge­rem, a innym razem stringiem.
  • Koniec z funk­cjami zwra­ca­ją­cymi warto­ści ładnie w PHPDoc nazwane mixed, czyli jak wszystko fajnie poszło, to return true, jak niefaj­nie to false, a jak trochę fajnie to stringa.
  • Prze­cią­ża­nie metod to jest to czego mi brakuje w PHP. Wiele zadań progra­mi­stycz­nych dałoby się łatwo i szybko rozwią­zać gdyby można było prze­cią­żać metody (np. różne warianty konstruktora).
  • Tablice mają z góry usta­loną liczbę elemen­tów. Z drugiej strony mamy rozbu­do­wane imple­men­ta­cje kolek­cji typu List, SetMap (w których słabo się jesz­cze poru­szam na dzień dzisiejszy).
  • Cała nowa grupa zagad­nień (i angiel­skiego słow­nic­twa) w ogóle nie wystę­pu­ją­cych w PHP, czyli współ­bież­ność (problem dostępu wielu wątków do tych samych danych, zaklesz­cze­nia, wzorzec producent-konsument itd.)
  • Ciekawe rozwią­za­nie „niuan­si­ków OSowych”, np. w window­sach ścieżki dostępu tworzy się znakiem \ , a w unik­sach / . Wpisu­jąc File.pathSeparatorChar Java sama dobie­rze sobie odpo­wiedni znak.
  • Budowa inter­fejsu graficz­nego i jego opro­gra­mo­wy­wa­nie (nieźle rozwią­zane w NetBeans).
  • Wszystko jest obiek­tem i dzie­dzi­czy po Object!
  • Nie da się niechluj­nie pisać kodu :-) Towa­rzysz kompi­la­tor (to również nowość) od razu zgłosi, że mu się coś nie podoba.

Z punktu widze­nia czytel­nika tego bloga zapewne wygląda to tak jakbym zabie­rał się za wszystko tylko po łebkach. Może i trochę tak jest, że szybko się czymś nudzę, ale w tym przy­padku chodzi o czystą cieka­wość czy rzeczy­wi­ście „poważna Java” jest aż tak trudna do zrozu­mie­nia. Po miesiącu nauki stwier­dzam, że nie jest to takie trudne. Oczy­wi­ście mam tutaj na myśli same podstawy języka (bez tych tysięcy biblio­tek). Samo czyta­nie doku­men­ta­cji to już wyzwanie :-)

Podobne wpisy:

  1. Python okiem pehapowca
  2. Tuskowe orędzie i moje czcze domysły
  3. Nowe (bardzo dener­wu­jące) metody promocji
  4. Za co lubimy Gmail?

One comment

  • 28 października 2009 - 09:03 | Permalink

    Więk­szość tych „dziwów” wynika z tego że PHP to dyna­micz­nie typo­wany język, a Java nie.

    Na różnych mądrych forach wyczy­ta­łem, że PHP to właści­wie zabawka, a praw­dziwe progra­mo­wa­nie zaczyna się dopiero od Javy. Szkoda tylko, że niektó­rzy nie zauwa­żają, że “zabawki” typu Alle­gro napi­sane są w PHP.”

    Ehh…

  • Dodaj komentarz

    Twój adres e-mail nie zostanie opublikowany.

    Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <p> <pre lang="" line="" escaped=""> <q cite=""> <strike> <strong>