( haspokember | 2015. 01. 27., k – 15:22 )

Sajnos nagy tevedesben vagy. Az egy dolog, hogy persze a legtobb nyelven ossze lehet adni kettot meg kettot, az eredmenyt el lehet tarolni egy valtozoban, es ki is lehet iratni (bar van, ahol meg ehhez is trukkozni kell -> lasd Haskell :)). Ha ezen a szinten szeretned az adott nyelvet programozni, akkor hajra, bar sok ertelmet nem latom (termeszetesen eltekintve a munka miatt kotelezove tett programozastol).

Viszont ha elkezdesz Scalat tanulni, akkor nagyon-nagyon hamar belefutsz azokba a konstrukciokba, amikkel nem nagyon tudsz mit kezdeni majd ilyen hozzaallassal. Eleve, a teljes scalas collection library alapertelmezesben immutable, de mondjuk ebbol a csapdabol meg gyorsan ki lehet csusszani, ha rajossz, hogy vannak mutable collectionok is (vagy hasznalod a javas osztalyokat). De mar az oop reszen felhuzod a szemoldokod: mi a fenenek kulon tipus arra az osztalyra, amibol nem lehet leszarmazni (case class)? Micsoda marha volt, aki kitalalta, bezzeg a Javaban ott a final kulcsszo, ezeknek ez nem volt eleg. Vagy probalsz megirni egy for ciklust: eleve nagyon furcsa a szerkezete, a yield-nel meg esetleg eszedbe jutnak a pythonos generatorok, es karomkodsz, hogy miert kell ezt megint igy tulbonyolitani.

Aztan elkezdesz konyvtari funkciokat hasznalni: az Option class meg csak-csak (elvegre a 8-as Javaba is bekerult, valamire biztosan jo), de mi az, hogy van map metodusa? Es mit keres a for ciklusban? A Future/Promise parosnal feladod, ha egyaltalan eljutsz idaig.

Mas kodjat persze sosem leszel kepes olvasni, a barataidnak pedig korbekuldozgeted az erdekesebb Scalaz peldakodokat, amikben egy oldalon keresztul nincs is betu az angol abecebol. Mekkora bolcseszek ezek, mondod, sok idejuk lehet, az biztos. Kulonben is, olyan fuggvenyt irni, ami egy masik fuggvenyt ad vissza, hat nooormalis?

Amikor a Scalarol kerdeznek majd, a vallad vonogatod, hat igen, bonyolult a szintaxis, meg iszonyat lassu a fordito, raadasul refactoralni sem lehet, mert a kod teljesen olvashatatlan. Ez az evszazad atverese, az tuti. Es mindekozben a nyelv lehetosegeinek kb. 5 szazalekat lattad, es az 5 szazaleknak a felet sem ertetted meg. Talan ez a legnagyobb baj: nem is veszed eszre, hogy mennyi mindent nem veszel eszre.

Just FYI, been there, done that, got the T-shirt: en meg halvanyan emlekszem arra, amikor Scalat tanultam (pedig engem kifejezetten erdekelt a funkcionalis programozas is), illetve frusztralt kollegak reakcioira, kulonosen az utolso bekezdesben emlitettekre (aztan gyorsan kiderult, hogy az illeto, aki kritizalta az olvashatatlan szintaxist, azt sem tudta, mi a reduce/fold - hat igy tenyleg nehez...)

Ezt szeretnem megsporolni neked, akkor mar tenyleg inkabb a Groovy, az amugy is olyan Ruby-szeru, konnyen emesztheto, nem okoz kulonosebb hasfajast. Just my 2c.

UI: meg egy onzo hatso szandekom is van, ugyanis ezzel a hozzaallassal nem fogsz idiomatikus scala kodot irni - ez addig nem baj, amig csak te reszeled a kododat, de ha barki masnak is hozza kell nyulnia, nagyon hosszu kormondatokban fog fogalmazni, es valoszinuleg nem csak te fogsz csuklani utana...