Keresés

Új hozzászólás Aktív témák

  • ddekany

    veterán

    válasz cucka #5 üzenetére

    "Script" és statikus közt ma már talán inkább az a hangsúlyos, hogy mikor van valami gebaszott nagy kódbázis amit mindenféle jött-ment fejlesztő ír, akkor melyikkel lesz karbantarthatóbb a kód. Én dolgoztam valamennyit Pythonban meg PHP-ban, és sokkal többet Java-ban... Bele sem akarok gondolni, mi lenne, ha nem lenne ott a Java fordító ill. az Eclipse, aki kismillió hibát kiszúr helyettem, na meg főleg ledarálja a refaktorálások "agyatlan" részét, stb. Ilyen szintű tooling-ot dinamikusabb nyelvekhez lehetetlen csinálni. Aki persze nem tanult meg ezekkel élni, az nem érti, aki viszont igen, nem tudom hány tértek vissza jószántából dinamikus nyelvekre. Ruby-ra meg ilyen "szexi" dolgokra talán, na de PHP-ra...

  • ddekany

    veterán

    Ha már kitör a dinamikus (script) VS statikus nyelv (vallási ;]) háború tisztán szakmai alapon, tehát hogy melyik a jobb megközelítés (meg mikor), akkor ott a bökkenő, hogy ez nem egyenlő a Java VS PHP háborúval. Azért nem, mert a Java egy közepszar statikus nyelv (értsd történelmi hozadék és buta C/C++-hiba-lemásolás van benne dögivel), a PHP meg egy - mondjuk jóindulattal - mára már középszar szintig felmászott dinamikus. Ha viszont a statikus nyelvek potenciáljára kíváncsi vki, akkor ott egy Scala vagy egy Ceylon vagy egy Kotlin, és mikor egy dinamikuséra akkor talán ott egy Ruby vagy valami egzotikus amiről nem is tudok. Ezek nem lettek mainstream-ek persze... OK, Ruby egy kicsit. Ja, és statikusok közül a C#-ot se hagyjuk ki, ami viszont mainstream és még így is eléggé alázza nyelvileg a Java-t.

    Az meg, hogy PHP-nél csak Ctrl+R, Java-nal 10 perc malmozés (és ált. nem a fordítás miatt, hanem amíg a giga-enterprise-atyaúristen újraindul, mert a fordítás pl. Eclipse alatt folyamatos tehát kb 1 sec késleltetésed ha van)... Ez is olyan, hogy a Java-nak ilyen megalomán/enterprise kultúrája van, de amúgy valójában ez nem annyira függ a statikusságtól mint egyesek hiszik. Ez sokkal inkább arról szól, hogy minden kérelem végén eldobok-e minden állapotot (ami nem DB stb) vagy sem. Pl. Java-ra (és Scala-ra) ott a Play! Framework, és láss csodát, Ctrl+R és nesze ott van amit legutóbb beírtál. Csak akarni kell, megy az, csak nem ez a tradició Java világban. (Meg ha teljesítményre mész, néha nem megy az, minden kérelemnél felépíteni a világegyetemet 0-ról.) De megfordíthatjuk, csinálj akármi dinamikus nyelvben sok kérelmet kiszolgáló objektumokat amik függenek egymástól, máris nem triviális újratölteni egy módosított osztályt. (Megjegyzem, ilyen azért van, ott van Java-ra a JRebel, ami kb. a hot swap csak ügyesebb.)

    Végül a mai statikus nyelvek már nem is statikusak. Java-ban ott reflection, anélkül a keretrendszerek 90%-a nem is létezhetne... A dinamikus nyelveknél meg egyre inkább rájönnek, hogy egy kis szigorúbb típusosság megérné...

    [ Szerkesztve ]

  • ddekany

    veterán

    válasz cucka #35 üzenetére

    Hát ezt valahogy ki kéne mérni, csak hát nem lenne egyszerű... konkrétan milyen projekt, melyik két nyelv, milyen minőségű fejlesztők, stb. Egy jó(!) dinamikus nyelv kifejezőbb mint egy jó statikus, viszont cserében a dinamikus nyelvben kevesebb hibát tudsz automatizáltan felfedezni (és ne csak a fordításra gondoljunk, hanem Findbugs, PMD szabályok), nagyobb rizikó és több munka refaktorálni (mindennapos kódszerkesztési eszközzé tud válni Java-ban, ha rájön vki az ízére). Onnantól kezdve hogy kiaknázod a dinamikusságot, az IDE és társai szükségszerűen elvesztik a fonalat, mert ha nem tennék, akkor azt elvileg írhattad volna egy kellőképpen okos statikus nyelven is. Sőt a fejlesztők is néha elvesztik, mert mikor már valami DSL-é változott át a program, akkor bár iszonyat kifejező, nem érti már kutya sem hogy mitől működik meg mitől nem. :)

    (Amúgy tooling területén, Python-ban Wing IDE-t használtam pár éve, ami fizetős és simán a legnagyobb tudásúak közt van, és hiába elég jó nyelv a Python és statikusak közt buta a Java, az IDE/tooling gond miatt állandóan visszasírtam utóbbit. Nagy méretű projectekről van szó persze. És ez még csak Java-val szemben volt.)

    [ Szerkesztve ]

Új hozzászólás Aktív témák