Több mint húsz év telt el azóta, hogy a Netscape Communications kijött a JavaScript (JS)-tel. Kezdetben, a statikus weboldalak idején még csak amolyan „mórickás” volt: jelentéktelen kiegészítő eszköznek tartották, amely olyan kaliberű feladatokat oldott meg, mint a háttér színének megváltoztatása vagy egy-egy ablak „felugratása”. Később, a fogyasztói igények növekedésével aztán megérkeztek a felhasználói élményt (user experience – UX) növelő megoldások, amelyek révén a weboldalak letisztultabbak, funkcionalitás tekintetében pedig szofisztikáltabbak lettek. Ekkoriban értékelődött fel a JS szerepe. Mind nagyobb komplexitású alkalmazásokat kezdtek el vele építeni. Ma pedig már ott tartunk, hogy a webes oldalak jelentős része ezzel fut – a kis webshopoktól a legnagyobb közösségi hálókon át a tudomány sok területéig.
Ennek nyomán persze megnőttek a kódok méretei is – és itt álljunk is meg egy pillanatra.
Képzeljünk el egy szótárat, amely egy nyelv szavait tartalmazza. A könnyebb eligazodás kedvéért az igéket vastagon szedi, a főneveket pedig aláhúzza – azaz szófajonként használ valamilyen megkülönböztető jelölést. Könnyű benne megtalálni egy-egy kifejezést? Nos, nem igazán. Az eltérő betűtípus segít egy picit, de minthogy kizárólag fekete betűket tartalmaz, egy pillanat alatt átfutva egy oldalpárt, aligha talál oda automatikusan a szem a keresett szóra.
A JS nyelv szókincse, azaz a kódbázis némiképp hasonló logika szerint tagolódik. Van egy kis segítség a szófajok – típusok – beazonosításában, de érdemi támogatást nem kapnak a fejlesztők. Erre mondjuk, hogy a gyengén típusos nyelvek közé tartozik.
Amikor tehát a JS alkalmazási területe – és ezáltal a használt kódbázis – szélesedett, ez a gyenge típusosság időigényesebbé tette a fejlesztők munkáját. Amikor ugyanis sok, akár több tízezer soros, bonyolult alkalmazások kódjának szövegezésében nem jelennek meg a típusok, a fejlesztő csak egy rendkívül absztrakt, semmitmondó adatokból álló „szöveget” lát. Márpedig ebből nehéz dolgoznia. Minél nagyobb a kódbázis, annál problémásabb a hibátlan értelmezés. Két választása lehet: vagy tudja fejből értelmezni – ez komplexebb alkalmazásoknál persze nem jellemző – vagy dokumentációt csinál magának (és társainak) róla. Utóbbi megint csak időigényes, és bár sok esetben szükséges, de fejlesztés közben nem a leghatékonyabb módszer.
Nincs más megoldás? De igen! Az egyik lehetőség erre a TypeScript (TS).
Ez a nyelv szuperszettje a JS-nek: más programnyelvekből behoz már ismert típusokat és alkalmazható módszertanokat. Programozás közben pontosan tudja, hogy a kódnak melyik pontjával dolgozik éppen, nem kell találgatnia, próbálkoznia, dokumentációt olvasnia hozzá. A szótáras metaforánál maradva, most már nem vastagítás és aláhúzás segít, hanem színes szövegkiemelők: ha sárga, akkor ige, ha piros, akkor számnév. A TS egyszerűbb esetekben is alkalmazható, de igazán a problémásabb kódbázisok okán született. Olyan projektek esetén segítség igazán, amelyeken több ember dolgozik egyszerre, gyakori konzultációt igénylő feladatok megoldásán.
Minthogy kódolás közben folyamatosan meg kell adni a típusokat – használni kell a „szövegkiemelőt” – a munka némiképp lassabb, mintha gyengén típusos programnyelvet használnának. Ám később a befektetett idő megtérül: kevesebb hibalehetőséget rejt a kész program, fenntarthatóbb, tartósabb, használata problémamentesebb lesz. Mint ahogyan ezer szót megtanulni egy idegen nyelven tovább tart, mint húszat, ám mennyivel könnyebben boldogul aztán az ember a megszerzett tudásával!
TS-t ma még kevesebben használnak, mint JS-t. Ám mi, itt a BlackBeltnél nagyon fontosnak tartjuk az új kollégák támogatását, segítségünkkel hamar elsajátítható e programnyelv használata.
Meggyőződésünk, hogy megéri.
Egyfelől, mert a Microsoft áll mögötte, ez szakmai garanciát, folyamatos fejlesztést és bővülő eszköztámogatottságot jelent. Olyan eszközökét, amelyek meggyorsítják a programozást és redukálják a hibalehetőségeket. A JS-hez kapcsolódó eszközök messze nem ilyen hatékonyak.
S hogy mit jelent mindez az ügyfél szempontjából?
Ahogy azt már említettem, a TS révén stabilabb alappal, biztosabb működéssel kell számolni. A program segítségével kisebb a valószínűsége annak, hogy hibát ejtenek a fejlesztők. Ha mégis becsúszna, később azokat gyorsabban és könnyebben lehet korrigálni.
A TS kód egyébként, amit a fejlesztők használnak, egy fordítási eljárással átalakul JS-be. Azaz: magyarul írom a könyvem, mert ezen a nyelven tudom magam igazán szabatosan kifejezni, de angol a célközönségem, ezért lefordíttatom. Mivel a fordító a TypeScript forráskódból JavaScript kódot generál, a program bármely JavaScript futtatására alkalmas böngészőben vagy akár a szerver oldalon is működni fog. Nincs szükség külső programra vagy plugin telepítésére.
Mindezeket figyelemben véve tapasztalataink szerint nagyobb vagy bonyolultabb projektek esetén a TS a kézenfekvő megoldás.
S nemcsak mi gondoljuk így: az alábbi grafikon a TS iránti megnövekedett érdeklődést mutatja:
Móricka nagykorú lett.