Scala hírek

 ( aborg | 2012. április 30., hétfő - 18:55 )

Néhány napos halasztás után ma kiadták a Scala nyelv (fordító, alapkönyvtár, stb.) 2.10 M3 mérföldkövét, több jelentős változtatással. Többek között ebben már elérhető a macro kezdeti prototípusa, így ha valaki JVM felett statikusan típusos nyelvvel szeretne Nemerle-szerűen metaprogramozni, akkor érdemes lehet megismerkednie vele.
Szintén ma jelent meg a ScalaIDE 2.0.1-es változata, több apró fejlesztéssel. (A szintén viszonylag friss 2.1 M1 tartalmazza már az új Scala Debugger prototípusát, így ez is hatékonyabb lesz a jövőben.) Természetesen az IntelliJ, NetBeans, emacs, vim plugineket továbbra is fejlesztik.
Nemrég lezárult a Scala Days 2012 nevű előadássorozat is, a videók elérhetők (lesznek), a SkillsMatter oldalán.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A Google igazán felkarolhatná a Scala nyelvet.

miert is ? sajat nyelve(ket) fejlesztenek, nem kell nekik scala.
twitter hasznalja, ok a legnagyobb kirakatcege a typesafe-nek.

ebben már elérhető a macro kezdeti prototípusa, így ha valaki JVM felett statikusan típusos nyelvvel szeretne Nemerle-szerűen metaprogramozni

Halvány lila gőzöm sincs, hogy mit jelent, de iszonyúan jól hangzik. :)

Ez azt jelenti hogy tudsz olyan alkalmazást írni, amit senki sem tud karbantartani vagy átvenni tőled mert fogalma sincs hogy egyáltalán micsoda.
Pótolhatatlan leszel :)

Ilyet már simán láttam Perl-ben vagy PHP-ban is, mivel 0 ilyen jellegű használható doksi érkezett az egyedi kódhoz.

Hat, ez a fajta makro ~1960 ota letezik, eloszor a Lisp csinalt ilyet, csak ott ugy hivtak, hogy REPL (read eval print loop).

Az a lenyeg, hogy egy sort meg a fordito/interpreter kiertekelese modosithatod AST szinten es generalhatsz akar teljesen mas kodot belole, a nyelvi elemeket megvaltoztathatod, stb.

Ez azt eredmenyezi, hogy DSL-eket (Domain Specific Language) lehet nevetsegesen konnyen es gyorsan gyartani, ezert a nagyobb Lisp programok mindenfele DSL + valami kommunikacios reteg elemekbol allnak ossze. Kerdes, hogy ez mennyire nyero egy statikus tipusrendszerrel rendelkezo nyelvnel.

Ize. LISP-ben is makronak hivjak ezt. A REPL az egy teljesen mas dolog, semmi koze nincs makrokhoz.

Hogy LISP mennyire mukodhet static typeal egyutt, az kiderulhet iden, a Typed Clojure GSoC project kapcsan peldaul.

--
|8]

En is azt mondtam, hogy makronak hivjak.

Es hogy a Lisp REPL teljesen mas dolog... azzal nem ertek egyet, mert a Lisp-fele read az, amiert az egesz makrozas mukodhet egyatalan. De nem akarok offtopic iranyba elmenni.

> > Hat, ez a fajta makro ~1960 ota letezik, eloszor a Lisp csinalt ilyet, csak ott ugy hivtak, hogy REPL (read eval print loop).
> En is azt mondtam, hogy makronak hivjak.

Nem. Azt mondtad, hogy LISP-ben REPL-nek hivtak.

> Es hogy a Lisp REPL teljesen mas dolog

A LISP REPL pontosan ugyanaz, mint a REPL mindenhol mashol: egy read-eval-print-loop.

> mert a Lisp-fele read az, amiert az egesz makrozas mukodhet egyatalan

A LISP Readerje az, ami miatt mukodhet. Nem a REPL.

--
|8]

Igazad van: rosszul, felreerthetoen fogalmaztam. A Lisp (read) az, ami miatt mukodhetnek a makrok, mert a kod adatszerkezetkent kezelheto.

> A LISP REPL pontosan ugyanaz, mint a REPL mindenhol mashol: egy read-eval-print-loop.

Azert ezt igy bator tett kijelenteni. Ha erdekel, errol itt olvashatsz bovebben.

"Hogy LISP mennyire mukodhet static typeal egyutt, az kiderulhet iden"

Qi és utódja a Shen (http://www.shenlanguage.org/) évek óta létezik, szintúgy a typed scheme ami most már typed racket (http://docs.racket-lang.org/ts-guide/index.html). Olyan "vadhajtásokról" nem is beszélve mint a Liskell (http://www.liskell.org/about). Lefogadom van még egy pár ilyesmi...

Kerdes, hogy ez mennyire nyero egy statikus tipusrendszerrel rendelkezo nyelvnel.

Teljesen. :)

Bocsi, lehet, hogy rossz pályát választottam. :) Igyekeztem azt kifejezni, hogy egyelőre csak bátrak használják (kezdeti prototípus), a JVM a Java virtuális gép akart lenni, a statikusan típusos nyelveket elég nehéz lehet röviden kifejezni, de mondjuk a típushibák nagy részét már fordításkor kiszűrik, a Nemerle egy prorgamozási nyelv .NET-hez, a metaprogramozás pedig mondjuk olyasmi, hogy még fordítás időben elvégzel módosításokat a kódodon, majd folytatod a fordítást. (És mindez együtt a Scala Macros. Scalaban eddig is lehetett hasonlót művelni, de ahhoz fordító plugint kellett írni, mostantól az ilyesmi egyszerűbb lehet. A kezdeti változat azért még nem tud mindent amit terveznek, például ha az F# 3.0 féle type providert szeretnéd makrókkal megoldani, az ezzel nem fog még menni.)
A többieknek egyébként azt hiszem jobb munkát végeztek a magyarázattal. (Nem véletlenül nem lettem tanár.) Mondjuk a REPL idekeverését nem teljesen értettem, de gondolom ez a dinamikus nyelvekkel kapcsolatos ismereteim hiányára vezethető vissza. (Elég ortogonálisnak érzem a kettőt.)

Jó, nem teljesen volt érthetetlen. De azért nem tagadhatod, hogy "jóra" sikerült a megfogalmazásod... :)

Akit érdekel ma megjelent a Scala IDE 2.1-M1 változata Scala 2.10-M3-mal.