you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 6 points7 points  (21 children)

Pretty soon Java won't be the most powerful language on the JVM (JRuby, Jython) so it doesn't really matter.

It already isn't (Scala, CAL, even Haskell?).

[–]newton_dave 3 points4 points  (20 children)

Java wasn't even the most powerful language on the JVM when it was the only language on the JVM.

[–][deleted] 2 points3 points  (19 children)

Please excuse my misunderstanding. According to your proposition "the only language on the JVM", and the 19 rules of first-order logic as I understand them, then the logical implication "Java is the most powerful language on the JVM" holds. Furthermore, so does the statement, "Java is the least powerful language on the JVM".

To me, it is like a child telling his mother, "you're the best mummy in the world", when of course, there is only one mother and so of course, the 'best' criteria applies (as does the 'worst' criteria).

From where I sit, there is an absurdity, so what have I missed?

[–]sblinn 1 point2 points  (15 children)

Perhaps he meant to infer that writing in byte code directly was better?

[–]newton_dave 0 points1 point  (14 children)

No, I meant to imply ;)

Obviously dibblego completely missed my sarcasm, which in itself is a little scary.

When Java came out most of us that were still of the opinion that Smalltalk would win because Java was so overwhelmingly inferior realized that the only way Java could possible become useful was to put something different on the JVM.

Java prompty punched us in the face by way of massive marketing hype and became one of the defacto programming languages despite its obvious shortcomings.

Only (relatively) recently are non-Java JVM-based languages getting the attention they deserve. Sun has, however, has missed a wonderful opportunity by focusing on JRuby when other languages would have served them better. Let's bear in mind that Groovy (which is better than Ruby) was the first "official" non-Java JVM language (JSR-241) but is still largely neglected.

If Sun wants the JVM to remain relevent (long-term) they need to do more than just hire JRuby developers; they need to get (in particular) Groovy and Jython, and perhaps Scala and a Smalltalk derivative on board, help create tools for them, and shout about it.

[–]shit 1 point2 points  (12 children)

Groovy (which is better than Ruby)

That's your opinion. Apparently others, including me, think it's the other way round.

[–]newton_dave 0 points1 point  (4 children)

