2011-11-23 6 views
17

Czy istnieje język, który jest kompilowany do kodu Java (nie kod bajtowy, ale Java .. więc nie ma Groovy, Scala, Jython, JRuby itp.)?Czy istnieje Coffcesscript dla Java? Innymi słowy X zostanie skompilowany do Javy

Innymi słowy, czy istnieje kodowanie kawy dla języka Java?

Jedną z głównych wad, które mam na Javie, jest to, że jest tak cholernie gadatliwy i że nie ma wielu dziedziczenia. Wydaje się rozsądne, że można po prostu wyczyścić składnię, dodawać mixy/cechy i zamknięcia za pomocą generowania kodu.

Tak, to nie jest eleganckie, ale robi to coffeescript.

+0

dzięki bogu java nie ma wiele dziedziczenia – mcabral

+0

@ mcabral Mam na myśli mixins lub cechy. Och i uwielbiam się powtarzać setki razy. Poważnie muszę używać AspectJ do utrzymania Java OOP DRY lub po prostu muszę wkleić kod w całym miejscu. –

+1

@mcabral: Wielokrotne dziedziczenie samo w sobie nie jest błędem. Sposób, w jaki C++ ją implementuje, nadał jej złą nazwę. Scala, na przykład, implementuje wielokrotne dziedziczenie poprawnie i nie ma problemu z przerażającym diamentem. – missingfaktor

Odpowiedz

27

Tak, Xtend. Jest to nowy język przedstawiony przez użytkowników Eclipse: http://www.eclipse.org/xtend/

Bez dziedziczenia wielokrotnego (to byłaby zasadnicza zmiana w semantykach Javy), ale dużo syntaktycznego cukru, tak jak w przypadku CoffeeScript.

wziąć również spojrzeć na Mirah: http://www.mirah.org/

+0

Wow, to jest świetne! +1 – thejh

+0

To jest fajne. Nadal uważam, że powinieneś być w stanie zrobić wiele dziedziczenia podobne do tego, jak mam to zrobić teraz w AspectJ (http://stackoverflow.com/q/7403617/318174). Wydaje się, że kodowanie MI powinno być łatwe. –

+0

Cóż, AspectJ nie kompiluje się do Javy, ściśle mówiąc. Naprawdę nie można zrobić AOP z czystym kodem Java (efektywnie). –

2

Jeśli myślisz o tym, coffeescript kompilacji do Javascript oznacza, że ​​można użyć coffeescript sobie jako języka Java. Przy użyciu najnowszego kodu CoffeeScript (1.1.3) może być konieczne użycie Rhino bezpośrednio, ponieważ powoduje on błąd implementacji JS w bieżącym jdk, ale poza tym dobrze jest używać skompilowanych plików js do interakcji z kodem Java. :)

+1

+1 Doskonały punkt. Jednak lubię statyczne pisanie nieco lepsze niż dynamiczne pisanie. –

2

Napisałem preprocesor plików tekstowych, które wprowadzają { s i } s tam, gdzie było wcięcie. Nazwałem go:

To jest dalekie stabilne, i to nie rozwiązuje kilka innych skrótów, które wskazują, że coffeescript oferuje, ale działa jako proof-of -pojęcie.

Powiązane problemy