2015. november 9., hétfő

kotlin 1.0-majdnem

A kotlin programnyelv közelít az 1.0 kiadáshoz és érezhetően nő az érdeklődés körülötte, gondoltam pár további tapsztalatot megosztanék arról, hogy hogyan alakult a történet az utóbbi hónapokban.

Kezdjük mondjuk azzal, hogy a fejlesztők néha felvetettek egy-egy kérdést fórumra blogra és így az aktív felhasználói közösség részt vehetett a kotlin nyelv alakításában. Ez szimpi.

Ennek keretében szinte utolsó elötti húzásként kötelezővé tették az annotációk elötti kukacot. Lehetett mindent telekukacolni. Szintén viszonylag nemrég kicsit lazítottak a nullpointer védelmen és már nem kell mindenhova !!-t meg ?-t írni, ha java kódot hív az ember.

Főleg az utóbbi pár hónapban a fejlesztők kidobtak egy csomó deprecated funkciót és jópár másikat pedig átneveztek. Ennek következtében elég sok időt rá kellett szánni a migrációkra. Erre számítnia kell annak, aki 1.0 elötti programnyelvet használ.

A compiler nem igazán lett gyorsabb, de végre feltalálták az inkrementális fordítót és az ideába integráltak egy fordító démont, ez kicsit segít a problémán.

Szerintem továbbra is elég kedvetlenül támogatják a maven felhasználókat, a gradle-t sokkal inkáb. A maven compiler például annyira kevéssel gyorsul a második fordítás során, hogy az simán lehet mérési hiba, szerintem egyszerűen csak nem működik az incremental compiler mavenben és kész. Az is ide tartozik például, hogy a régi dokumentációs eszköz, a kdoc soha nem kapott működő maven plugint, az új dokumentációs eszköz a dokka pedig még mindig nem elérhető a maven centralból. Na jó, szóval a másik kevésbé-siker-sztori a dokumentáció generálás.

A bytecode idáig minden release körül változott. Ez azt jelenti, hogy a kotlin 0.11-el lefordított library nem működött kotlin 0.12-vel. Ennek ellenére léteznek kifejezetten kotlin-hoz írt libraryk:
  • A jackson-hoz van egy kotlin modul, ami a kotlin data osztályait segít JSON-ba és vissza alakítani.
  • A kovenant egy kotlin framework Future ojjektumok köré
  • Quasar - actor és satöbbi library kotlinhoz. Olyan mint az akka scala-hoz.
Szóval legalább ez a néhány népszerű fejlesztő csapat rendszeresen adott ki frissítést a kotlin verziók megjelenése utáni napokban vagy általában inkáb órákban. Szép tőlük.

Elvileg a legutóbbi beta kiadással lezárták a módosításokat és mostantól kezdve igyekeznek majd kompatibilisek lenni.

Az IDE támogatás mint az egy IDE fejlesztő cégtől elvárható, elég kellemes volt idáig. Mondjuk nem érzem magam másodosztályú IDEA felhasználónak egy java fejlesztőhöz képest. Engem kicsit bosszantott, hogy minden új kotlin release-hez egy új IDEA verziót is be kell szereznem, mert a régivel már nem műxik a plugin. Nagyon sok időt nem kellett ezen elszúrnom, de minden alkalommal egy fél óra nekem az már sok. Az új IDEA-ba már alapból benne van a kotlin, remélem így kényelmesebb lesz.
Határozottan örülök neki, hogy lassan szobatisztává válik a kotlin, egy egész használható dolgot kapunk, de azért még van egy hosszú listám arról, hogy mit szeretnék kapni. Jön a karácsony :)
  • Valami olyasmi, mint a PMD java-ban igazán hasznos lenne kotlin-hoz
  • Sonar plugint!
  • gyorsabb compilert
  • több valamit, kevesebb semmit