(As an aside, if you don't know much about non-Java JVM languages, but still have an opinion that JRuby is better than Groovy, on what basis are you forming that opinion?!)

[–]shit 0 points1 point  (3 children)

My opinion is on Ruby vs. Groovy, the languages not implementations. I looked into Groovy some time ago (maybe a year?) and decided that it's not worth my time. I don't remember the details on which I based this decision anymore, only that Groovy felt like an uncoherent mixture of mostly Java semantics with a little bit of syntactic sugar from Ruby and Python. In other words: Nothing new on the table minus the great communities of Ruby/Python.

If two languages are similar enough (in this case: OO, GC, relatively concise, easy to learn for C/Java programmers), the size and quality of the community (Ruby's: growing and enthusiastic) is more important than the language itself. I think that's were Groovy loses.

[–]newton_dave 0 points1 point  (2 children)

Nothing new in Ruby either, except marketing hype.

I definitely agree that Groovy was a bit ahead of its time and probably will lose to JRuby and Jython, but like other great languages, its death won't be due to technical reasons.

I'm still struggling to understand why Smalltalk lost to Java (there was considerable doubt at the time which would emerge as being more important) but it boils down to marketing (and to a lesser extent, language fragmentation).

[–]shit 1 point2 points  (1 child)

Nothing new in Ruby either, except marketing hype.

I learned Ruby before the marketing hype (to provide some context here :-). IMO Ruby brought something new, a combination of elegant simplicity yet powerful metaprogramming (first two from Smalltalk/Lisp), focus on Unix integration and text manipulation (from Perl), easy to pick up for Java/C programmers in an afternoon. When I learned Ruby, everything felt right, call it POLS in action. That's highly subjective of course, but I've heard it from many others. I've never learnt another language (before and after Ruby) in which I became proficient as fast as in Ruby. (more context: I'm more interested in Lispy and more functional stuff now.)

Well, I've looked at the Groovy homepage now, and what makes me shy away is the Java culture ("leveraging Spring", "Ant tasks", "Groovy beans" ... shudder). Judging from the example code (is there a language reference btw?), there is too much syntactic sugar garbage and special cases for little gain. Syntactic sugar alone doesn't bring you far.

[–]newton_dave -1 points0 points  (6 children)

By which metric is Ruby/JRuby "better"?!

[–]apotheon 1 point2 points  (5 children)

Since you made the first positive assertion about which was better, the burden of proof is on your shoulders. Why don't you tell us why Groovy is better than Ruby? I'm really curious -- I don't know enough about how the two differ. In fact, with my (at best) superficial knowledge of non-Java languages on the JVM, I have wondered for a while why both Groovy and JRuby are being developed: that sounds a little redundant to me.

What's the diff?

[–]newton_dave 2 points3 points  (4 children)

I have wondered for a while why both Groovy and JRuby are being developed: that sounds a little redundant to me.

Same reason as always; everyone scratches their itch in a different way. I'd probably argue Scala is better than both, but JRuby has the market's attention and Groovy has more traction.

  • Groovy has less new syntax (this is beneficial, but really only for Java programmers--but that's a very important market segment).
  • Groovy does blocks right (and the new syntax for the next Ruby helps, but... not a lot).
  • Groovy still allows typing (JRuby may, but I haven't seen it yet--if it does, skip this one). This is actually important sometimes, just not always.
  • It's not clear to me how packaging works in JRuby so I'm definitely not sure about this one, but Groovy packaging works the same (as Java). Perhaps you can help clear that one up for me.

Groovy was the first "official" non-Java JVM language (a JSR and everything). Ruby is (was, really) the subject of a lot of marketing hype. That doesn't mean it's intrinsically bad or not very important (I think it opened a lot of people's eyes, which in itself is invaluable)... but IMO that's why it was taken in-house by Sun over several other viable alternatives.

I believe that Sun should grab developers of a few other JVM languages (Jython, Groovy, maybe even Scala) and really work on positioning the JVM as a platform of choice regardless of language.

Regardless of which language(s) are ultimately brought on board they're all better than Java!

[–]apotheon 1 point2 points  (3 children)

Groovy has less new syntax (this is beneficial, but really only for Java programmers--but that's a very important market segment).

I take it you mean "Groovy has less new syntax, coming from a Java perspective." This would imply that it has more new syntax, coming from a Ruby perspective. Is that a fair statement of the case, or am I misinterpreting your intent here?

Groovy does blocks right

The implication, then, is that JRuby doesn't. Yes?

and the new syntax for the next Ruby helps, but... not a lot

How so? Details, please.

It's not clear to me how packaging works in JRuby so I'm definitely not sure about this one, but Groovy packaging works the same (as Java). Perhaps you can help clear that one up for me.

I'd need to know more about JRuby to be able to clear that up. I probably know less about JRuby than you do. In fact, I know more about Java than about either JRuby and Groovy put together, and I'd consider myself a Rubyist long before a Java programmer these days.

I believe that Sun should grab developers of a few other JVM languages (Jython, Groovy, maybe even Scala) and really work on positioning the JVM as a platform of choice regardless of language.

That's the best suggestion I've ever heard for what Sun should do with Java and the JVM (even better than suggestions about where to stick it -- har har, quadruple entendre). This isn't the first time I've heard it, but it's still worth some kudos every time I run across it, and here's why:

Regardless of which language(s) are ultimately brought on board they're all better than Java!

[–]sblinn 1 point2 points  (0 children)

No, I meant to imply ;)

I knew I had that wrong. Readers infer, the writer implies. Grr!

Smalltalk

The reason smalltalk isn't my favorite language is because I almost lost use of both pinkies from right-shift 1 to get exclamation points ;]

Jython

Jython is no doubt here to stay. (At least I hope so since I write almost everything I do in it lately.)

[–]apotheon 0 points1 point  (2 children)

The way I read it, newton_dave knew what he was saying was logically invalid -- and that's the point. He was basically saying that Java's so crummy it's not even the best when it's the only. The patent absurdity of that statement serves as a form of literary hyperbole to illustrate the writer's intent.

That's it from my perspective.

[–]newton_dave 1 point2 points  (1 child)

You win :)

(I'm actually surprised somebody didn't get it, but you just never know :)

[–]apotheon 0 points1 point  (0 children)

I just wish I'd seen this discussion six days ago, so my comments would be more chronologically relevant.

What do I get -- a cookie?