Yet another JVM lang: Extend

141 views
Skip to first unread message

phil swenson

unread,
Nov 4, 2011, 6:41:16 PM11/4/11
to java...@googlegroups.com
http://www.eclipse.org/Xtext/xtend/

It looks quite cool to me.  But it's getting a bit crazy with the number of JVM languages being created.... I think some consolidation would be good.

Cédric Beust ♔

unread,
Nov 4, 2011, 9:44:12 PM11/4/11
to java...@googlegroups.com
This one has been around for a little while and it's tightly coupled with Xtext, as far as I know. Still, a neat language (and Xtext is very, very cool for quickly writing language editors will full support for completion, syntactic highlighting, etc...).

Actually, anyone who invents a language and who doesn't leverage Xtext to provide some quick and easy IDE support is crazy.

-- 
Cédric




On Fri, Nov 4, 2011 at 3:41 PM, phil swenson <phil.s...@gmail.com> wrote:
http://www.eclipse.org/Xtext/xtend/

It looks quite cool to me.  But it's getting a bit crazy with the number of JVM languages being created.... I think some consolidation would be good.

--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.

Jon Kiparsky

unread,
Nov 4, 2011, 10:16:45 PM11/4/11
to java...@googlegroups.com
If it's been around for more than a few weeks, how is it that nobody's proofread the documentation? Their sales job is very enthusiastic, but it woud be more convincing if they cared about it enough to read it over once. And when the reference documentation won't open (damaged pdf) I start wondering if they took more care with their code than they did with their presentation of it.

2011/11/4 Cédric Beust ♔ <ced...@beust.com>

Simon Ochsenreither

unread,
Nov 5, 2011, 12:17:11 PM11/5/11
to java...@googlegroups.com
for(month <- year2011)
  yetAnotherHalfAssedScalaImitation += 1

:-)

Blazej Bucko

unread,
Nov 7, 2011, 11:41:09 AM11/7/11
to java...@googlegroups.com
I don't understand one thing: Why, when new statically typed language
with closures comes up, scala community (I assume that Simon is scala
enthusiast :)) calls it "half assed scala imitation"? I don't see this
kind of attitude from Groovy community.

Is scala one and only language and we must shoot everything else?
Scala is great and all, but there are other great languages. Maybe
Xtend will be better. Or at least have better tools :)

Regards,
    Blazej Bucko

> --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.

> To view this discussion on the web visit
> https://groups.google.com/d/msg/javaposse/-/iJYIO_lxvV4J.

Josh Berry

unread,
Nov 7, 2011, 11:49:39 AM11/7/11
to java...@googlegroups.com
Just imagine how the folks that work on all of the wonderful languages
in .NET feel? :)

Though, I have felt some fatigue at the number of languages coming out
of Google. Seems that they stay willfully ignorant of what others are
working on at times. (The dart folks had never heard of coffeescript,
for example.)

Kevin Wright

unread,
Nov 7, 2011, 12:07:49 PM11/7/11
to java...@googlegroups.com
On 7 November 2011 16:41, Blazej Bucko <blazej...@gmail.com> wrote:
I don't understand one thing: Why, when new statically typed language
with closures comes up, scala community (I assume that Simon is scala
enthusiast :)) calls it "half assed scala imitation"? I don't see this
kind of attitude from Groovy community.

Because Groovy had significantly different goals, James wrote it to be a lightweight glue & scripting language that would support core Java work, not something that could realistically be considered a replacement or used anywhere that performance was at all important.

 
Is scala one and only language and we must shoot everything else?
Scala is great and all, but there are other great languages. Maybe
Xtend will be better. Or at least have better tools :)



"Tooling" means a great deal more than how friendly the Eclipse plugin is...

If I have to fire up half of the eclipse IDE in my Continuous Integration/Deployment server just to build the thing, and if I can't build it at the command line, and if I can't use Maven/Rake/Gradle/SBT/whatever with it, then I'm afraid I'm going to have to take any claims of "better tooling" with a particularly large grain of salt.

