2008. május 10., szombat

Retrós

Évente egyszer meg kell tanulnom C++-ban gányolni (értsd: egyetemi szinvonalon programozni). Valahogy minden évben összebénázok magamnak valami ilyen tárgyat. A dologban az a vicc, hogy utána minden évben el is felejtem :-) Úgyhogy most szedegetem elő a dolgokat 7 évvel ezelöttről, akkor programoztam aktívan C++-ban. A régi rossz idők...
Néhány élmény:
  • Rettenetes reference-k után pointerekkel dolgozni. Nem annyira a garbage collector hiánya miatt, hanem mert állandóan azon kell gondolkodni, hogy amit most nézek az az objektum vagy egy pointer az objektumra. Ezzel kapcsolatban volt egy java.net-es poll.
  • A GCC hibaüzenetei gyakran elég félrevezetőek.
  • A namespace-k használata a java packagek után, hát nem túl barátságos.
  • Az IDE support jelképes. A Kdevelop szép, de a syntax highlighting-on kívül nem sokat tud adni a forráskód szerkesztéséhez, azt meg a VIM úgyis jobban tudja :-) Az eclipse C++ pluginja ezen a téren valamivel jobb, de sehol sincs a java pluginhoz képest.
    Végül visszatértem a régi jó vim + bash + make környezethez, az legaláb stabil.
  • Azzal sikerült megtréfálni, hogy nem dob ArrayOutOfBoundsExceptiont-t amikor túlcímezek egy tömböt :), sőt végre is hajtja, csak valamivel később dob egy hátast. Persze nem kell túlcímezni, meg ő honnan is tudná hogy túl lett címezve, de azért az nem mókás, amikor az ember keresi hogy vajon eddig hol túrhattott el valamit a memóriában.
  • A fordítási direktívák kivállóan alkalmasak az olvasó megtvesztésére :) remélem ilyen nem lesz soha java-ban.
  • Végülis én azért tértem át régen C++-ról java-ra, mert tetszett az, hogy mindenhez van szabványos API. JDBC, servlet, swing gui, ilyesmi...
  • A makefileok még egyszerűek, azt mindig is szerettem, de a gnu automake, autoconf, auto.* + m4 makrók káosza nálam mindig lerúgja a szíjjat. Ant, maven, és bármilyen java-ra írt build eszköz ehhez képest havaj.
Szóval kicsit olyan érzés az egész, mint újra felvenni a tegnapi zoknit.