( deje | 2022. 08. 17., sze – 11:22 )

Nagyon nehéz megbecsülni, hogy egy hatékonyabb, de kevésbé begyakorlott nyelven mennyivel változik a fejlesztési idő.

Van projektünk (nem csak egy), ahol eleve Kotlin-al indultunk úgy, hogy a fejlesztők is ezen a projekten tanulták (senior Java fejlesztők). Nem volt gond a nyelvvel, utólag visszatekintve (eredetileg is ezt becsültük) nem volt lassabb a haladás és nagyobb kockázat, mintha Java-ban csináltuk volna, sőt! Az egyetlen komoly nehézség a korutinok és az aszinkronitás elsajátítása volt, főleg, hogy még nem volt stabil az API, mikor elkezdtük :), de ez sem vetette vissza a projektet, mert ha más technológiával kellett volna megoldani, az sem lett volna egyszerűbb.

A fejlesztők egy része örült neki, hogy van lehetősége egy új nyelvet élesben tanulni. Másik (kisebb) részük ágált ellene, de hamar beleszoktak. Vannak fejlesztők, akiknek a programozás csak ugyanolyan munka, mint a futószalag mellett állni, nekik mindegy a nyelv, de biztosan ellenkezni fognak, ha változás jön. Mások szeretik élvezni, amit csinálnak, és szívesen kipróbálnak új és érdekes szerszámokat.

Nagyon sokat hallom, hogy "nem az ügyfél kontójára tanulunk!". Bocsi, de ha sosem tanulsz, lemaradsz. Ha nem ügyfél-projekten tanulsz, akkor mikor keresel pénzt, ha ebből élsz? El kell találni az egészséges arányt, másrészt nagyon fontosnak tartom, hogy legyen megfelelő tapasztalt szakember("kemény mag"), akik vezetni tudják a többieket, és minimálisra szorítani a kockázatot. Az ilyen embereknek viszont sokszor fontos az "intellektuális maszturbáció", jelentős motiváló tényező tud lenni, és ennek már bizony üzletileg is kimutatható eredménye lesz.

A Kotlin hatalmas előnye az, hogy csak a nyelv más, de a teljes ökoszisztéma ugyanaz marad, ráadásul 100%-ban kompatibilis Java-val. Olyannyira, hogy Kotlin-ban írt libek-classok simán használjatóak Java classokból, sőt, több projetet is láttam (és csináltam is), ahol vegyesen használják a két nyelvet. Más platformra (pl node.js-re) átírni az alkalmazást (vagy beletanulni egy új projektben) tényleg nagy rizikó, de a Java->Kotlin út sokkal zökkenőmentesebb.