Ricky Clarkson

unread,
Nov 7, 2011, 11:44:11 AM11/7/11
to java...@googlegroups.com
Because they usually repeat the mistakes Scala and its users try to avoid.

I'm sure many would do the same but mentioning Java if a new language looked like Java but added goto and implicit conversions from object pointers to booleans.

Ricky Clarkson

unread,
Nov 7, 2011, 11:45:51 AM11/7/11
to java...@googlegroups.com
Xtend, incidentally, can be built with ant apparently. They're working on a howto.
From: Kevin Wright <kev.lee...@gmail.com>
Date: Mon, 7 Nov 2011 17:07:49 +0000
Subject: Re: [The Java Posse] Re: Yet another JVM lang: Extend



--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.

Cédric Beust ♔

unread,
Nov 7, 2011, 12:46:46 PM11/7/11
to java...@googlegroups.com

On Mon, Nov 7, 2011 at 8:44 AM, Ricky Clarkson <ricky.c...@gmail.com> wrote:
Because they usually repeat the mistakes Scala and its users try to avoid.

Every single language that comes out avoids certain mistakes and repeats certain others. Scala is no exception.

-- 
Cédric

Ricky Clarkson

unread,
Nov 7, 2011, 11:52:02 AM11/7/11
to java...@googlegroups.com
That's pretty much what I was trying to say. Groovy is a half-arsed Java imitation (to me), similarly Fantom->Scala, PHP->Perl, Ruby->(Smalltalk, Perl)
From: Cédric Beust ced...@beust.com
Date: Mon, 7 Nov 2011 09:46:46 -0800
Subject: Re: [The Java Posse] Re: Yet another JVM lang: Extend


Cédric Beust ♔

unread,
Nov 7, 2011, 1:20:13 PM11/7/11
to java...@googlegroups.com

On Mon, Nov 7, 2011 at 8:41 AM, Blazej Bucko <blazej...@gmail.com> wrote:
I don't see this kind of attitude from Groovy community.

It's a problem that has plagued Scala for a few years now, a very small minority of enthusiasts is turning off people from even trying Scala just because of the way they behave on mailing-lists and irc. Really odd, and I agree that I don't really see this happening in other language communities.

-- 
Cédric

Ricky Clarkson

unread,
Nov 7, 2011, 12:23:49 PM11/7/11
to java...@googlegroups.com
Can you name any besides Kevin Wright and Tony Morris?

From: Cédric Beust ced...@beust.com
Date: Mon, 7 Nov 2011 10:20:13 -0800
Subject: Re: [The Java Posse] Re: Yet another JVM lang: Extend


--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.

Blazej Bucko

unread,
Nov 7, 2011, 2:35:27 PM11/7/11
to java...@googlegroups.com
1. Can someone elaborate why Xtend is half-arsed Scala imitation? Some
examples? Argumentation? Valid points?
2. Some might say that Scala is half-arsed Smalltalk/Erlang/Clojure
imitation. As one old man said: "There's always a bigger fish."...

Regards,
    Blazej Bucko

Fabrizio Giudici

unread,
Nov 7, 2011, 2:46:43 PM11/7/11
to java...@googlegroups.com, Blazej Bucko
On Mon, 07 Nov 2011 20:35:27 +0100, Blazej Bucko <blazej...@gmail.com>
wrote:

> 1. Can someone elaborate why Xtend is half-arsed Scala imitation? Some
> examples? Argumentation? Valid points?
> 2. Some might say that Scala is half-arsed Smalltalk/Erlang/Clojure
> imitation. As one old man said: "There's always a bigger fish."...
>
> Regards,
> Blazej Bucko

My point of view is that Scala is packed with a lot of things. Too many,
for me. But Scala fans like them. Anything that is not as full of things
as Scala is clearly tagged as "half-arsed". It seems we're rather
discussing whether a language should be lightweight or heavyweight.


--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
fabrizio...@tidalwave.it
http://tidalwave.it - http://fabriziogiudici.it

