digitalmars.D - D for the JVM
- OlliP (9/9) Feb 26 2013 I'm quite serious here, no joking ... Make a version of D for the
- Adam Wilson (11/19) Feb 26 2013 Both the JVM and the CLR are unable to fully express D in their bytecode...
- Russel Winder (28/36) Feb 26 2013 We just went round this in great detail a few weeks ago, can I get you
- OlliP (10/15) Feb 27 2013 Well, Kotlin has the ability to generate Javascript. This could
- deadalnix (4/20) Mar 20 2013 Except scala, I'm not really a specialist. But clearly scala have
- Nick Sabalausky (13/16) Feb 27 2013 You've mentioned this before in another thread, and you've got me
- Russel Winder (39/58) Feb 27 2013 The lambda expressions and the default (aka defender) methods in
- Russel Winder (15/16) Feb 27 2013 [=E2=80=A6]
- Kagamin (3/5) Mar 21 2013 Interesting, can java into CTFE and compile-time code generation?
- Jacob Carlborg (6/7) Mar 22 2013 Scala supports AST macros and therefore also executing functions during
- Russel Winder (18/25) Mar 22 2013 Groovy also supports AST tranformations. Two of which are:
- Kagamin (7/7) Mar 22 2013 It's also somewhat wrong to pair D with C++. C++ can't bring
- Minas Mina (3/6) Mar 23 2013 What? That's clearly wrong. C++ is far more powerful than Java.
- Simen Kjaeraas (10/17) Mar 20 2013 I'm not entirely sure if that'd even be possible - some features of D
I'm quite serious here, no joking ... Make a version of D for the JVM and it'll be a big success for the language and a business case at the same time. So many Java developers are meanwhile really not amused anymore about the slow language development of problems from earlier premature decisions. The success of Scala, Groovy and JetBrains seeing a business case for Kotlin comes for a reason. -- Oliver
Feb 26 2013
On Tue, 26 Feb 2013 14:00:16 -0800, OlliP <jeti789 web.de> wrote:I'm quite serious here, no joking ... Make a version of D for the JVM and it'll be a big success for the language and a business case at the same time. So many Java developers are meanwhile really not amused ahead of Java and does not have to carry problems from earlier premature decisions. The success of Scala, Groovy and JetBrains seeing a business case for Kotlin comes for a reason. -- OliverBoth the JVM and the CLR are unable to fully express D in their bytecode. The CLR could do most things but Ranges/Slicing where ridiculously slow. The development never progressed much beyond that. Although, i've always wondered if it would be possible on a newer version of the CLR... -- Adam Wilson IRC: LightBender Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Feb 26 2013
On Tue, 2013-02-26 at 23:00 +0100, OlliP wrote:I'm quite serious here, no joking ... Make a version of D for the=20 JVM and it'll be a big success for the language and a business=20 case at the same time. So many Java developers are meanwhile=20 really not amused anymore about the slow language development of=20 problems from earlier premature decisions. The success of Scala,=20 Groovy and JetBrains seeing a business case for Kotlin comes for=20 a reason.We just went round this in great detail a few weeks ago, can I get you to check back in the mail logs first. I am not going to rehearse all the debate from back then and I hope I don't see a whole new thread covering all the same ground. The summary is that D on the JVM is like C++ or C on the JVM, a non-starter. The implied criticism of Java against other languages has some merit but that is a whole other debate, which we also had on this list a few weeks ago so no repeat. Summary is that Kotlin exists because JetBrains didn't want to use a dynamic language, Groovy, but this was before Groovy had strong static compilation; and Java 8 is a game changer that threatens Scala, and Kotlin. You missed out Ceylon from your list, it is threatened by Java 8 as well. Groovy has a role in partnership with Java 8 so is not threatened in the same sense. Exactly the opposite in reality due to is being a dynamic language with a static capability. 'Nuff said? --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Feb 26 2013
... Java 8 is a game changer that threatens Scala, and Kotlin.Well, Kotlin has the ability to generate Javascript. This could turn into a killer feature as Javascript is growing in importance, e.g. Node.js, html5+Javascript and the importance of Javascript for Web GUIs as such. I hope they can make it as the language IMHO is really well designed.You missed out Ceylon from your list, it is threatened by Java 8 as well.Ceylon is not made for interoperability with Java such as Groovy, Kotlin, Scala. I don't think they stand a chance if the Java eco system cannot be easily re-used. I don't understand what the Ceylon guys are thinking. -- Oliver
Feb 27 2013
On Wednesday, 27 February 2013 at 09:32:21 UTC, OlliP wrote:Except scala, I'm not really a specialist. But clearly scala have some very good bits in it and I'm sure it can stand by itself. See for instance the traits system.... Java 8 is a game changer that threatens Scala, and Kotlin.Well, Kotlin has the ability to generate Javascript. This could turn into a killer feature as Javascript is growing in importance, e.g. Node.js, html5+Javascript and the importance of Javascript for Web GUIs as such. I hope they can make it as the language IMHO is really well designed.You missed out Ceylon from your list, it is threatened by Java 8 as well.Ceylon is not made for interoperability with Java such as Groovy, Kotlin, Scala. I don't think they stand a chance if the Java eco system cannot be easily re-used. I don't understand what the Ceylon guys are thinking. -- Oliver
Mar 20 2013
On Wed, 27 Feb 2013 06:57:04 +0000 Russel Winder <russel winder.org.uk> wrote:and Java 8 is a game changer that threatens Scala, and Kotlin.You've mentioned this before in another thread, and you've got me curious: What aspect (or aspects) of Java 8 are there that make it a game-changer? You've obviously been keeping up on Java developments far, far more than I have (I've mostly been ignoring it since ~v5 when I jumped The lambdas/closures do indeed sound like a very big deal for Java (I can't help recalling the infamous old Sun whitepaper that attempted to show they were unnecessary ;) ). But is there more *really* significant stuff (I assume there is), or is that the main reason for Java 8's significance?
Feb 27 2013
On Wed, 2013-02-27 at 17:40 -0500, Nick Sabalausky wrote:On Wed, 27 Feb 2013 06:57:04 +0000 Russel Winder <russel winder.org.uk> wrote: =20The lambda expressions and the default (aka defender) methods in interfaces remove the need for the vast majority of anonymous classes. This isn't just a massive shortening of Java code, it is the introduction of functions as (almost) first class entities to the language. Lambda expressions are not simply shorthand for anonymous classes, that would be highly inefficient, the implementation of lambda expressions is in terms of method handles and invokedynamic. Add to this call site type inference and the system is really very neat. The real game changer is the move from always having explicit iteration to having internal iteration. OK so map, filter, reduce and the like have been around in languages wince 1957-ish generally and on the JVM for about 10 years with Groovy, Scala, etc. but to bring this to the major language, Java, changes the whole outlook for JVM-based programming =E2=80=94 if Java programmer update to Java 8 thinking. The real point is that this all makes data parallelism trivially easy for the programmer: stream.parallel() delivers up a stream that will be handled with maximum parallelism for the current platform. OK so it can be abused or misused, but it changes Java from what it was to something fit for the multicore world without programmers having to faff around with threads, locks, semaphores, monitors, and all the low-level stuff applications programmers have been forced to use for the last 50 years. =20 Why am I keeping up? I am involved with Groovy (http://groovy.codehaus.org) and especially GPars (http://gpars.codehsu.org). I am a member of The London Java Community (LJC) which has an elected seat on the JCP EC. I am also a bit associated with the JSR166 work. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winderand Java 8 is a game changer that threatens Scala, and Kotlin. =20=20 You've mentioned this before in another thread, and you've got me curious: What aspect (or aspects) of Java 8 are there that make it a game-changer? =20 You've obviously been keeping up on Java developments far, far more than I have (I've mostly been ignoring it since ~v5 when I jumped The lambdas/closures do indeed sound like a very big deal for Java (I can't help recalling the infamous old Sun whitepaper that attempted to show they were unnecessary ;) ). But is there more *really* significant stuff (I assume there is), or is that the main reason for Java 8's significance?
Feb 27 2013
On Thu, 2013-02-28 at 06:48 +0000, Russel Winder wrote: [=E2=80=A6](http://gpars.codehsu.org). I am a member of The London Java Community[=E2=80=A6] The GPars URL is, of course, http://gpars.codehaus.org, not what is above. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Feb 27 2013
On Wednesday, 27 February 2013 at 06:57:16 UTC, Russel Winder wrote:The summary is that D on the JVM is like C++ or C on the JVM, a non-starter.Interesting, can java into CTFE and compile-time code generation?
Mar 21 2013
On 2013-03-21 23:20, Kagamin wrote:Interesting, can java into CTFE and compile-time code generation?Scala supports AST macros and therefore also executing functions during compile time. I guess they just invoke a new instance of the compiler during compile time. -- /Jacob Carlborg
Mar 22 2013
On Fri, 2013-03-22 at 08:36 +0100, Jacob Carlborg wrote:On 2013-03-21 23:20, Kagamin wrote: =20=20Interesting, can java into CTFE and compile-time code generation?=20 Scala supports AST macros and therefore also executing functions during=compile time. I guess they just invoke a new instance of the compiler=20 during compile time.Groovy also supports AST tranformations. Two of which are: TypeChecked CompileStatic so as to make Groovy a dynamic language which can have static type checked bits and full static compiled bits. I am not sure that C=C3=A9dric has realized CTFE, I will ask. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 22 2013
It's also somewhat wrong to pair D with C++. C++ can't bring anything new to JVM because as a language it's not more powerful than Java, it's just native - and that feature gives no advantage on a virtual machine, because native features will not work there and thus should be discarded. On the other hand D has not only native but also some cross-platform features like scope guard, so it's not like C++: C++ can't compete with java on JVM, D can.
Mar 22 2013
On Friday, 22 March 2013 at 17:32:19 UTC, Kagamin wrote:It's also somewhat wrong to pair D with C++. C++ can't bring anything new to JVM because as a language it's not more powerful than Java, ...What? That's clearly wrong. C++ is far more powerful than Java. One example is templates - java has generics, not templates.
Mar 23 2013
On 2013-02-26, 23:00, OlliP wrote:I'm quite serious here, no joking ... Make a version of D for the JVM and it'll be a big success for the language and a business case at the same time. So many Java developers are meanwhile really not amused ahead of Java and does not have to carry problems from earlier premature decisions. The success of Scala, Groovy and JetBrains seeing a business case for Kotlin comes for a reason.I'm not entirely sure if that'd even be possible - some features of D might be impossible to do on the JVM (uints and the like come to mind, other examples probably exist. Not sure if workarounds exist). A bigger problem in the short term is finding someone to do this. Walter is kinda busy with DMD, while LDC and GDC have rather limited teams mostly just playing catch up with DMD. If you want to do it, go ahead. It's sure to be a challenging and interesting project. -- Simen
Mar 20 2013