- Twitter - Why Scala?,
- Lift,
- fortress,
- specs,
- scalaz,
- scalax,
- és természetesen maga a fordító (2.x), eclipse, NetBeans, IDEA pluginek is.
Aki a következő változat tervezett újdonságaira kíváncsi, itt megtekintheti.
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
hat, kivancsi leszek a csutortoki Scalas eloadasra :)
meg a vegen kedvet kapok ;)
hm, elnezve, a JavaONE is telelesz Scala eloadasokkal.. :)
- A hozzászóláshoz be kell jelentkezni
Jól hangzik :)
Ha lesz egy kis időm, akkor beleásom magamat :)
"A fejlesztot azert fizetik, hogy oldja meg a problemat. Ez egy kemeny szakma." - Chain-Q
- A hozzászóláshoz be kell jelentkezni
Erről a Scala-ról van valakinek valami gyakorlati tapasztalata? Mit érdemes/lehet tudni a nyelvről, hova érdemes és hova nem érdemes használni, mennyire támogatott, sebességre milyen, stb.? Ilyesmikről tud valaki mesélni?
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
en ugyan csak lelkes amator vagyok maximum ha a Scalarol van szo, de ezis JVMben fut. a tamogatottsag tehat ugyanaz, mint a Javae. :)
- A hozzászóláshoz be kell jelentkezni
A topiknyitó által adott linkek valamelyikén találtam példa forráskódot. Meglepően hasonlít a Javara. No most én Javaban sem vagyok igazán jártas, ezért ha valaki magyarul is le tudná írni, hogy mi a lényegi különbség, talán sokunknak segítene vele.
Vagy egy egyszerű kérdés: Mikor használjunk Scalat Java helyett?
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)
- A hozzászóláshoz be kell jelentkezni
Ha Java annotációkat szeretnél készíteni, akkor mindenképp Java (ezt nem tartják elég fontos feladatnak, hisz van rá könnyű kerülőút: készítsd el Java-ban és használd gond nélkül* Scala-ban). Ha szeretnél multi-platform programot készíteni (ahol a két platform: .NET és JVM), akkor Scala (bár ekkor is lehet probléma, hogy a hozzá adott libet leginkább JVM-mel tesztelik, sok funkciónak eddig nem készült el a .NET-es portja).
A legszebb azonban, hogy szabadon variálhatod ezeket egy projekten belül is. Néhány dolgot körülményes leírni Java-ban? Szinte biztos, hogy ott van Scala-ban egy egyszerűbb formalizáció. (Már csak azért is, mert Java-val ellentétben itt van egész jó típus következtetés, így rábízhatod a fordítóra ezt a nem éppen produktív feladatot.) Nem ismered még kellően a Scala-t, szükséged van a lehető legoptimálisabb kódra (primitív típusok garantált használata, később erre ott lesz a @Specialized annotáció)? Ott van a Java.
Egyébként a szerintem a Scala legnagyobb erősségei:
- minta-illesztés
- libek
- szűrés és egyéb műveletek adatokon
- nagyszerű integráció a Java platformhoz
- típus következtetés - lehet káros is
- függvények egyszerű kezelése, változtathatatlan típusok preferálása - funkcionális programozás támogatása
- operátorok felüldefiniálhatóak, újak hozhatók létre - ezt is lehet túlzásba vinni
A Scala nem tetsző megoldásai:
- nincs kényszerített kivétel kezelés
- eclipse alatt a külső xml tagek köré ()-t kell tenni
- még nincs itt a 2.8.0 :)
Ha olyan kódot szeretnél látni, ami nem hasonlít a Java kódra, akkor tudom ajánlani a Scalaz projektet. Ott általában a maximumot kihozzák a nyelv funkcionális támogatásából. Egyébként a cél az volt, hogy Java/C# irányából is könnyen megközelíthető legyen (a Scala nyelv megalkotója egyben a Java generics kiötlője is), ugyanakkor az xml kezelés és a funkcionális programozás segítése is fontos szempont volt.
* Nem teljesen gond nélkül, nem lehetnek egymásba ágyazott annotációk, de 2.8.0-ra ez is el fog tűnni. Ez főként bonyolultabb EJB-k kezelésénél jelent gyakorlati problémát.
- A hozzászóláshoz be kell jelentkezni
Az egyik legszembeötlőbb különbség, hogy a típusok az azonosítók után vannak, nem pedig előtte. A generikus paramétereket [, ] közé kell tenni, nem pedig < > közé (hiszen utóbbinak az xml kezelésnél van szerepe). További hasznos újdonság a Java-hoz képest, hogy nem csak adat-, de típus-tagok is tartozhatnak az osztályokhoz, támogatott az implementáció öröklődése, a generikus paraméterekhez lehet adni ko- illetve kontra-variancia jelölést. Eléggé sűrű szintaxist követ (amihez hozzájárul a típus információk kikövetkeztetése is, de az implicit konverzió, implicit paraméterek, ... is).
A leglényegesebb különbség azonban, hogy átalakítja a használója gondolkodását. (Ha az SZTE-n szerez diplomát az ember, akkor jó eséllyel a funkcionális programozással kapcsolatos tapasztalatai meglehetősen hiányosak - persze lehet, hogy csak nem választottam megfelelő szakirányú tárgyakat.) Sokkal inkább törekedni fog utána is absztraktabb megoldások használatára, akár Java-ban, vagy C++-ban, C#-ban fejezi ki magát. Feltételezem, hogy hasonló hatása van az Ocaml, F#, Nemerle, Clojure, Haskell, LISP, ... kipróbálásának is.
Ha valaki Java irányából szeretne közelíteni, akkor ez egy jó kiinduló pont lehet.
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen a felvilágosítást.
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)
- A hozzászóláshoz be kell jelentkezni