Josh Berry

unread,
Nov 7, 2011, 2:55:33 PM11/7/11
to java...@googlegroups.com, Blazej Bucko
There is also the large possibility the comment was meant purely for
amusement purposes. What with the smiley and all.

Ricky Clarkson

unread,
Nov 7, 2011, 2:10:57 PM11/7/11
to java...@googlegroups.com
Just for reference, that's not my opinion. I won't be looking closer while I have to run Eclipse to compile it but like I said they're working on that.
-----Original Message-----
From: Blazej Bucko <blazej...@gmail.com>

clay

unread,
Nov 7, 2011, 5:04:35 PM11/7/11
to The Java Posse
The example of "closures" doesn't actually do any "closing" at all.
It's just an example of first class functions.
The mass conspiracy of confusing "closures" with first class functions
continues.
I'm shocked that this ignorance is so pervasive. Even language
designers don't know what a closure is?

Ricky Clarkson

unread,
Nov 7, 2011, 5:11:15 PM11/7/11
to java...@googlegroups.com
The example does appear to do some closing:


    p [
      for (arg : args)
        $(arg)
    ]
Otherwise, where does it get args from?
--
Skype: ricky_clarkson


martin

unread,
Nov 8, 2011, 2:56:09 AM11/8/11
to java...@googlegroups.com
Please don't generalize from one member to the community. I think that the remark was unfortunate. The introduction of several new languages on the JVM is a good thing, not something to be scoffed at.

Russel Winder

unread,
Nov 8, 2011, 3:23:38 AM11/8/11
to java...@googlegroups.com
On Mon, 2011-11-07 at 11:49 -0500, Josh Berry wrote:
[ . . . ]

> Though, I have felt some fatigue at the number of languages coming out
> of Google. Seems that they stay willfully ignorant of what others are
> working on at times. (The dart folks had never heard of coffeescript,
> for example.)

On interpretation might be that Google is so big and has so little
management reporting that works, that until the languages are announced
no-one in Google other than the development team knows about the work.

Another interpretation might be that Google is so afraid of all the
software patents lined up against it, that it protects itself by
requiring all language designers to not study the current languages
being developed in case they violate a patent and end up in court.

--
Russel.
=============================================================================
Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel...@ekiga.net
41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@russel.org.uk
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder

signature.asc

Russel Winder

unread,
Nov 8, 2011, 3:30:18 AM11/8/11
to java...@googlegroups.com
On Mon, 2011-11-07 at 17:07 +0000, Kevin Wright wrote:
[ . . . ]

> Because Groovy had significantly different goals, James wrote it to be a
> lightweight glue & scripting language that would support core Java work,
> not something that could realistically be considered a replacement or used
> anywhere that performance was at all important.

It seems that Groovy is veering rapidly to the optional typing camp
rather than dynamic typing camp (which it was already in of course ot
overloading wouldn't work. There is Groovy++ and the new Grumpy Mode in
the mainline Groovy.

Basically whatever James might have wanted in 2003, Groovy has moved on
and become something much more than it was.

You don't have to use Groovy, or even like it, but to hang an 8 year old
millstone around it seems a bit disingenuous.

[ . . . ]


> "Tooling" means a great deal more than how friendly the Eclipse plugin is...
>
> If I have to fire up half of the eclipse IDE in my Continuous
> Integration/Deployment server just to build the thing, and if I can't build
> it at the command line, and if I can't use Maven/Rake/Gradle/SBT/whatever
> with it, then I'm afraid I'm going to have to take any claims of "better
> tooling" with a particularly large grain of salt.

Indeed.

I wonder why it is that the Intellij IDEA SBT plugin always forces the
SBT window to be open and shown, none of the other tools do that, they
always revert to the last known state. If the SBT folk want to be taken
seriously they need to fix this.

signature.asc

Russel Winder

unread,
Nov 8, 2011, 3:33:35 AM11/8/11
to java...@googlegroups.com
On Mon, 2011-11-07 at 16:52 +0000, Ricky Clarkson wrote:
> That's pretty much what I was trying to say. Groovy is a half-arsed Java imitation (to me), similarly Fantom->Scala, PHP->Perl, Ruby->(Smalltalk, Perl)

Ricky,

If you are thinking of Groovy as a half-arsed Java imitation, you really
need to actually look at the two languages and compare them.

Interestingly isn't it Scala copying Fantom to be a language for the
CLR?

signature.asc

Ricky Clarkson

unread,
Nov 8, 2011, 3:03:57 AM11/8/11
to java...@googlegroups.com
That's what I did about 5 years ago. Perhaps something has changed since then but I believe int x = "hello" still compiles in Groovy.

Also, Scala's .NET compatibility predates Fantom so in order to copy it Martin must be even smarter than I thought.
-----Original Message-----
From: Russel Winder <rus...@russel.org.uk>
Sender: java...@googlegroups.com
Date: Tue, 08 Nov 2011 08:33:35
To: <java...@googlegroups.com>
Reply-To: java...@googlegroups.com
Subject: Re: [The Java Posse] Re: Yet another JVM lang: Extend

Blazej Bucko

unread,
Nov 8, 2011, 4:33:30 AM11/8/11
to java...@googlegroups.com
Hmm.. Maybe I should've said: someone from scala community. My bad :)

Regards,
    Blazej Bucko

> --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To view this discussion on the web visit

> https://groups.google.com/d/msg/javaposse/-/nCfAhanBOOwJ.

Paul King

unread,
Nov 8, 2011, 4:40:05 AM11/8/11
to java...@googlegroups.com
Yes,

int x = "hello"

obviously needs to compile but fail at runtime when in dynamic mode
(to cater for what would be somewhat dubious style of metaprogramming
in this case) and does indeed fail compilation in grumpy/static mode.

Cheers, Paul.

Ricky Clarkson

unread,
Nov 8, 2011, 4:13:20 AM11/8/11
to java...@googlegroups.com
Which mode would compile the majority of Groovy code?

Ricky Clarkson

unread,
Nov 8, 2011, 4:18:20 AM11/8/11
to java...@googlegroups.com
J
-----Original Message-----
From: Paul King <pa...@asert.com.au>
Sender: java...@googlegroups.com
Date: Tue, 8 Nov 2011 19:40:05

Paul King

unread,
Nov 8, 2011, 5:36:58 AM11/8/11
to java...@googlegroups.com
Well, 99% of the time people would get feedback (it would turn yellow
in their IDEs) at type time. You wouldn't wait until compile time to
get such feedback.

Cheers, Paul.

Ricky Clarkson

unread,
Nov 8, 2011, 4:41:21 AM11/8/11
to java...@googlegroups.com
One of the problems we face as developers is taking over projects written by people who ignored or disabled such warnings, or didn't even use the IDE that provides the warnings.

Every time you make an error into a warning someone will deal with it later.

Paul King

unread,
Nov 8, 2011, 6:06:14 AM11/8/11
to java...@googlegroups.com
On Tue, Nov 8, 2011 at 7:41 PM, Ricky Clarkson <ricky.c...@gmail.com> wrote:
> One of the problems we face as developers is taking over projects written by people who ignored or disabled such warnings, or didn't even use the IDE that provides the warnings.
>
> Every time you make an error into a warning someone will deal with it later.

Indeed, that is why things like CodeNarc (checkstyle equivalent) and
now Grumpy mode have been created and have enjoyed some
interest/popularity within the Groovy community. Of course, relying on
compilation alone is setting the bar fairly low. You would ideally
like tests, invariants, static and dynamic analysis tools etc. to be
in play - but agree with you that not all environments are ideal. Of
course, I have also seen the bad side of relying just on compilation -
people not understanding what some code does and just keep "hacking"
it until it compiles - then ship it once if compiles!

Cheers, Paul.

Ricky Clarkson

unread,
Nov 8, 2011, 5:56:53 AM11/8/11
to java...@googlegroups.com
Sure, you can write shabby code in any language.

However it's much easier to tell what the original intent was if the environment actually prevents certain classes of error.

Did the programmer mean to write int x = 123 or String x = "123"? For that case you should be able to tell frm the context but in more involved cases it might be difficult, or worse, some parts of code assume the value is one type and some another.

At this point this isn't specific to Groovy, for a dynamic language Groovy at least does something at runtime with type annotations, which is more than most do.

The real issue is that mediocre programmers can create a worse mess in a language that doesn't enforce types and maybe other restrictions than one that does.

I'm not elevating myself here, apart from some good practices regarding source control etc., I'm capable of making just as big a mess as anyone in a language I don't know properly.

A good example that doesn't relate to typing directly is thread-safety in GUI toolkits. Swing and WPF have the same requirement whereby you are required to use components on the event dispatch thread only. WPF goes some way to enforcing that by throwing an exception should you instantiate a component on the wrong thread.

Swing, on the other hand, just protests mildly in part of the documentation and occasionally displays corruption. This makes it much easier to build up a large codebase of mostly-working but fundamentally flawed GUI code.

Refactoring that isn't something I've seen the two MFs cover, and frankly it's really hard. That's why where you see 'freedom' I see 'to make a huge mess' in small print, and I personally would only use Groovy in dynamic mode as a teaching environment or for small programs that would not be expensive to rewrite without looking at the original code.

I hope the static mode catches on, and if it does I expect I'll look at Groovy again if Oracle repeats Sun's to-ing and fro-ing on lambdas.

Robert Casto

unread,
Nov 8, 2011, 9:05:27 AM11/8/11
to java...@googlegroups.com
Another explanation is Darwin.

While working at Amazon I noticed there were multiple teams working on the same problem. One would come up with the best solution and survive. The rest were disbanded and the team members had to find other teams to join.

It's not frugal by any means. And can seem wasteful. But it sure got some great solutions. A single team wouldn't have the competition to drive it. And the company would be placing its bets on that one team succeeding instead of 3 or 4.

So Google may be doing the same thing hoping that one of them succeeds. Sometimes the only way to know that is to get it out into the public and see what sticks. At Amazon almost everything is for internal use so they decide and disband the rest. At Google, many things are for external use as well as internal so we are probably seeing more of this.

Jon Kiparsky

unread,
Nov 8, 2011, 9:30:09 AM11/8/11
to java...@googlegroups.com
That's a nice approach, if you have the wherewithal to pull it off. I just wonder if there isn't a variation of the Peter Principle involved. Does this mean you're taking a team that's proven itself to be really great at developing a new solution, and putting it on maintenance duty? Or does this mean that only the successful team gets to move on as a whole to developing a new project?

--

Robert Casto

unread,
Nov 8, 2011, 10:20:40 AM11/8/11
to java...@googlegroups.com
The successful project survives. They continue developing it, improving it, and working together as a team. There is always maintenance of course, but many times that phase comes months later and some people will move on to more interesting projects. There's always something interesting to do. Some want to continue making improvements or have a passion for that type of project. 

Josh Berry

unread,
Nov 8, 2011, 10:36:01 AM11/8/11
to java...@googlegroups.com
That sounds a touch different than the hell that Yegge described.

I must say that at face value, I like the sound of that approach.
Sounds close to a management style I've always wondered why wasn't
used more.

Still not sure how to feel about it coming out of google, though.
There was a good perspective posted regarding the google reader stuff
the other day.
http://nick.typepad.com/blog/2011/11/the-long-term-failure-of-web-apis.html?cid=6a00d83451863669e2015436a131e0970c#comment-6a00d83451863669e2015436a131e0970c
I fear the same criticism applies to the languages and frameworks
they push, as well.

Russel Winder

unread,
Nov 9, 2011, 3:55:52 AM11/9/11
to java...@googlegroups.com
On Tue, 2011-11-08 at 08:03 +0000, Ricky Clarkson wrote:
> That's what I did about 5 years ago. Perhaps something has changed since then but I believe int x = "hello" still compiles in Groovy.

Still compiles, but fails at run time. This is to be expected since
Groovy is a run time typed language not a compile time typed language.
It is a dynamic language after all. Given there is Java to supply the
statically typed language to run on the JVM, in which the above
statement is illegal and caught at compile time, Groovy should not and
does not try to be a Java wannabee. Instead it provides a dynamic
symbiote to Java. This is as it should be.

> Also, Scala's .NET compatibility predates Fantom so in order to copy it Martin must be even smarter than I thought.

I did phrase my point as a question as I hadn't checked facts. If Scala
execution on .NET predates Fantom's then clearly Fantom as Scala
wannabee is a potential.

[ . . . ]

signature.asc

Russel Winder

unread,
Nov 9, 2011, 4:06:57 AM11/9/11
to java...@googlegroups.com
On Tue, 2011-11-08 at 10:56 +0000, Ricky Clarkson wrote:
[ . . . ]

>
> Did the programmer mean to write int x = 123 or String x = "123"? For
> that case you should be able to tell frm the context but in more
> involved cases it might be difficult, or worse, some parts of code
> assume the value is one type and some another.
>
> At this point this isn't specific to Groovy, for a dynamic language
> Groovy at least does something at runtime with type annotations, which
> is more than most do.
>
> The real issue is that mediocre programmers can create a worse mess in
> a language that doesn't enforce types and maybe other restrictions
> than one that does.

The real question here has nothing to do with Java, Groovy, static or
dynamic, it is to do with why organization continue to employ
sub-standard software developers, fail to train them to be competent,
and then expect to get top-quality software.

I agree that programming language is a tool and we should create and use
the best tools available. Static languages and dynamic languages are
different tools. We have to use them appropriately in the right
context.

I think demanding that programming language should hamstring the capable
to protect against the incompetent is to solve the wrong problem in the
wrong way.

[ . . . stuff on GUIs and event loops elided due to unqualified
agreement . . . ]

> I hope the static mode catches on, and if it does I expect I'll look
> at Groovy again if Oracle repeats Sun's to-ing and fro-ing on lambdas.

I am looking forward to Grumpy Mode in Groovy as well, not as a
protection mechanism, but as a new tool to expand capability.

If Oracle do not get lambdas into Java at the next main release then
Java really is headed for the scrap pile. Even C++ now has lambdas and
a data structures and threading system that can use them. Though it is
woefully lacking in actor and dataflow frameworks; asynchronous function
call and futures are great tools, but actors and dataflow make for less
complex and generally more correct and less buggy code. Fortunately
Anthony Williams is working on this -- but as this is a Java list...

signature.asc

Ricky Clarkson

unread,
Nov 21, 2011, 6:36:03 PM11/21/11
to java...@googlegroups.com
>> The real issue is that mediocre programmers can create a worse mess in
>> a language that doesn't enforce types and maybe other restrictions
>> than one that does.
>
> The real question here has nothing to do with Java, Groovy, static or
> dynamic, it is to do with why organization continue to employ
> sub-standard software developers, fail to train them to be competent,
> and then expect to get top-quality software.

Because they can and they don't know any better. I wish I'd written
my part a bit differently, because even a great programmer can make a
complete mess in an environment he's not familiar with.

> I think demanding that programming language should hamstring the capable
> to protect against the incompetent is to solve the wrong problem in the
> wrong way.

That's not what I said and I think you know that. Most if not all
protections you can give actually help good programmers to write
expressive code.

> If Oracle do not get lambdas into Java at the next main release then
> Java really is headed for the scrap pile.

I'd love to agree, but each 'industry programmer' who I meet who uses
C# for example doesn't really know what a lambda is apart from perhaps
that LINQ uses them. I think it'll take more than that to kill Java,
though perhaps it will lose some limbs (mobile, desktop, university
education).

Reply all
Reply to author
Forward
0 new messages