Slashdot Mirror


Sun Backs Ruby by Hiring Main JRuby Developers

pate writes "Sun has thrown some corporate weight behind Ruby, Rails, and dynamic languages by hiring the two main JRuby developers, Charles Nutter and Thomas Enebo. Charles posted about jruby stepping into Sun on his blog, and Thomas posted his take too. Tim Bray, who started the ball rolling posted about the JRuby Love."

211 comments

  1. Great News by RAMMS+EIN · · Score: 5, Interesting

    This is great news for several reasons.

    First, and most importantly, because Sun is now throwing its weight behind Ruby, which is a wonderful language. It does have its quirks (some weird syntax and the schizophrenia between procs and blocks), but it's still one of the better languages out there. Easy to write and understand, powerful, and succinct.

    Secondly, because Sun is supporting JRuby, which is an alternate implementation of the language. This will put pressure on the language designers to spell out the language in a clear specification, rather than referring to some implementation for knowledge of how things work. One of the benefits of this is that it will cause features to be thought and debated about more, which I believe results in cleaner, nicer languages.

    Thirdly, because the JRuby folks seem to have the plan to develop a compiler. This could lead to Ruby's run-time performance increasing enormously, widening the scope of the language to tasks that current Ruby implementations are simply too slow for (you can extend Ruby programs in C and JRuby programs in Java, but it would be preferable if one didn't need to).

    Fourthly, because there is just a slight chance that Sun will decide to make the JVM more flexible and amenable to languages other than Java. Right now, the operations that the JVM supports are very much tied to the features of Java. Implementing some more flexible primitives would benefit not only JRuby, but also about any other language that targets the JVM, and make the Java platform more competitive with .NET.

    --
    Please correct me if I got my facts wrong.
    1. Re:Great News by FyRE666 · · Score: 1

      I've been looking at Ruby myself lately with a view to trying to get it used in some skunkware projects at my work. I like the language itself, but it is very slow. Much as I hope it'll succeed, I can't see running Ruby in the JVM making the performance situation any better.

      BTW, any project with a lead developer named "Charles Nutter" deserves respect!!

    2. Re:Great News by Ougarou · · Score: 1

      If now, with .NET, this is the first time that Sun is thinking about adding other language compilers for their bytecode then they are way to late.
      Although I wouldn't be supprised if this is Suns' response to the .NET hype, I don't think they will ever be able to top the .NET support already there. If they think this is competing with .NET, it's to little, to late.
      More probable: Sun is going to add Ruby on rails to their JSP system, which is probably the only way they kan add anything to anything. They won't get anywhere with thinking they can compete with .NET features.

    3. Re:Great News by chthon · · Score: 2, Funny

      A fast Ruby with a compiler is called Common Lisp.

    4. Re:Great News by chthon · · Score: 1

      I should have added ;-)

    5. Re:Great News by leonmergen · · Score: 1

      Fourthly, because there is just a slight chance that Sun will decide to make the JVM more flexible and amenable to languages other than Java. Right now, the operations that the JVM supports are very much tied to the features of Java. Implementing some more flexible primitives would benefit not only JRuby, but also about any other language that targets the JVM, and make the Java platform more competitive with .NET.

      I think this mainly means adjusting the assembler of Ruby to output code that can be understood by, for example, Jasmin, rather than making the JVM understand instructions which are ruby-specific. You don't need to make a different instruction set for a virtual machine when you want to support multiple languages, just like you don't need to make a different instruction set for a processor to be able to run, say, Visual Basic executables or C++ executables. It's just a matter of a compiler needing to translate to the right instructions.

      --
      - Leon Mergen
      http://www.solatis.com
    6. Re:Great News by TheRaven64 · · Score: 2, Informative

      I found Ruby semantics to be closer to Smalltalk than CLISP. Of course, the nice thing about Smalltalk and CLISP is that it is very easy to implement one on top of the other. And yes, most Smalltalk VMs are faster than Ruby. And the Smalltalk syntax is clearer than Ruby. Uh, why are people using Ruby, exactly?

      --
      I am TheRaven on Soylent News
    7. Re:Great News by LarsWestergren · · Score: 2, Informative

      The JRuby folk can also help iron out bugs in the JDK/JRE which inderectly benefit all Java developers/users. Also this will hopefully ease off the preassure to include everyones' favourite feature X into Java, something that in my opinion is threatening to turn Java into an even bigger mess than C++ (you know, an octopus created by nailing extra legs on a dog).

      Fourthly, because there is just a slight chance that Sun will decide to make the JVM more flexible and amenable to languages other than Java.

      JSR 223, a framework for "allowing scripting language programs to access information developed in the Java Platform and allowing scripting language pages to be used in Java Server-side Applications" has been kicking around at least since 2003 and is included in the upcoming JDK6 which comes with the Rhino JavaScript engine included. Other scripting people like JPython and Groovy have done great work (from what I understand, I'm not a fan of dymanic languages myself).

      Good that this was finally posted on Slashdot, I was a bit peeved when my submission was rejected.

      --

      Being bitter is drinking poison and hoping someone else will die

    8. Re:Great News by Per+Wigren · · Score: 4, Interesting

      The language itself isn't slow, the current interpreter is.

      The solution is YARV (Yet Another Ruby VM) which will be the official Ruby VM in v2.0. Ruby 2.0 (thanks to YARV) will have JIT and a superfast optimizer. You can get a (very buggy) pre-beta version from SVN right now. Benchmarks show that it will be about as fast as Java and .NET in most situations. Slower in some situations, faster in some.

      --
      My other account has a 3-digit UID.
    9. Re:Great News by RAMMS+EIN · · Score: 1

      ``I like the language itself, but it is very slow. Much as I hope it'll succeed, I can't see running Ruby in the JVM making the performance situation any better.''

      I don't know why you would think that. Ruby is very young yet, and not a lot of effort has gone into making it run fast. Even if the JVM introduces a bit of a slow down compared to native executables (which is a topic of heated debate), it's entirely possible that a JVM implementation of it will outperform the current, slow C implementation.

      --
      Please correct me if I got my facts wrong.
    10. Re:Great News by RAMMS+EIN · · Score: 1

      ``You don't need to make a different instruction set for a virtual machine when you want to support multiple languages, just like you don't need to make a different instruction set for a processor to be able to run, say, Visual Basic executables or C++ executables. It's just a matter of a compiler needing to translate to the right instructions.''

      Of course, and I didn't say that Ruby _can't_ be made to compile to JVM bytecode, I just said that the JVM bytecode is very much tied to Java. If you look at the specifications, for example, you will see that there are lots of references to Java's type system, and high-level support for Java's methods and calling conventions, without low-level primitives that could be used to implement, say, closures and proper tail calls efficiently.

      --
      Please correct me if I got my facts wrong.
    11. Re:Great News by LarsWestergren · · Score: 3, Insightful

      If now, with .NET, this is the first time that Sun is thinking about adding other language compilers for their bytecode then they are way to late.

      Two seconds of Googling could have told you that the JVM has supported more languages than .net for a long time.

      I don't think they will ever be able to top the .NET support already there. If they think this is competing with .NET, it's to little, to late.

      You do know that Java is MUCH bigger than .Net out in the real world?

      More probable: Sun is going to add Ruby on rails to their JSP system, which is probably the only way they kan add anything to anything.

      You really have no idea what you are talking about. Java developers could use Ruby to do fast and easy unit tests for instance. The scripting sessions at the last JavaOne showed lots of other interesting uses. Also it wouldn't surprise me if one possible long time plan wouldn't be to make the JVM the fastest, most stable and therefore the most attractive platform to run all Ruby programs.

      --

      Being bitter is drinking poison and hoping someone else will die

    12. Re:Great News by RAMMS+EIN · · Score: 1

      ``Also this will hopefully ease off the preassure to include everyones' favourite feature X into Java, something that in my opinion is threatening to turn Java into an even bigger mess than C++ (you know, an octopus created by nailing extra legs on a dog).''

      That goes to show how important it is to design your language to be flexible from the start. Java is the kind of language you _have_ to modify to get some desireable features. See, for example, the overhaul of the type system that was necessary to get containers to work nicely.

      --
      Please correct me if I got my facts wrong.
    13. Re:Great News by MemoryDragon · · Score: 1

      Ahem, there always have been numerous languages running on the VM, all Sun did lately was to add standardized runtime weaving to the mix, so that extremly dynamic languages can alter the compilates on the fly. This stuf has been in since 5.0 but only on the Sun VM in 6.0 it is standardized. Most of the dynamic languages running on the vm so far have been relying on pure interpretation, those now can be compiled thanks to the dynamic runtime code weaving.

    14. Re:Great News by arivanov · · Score: 2, Interesting

      First, let me ensure I got my trenches dug to the correct depth to duck for cover.

      The answer is: Because it is not French.

      The sole and only reason for not using smalltalk especially in the US is the not-invented-here mentality. I have yet to see a telecoms (dunno about other parts of the industry) smalltalk project whose roots are not from continental Europe. For example the Infovista carrier stuff which uses a smalltalk core was aquiried from Quallaby which surprise, surprise started its life as a french company. There are other examples as well, but I have yet to encounter a telecoms project which uses Smalltalk as its primary language and was started in the US (or UK).

      Similarly, if you dig into any pre-2004 Ruby project you end up encountering some Samurai smiling at you with that characteristic smile that makes you feel like sushi.

      Anyway, now it is time to duck in the freshly dug trench and wait until the flames have died out.

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    15. Re:Great News by masklinn · · Score: 2, Interesting

      Mmm reasons for not using Smalltalk:

      • It's syntax is fairly alien. Most people don't like alien syntax. Ruby's syntax is much more in line with "traditional" languages such as Java
      • Ruby also has quite a lot of Perlish roots, which make it a quite "practical" language.
      • Smalltalk is a fairly unique language in the sense that it's image-based: your code always lives in your image, you never need to get out of the environment, the feeling is different
      • Smalltalk is fairly old, since it never took of most people never heard of it.
      • Last, but probably not the least, Smalltalk was quite "closed" as an architecture, for a long time the only useable implementations were commercial, which was not a good thing since there were no heavyweight backers of the language (C# has the former issue of a primarily commercial -- even if free via C# compilers and Visual C# Express -- implelementation, but it has all the weight of MS behind it)

      But yeah, Ruby is much closer to Smalltalk than Lisp indeed, Ruby's main "ancestors" are Smalltalk and Perl with some bits of Lisp & others thrown in.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    16. Re:Great News by masklinn · · Score: 1

      Ruby is very young yet

      Ruby is older than Java.

      and not a lot of effort has gone into making it run fast.

      That one's right though, the current implementation of Ruby is pretty much the slowest way you could ever implement it. All the backend should be reimplemented for Ruby 2.0 (including a true VM) with YARV.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    17. Re:Great News by masklinn · · Score: 4, Insightful

      Two seconds of Googling could have told you that the JVM has supported more languages than .net for a long time.

      I may be overreaching here, but I think that part of his point was that Sun never ever officially endorsed any language but Java on the Java platform. Only now that MS has started championing a pretty much official IronPython effort has Sun discovered dynamic languages, and started working towards making the JVM more dynamic-languages friendly.

      Which is a damn shame, because they had Jython years ago, which they could easily have supported at almost no cost, and they let the project die on it's own.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    18. Re:Great News by schlenk · · Score: 1

      Sure you can load the burden onto the compiler of all languages you want to port, instead of making the VM more flexible and support dynamic features. Look at the Intel/HP Itanium processors non-success how well it works to put the burden on the compiler writers.

      If you add some nice opcodes to the VM you can save lots of compiler writers from doing extremly complex translations all over the place. Try for example to compile Tcl code to Java Bytecodes, especially with things like variable and command traces, redefining core commands on the fly and so on. There is a reason most languages under the Java VM are mostly interpreters, not compilers. Doing good compilers for dynamic languages is hard.

      The only reason Sun could get away with burdening the compiler writers with the trouble of working around the shortcomings of the Java VM is the pure marketshare of Java. Quite similar to the strategy of Microsoft with .NET/CLR.

    19. Re:Great News by CableModemSniper · · Score: 1

      Perl is the gateway drug to ruby. Ruby is the gateway drug from perl (regexps, $_, etc.) to smalltalk. That's my theory anyway. It's all part of an intricate plot started by the Ancient Illuminated Seers of Smalltalk to make Smalltalk the one true programming language. This is why to be safe, I only program in K&R-style C.

      --
      Why not fork?
    20. Re:Great News by TobascoKid · · Score: 1

      Groovy has closures. They seem reasonably effecient (it's a scripting language on top of Java, so let's face facts - run time effeciency is not the main reason for choosing the language).

      I also seem to recall that the next version of Java will have some enhancements for dynamic languages (though it came out of Sun's effort to port Visual Basic to Java)

      --
      At some point, somewhere, the entire internet will be found to be illegal.
    21. Re:Great News by MemoryDragon · · Score: 1

      Once the stuff is compiled in as classes into the vm it will become a load faster, heck even a port of php5 to native java compilation made it 3-5 times faster. The reason for this is, all the jit, dynamic optimization etc.. mechanisms which have been developed for the jvm suddenly can start to do the work. Java is not an interpreted language it is far from that and it is one of the fastest vms you can get currently.

    22. Re:Great News by dkf · · Score: 0
      threatening to turn Java into an even bigger mess than C++ (you know, an octopus created by nailing extra legs on a dog).

      Not an octopus, a centipede.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    23. Re:Great News by Ougarou · · Score: 1
      Two seconds of Googling could have told you that the JVM has supported more languages than .net for a long time.
      I didn't mean the number of things to do with languages written in Java. What I was hinting at was language A to java bytecode compilers. If you search around the web, you will also hear that CIL is less language oriented then java bytecode.
      You do know that Java is MUCH bigger than .Net out in the real world?
      Yes. But I hoped to point to the future and say: "well, maybe". Not tell people how the world is (haha, it's purple, haha).
      You really have no idea what you are talking about. Java developers could use Ruby to do fast and easy unit tests for instance.
      Ok, so Ruby is a nice language. And having another possibility to run Ruby somewhere is good. And yes, JVM might become the most attractive place to run Ruby. But for the desktop, I can't really see that happening.

      To keep other poeple from telling me I can't and don't know the future, these are just my 2 cents.

    24. Re:Great News by zootm · · Score: 1

      To be fair, though, in technical terms the Common Language Infrastructure/Runtime was designed from the ground up with far more emphasis on language interoperability. The fact that this is having influence upon the Java creators is a good thing, and should not be dismissed so easily. The Java system itself is currently being changed to have better support for dynamically-typed languages and scripting languages in general, which is clearly the effect of the outside popularity of these types of language.

      .NET (CLR/CLI/whatever) is a very similar project to Java, with slightly different (technical) goals which means that it can influence the evolution of Java by competing more closely with it. I seriously doubt that JRuby is a manifestation of this, but there has been positive developments, which competition of this sort will usually if not always bring, such as a proposal for Java closures (giving an equivalent to function types and .NET's delegate types).

      I agree that .NET will not kill Java, of course. In fact, my belief is that it'll do nothing but bolster it, by forcing it to evolve beyond the rut which it was beginning to be stuck in. .NET's language flexibility is something else that Java would do well to learn from, and it looks like it is. :)

    25. Re:Great News by vhogemann · · Score: 2, Informative
      Fourthly, because there is just a slight chance that Sun will decide to make the JVM more flexible and amenable to languages other than Java. Right now, the operations that the JVM supports are very much tied to the features of Java. Implementing some more flexible primitives would benefit not only JRuby, but also about any other language that targets the JVM, and make the Java platform more competitive with .NET.


      AFAIK, The 6th major revision of the Java platform, codename Mustang, already provides a well defined interface for scripting languages (JSR-223). There is already an official implementation of the Javascript language bundled with it, named Rhino, and the Groovy script language (that is somewhat influenced by Ruby) is officialy supported too.

      Also, it seems that Sun is trying to address some issues that prevented scripting languages from accessing the full power of the JVM, this is particulary true for dynamic typed languages such as Ruby and Python. As Java is itself a static typed language, the JVM is optimizated for it, so there's lot of room for improvements... but they probably won't appear until after Mustang is released.

      Just my $0.02
      --
      ---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
    26. Re:Great News by LarsWestergren · · Score: 3, Insightful

      The solution is YARV [...] Benchmarks show that it will be about as fast as Java and .NET in most situations. Slower in some situations, faster in some.

      Yes, but the JVM is a moving target. By the time all those bugs have been ironed out, JRuby will have improved their execution speeds too. Lets not declare the winner until we have the finished products to compare, otherwise we are just playing the old Microsoft game of "lets compare the features of our future products with the features of our competition today".

      --

      Being bitter is drinking poison and hoping someone else will die

    27. Re:Great News by recordMyRides · · Score: 3, Insightful

      Smalltalk was invented in Palo Alto, California.

      My opinion on why we don't use Smalltalk? When it came out, the world wasn't ready for it. We were still getting our heads around object oriented programming in general. The fact that it didn't use C syntax didn't help either. Smalltalk was just too much for most programmers to learn. Nowdays, since it is decades old, it doesn't have the same sparkle of a newer language, like Ruby.

    28. Re:Great News by FatherOfONe · · Score: 1

      A company I use to work in the U.S. tried to use Smalltalk before I was hired around 12 or so years ago. I will give you the number one reason it stopped being used by them. $2,000 a developer seat and a month of training for each developer.

      This was an IBM shop and IBM pushed Smalltalk as an upgrade path from COBOL. Then came this language called Java and it was OO, granted not as OO as smalltalk, but the development tools were and are free, or at least a lot cheaper... IBM dropped their smalltalk push and very quickly (for IBM), started to push Java. I will say that I like the idea of primatives and the thought of doing Integer.intValue() + Integer.intValue() //made up syntax but you get the point... doesn't sound as good as i + y, but then again I am not an OO purist.

      Now, I am not about to make any comments on the technical merrit of Smalltalk, it might have been the best language in the world, but from my perspective they could have taken over the world if they would have GPL'd the language from the start and because of its cost, it lost out.

      I do want to say that NOBODY had a clue to what country the language came from. Trust me few people outside of Redmond Washington care where a product comes from. Now I will say that people here will tend to go to a product that has docs and support in English and they tend to want to play it safe. By safe they tend to be lemmings and follow what other businesses do, but a ton of businesses here run Linux, SAP and other software and they don't care at all.

      Lastly, I will say that a ton of businesses here are starting to get pissed off at the support being in India. It has got so bad lately that most shops have just started to live with bugs and crappy software to avoid calling Oracle/Dell(India). So in the long run they will stop purchasing that product(s).

      --
      The more I learn about science, the more my faith in God increases.
    29. Re:Great News by EsbenMoseHansen · · Score: 1
      See, for example, the overhaul of the type system that was necessary to get containers to work nicely.

      And even then, the type system is still not up to scratch. E.g, there is no way to cast from Object to Map in a typesafe way. That is, you can cast, but the object might turn out to be a Map or similar. This is because the Java type system cannot carry around the parametric types.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    30. Re:Great News by EsbenMoseHansen · · Score: 1

      I meant, of couse, Object to Map<String,String>.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    31. Re:Great News by John+Courtland · · Score: 1

      Sun has been adding support for dynamic languages (for example, Java 6 has Rhino built right into the JRE), and the idea itself has been in discussion for a long time. They're also adding a new bytecode to the JVM to support dynamic calls. That's huge, and unfortunately it is taking them a long time to implement, but Sun is very keen on keeping the JVM bytecode stable, so I can understand. InvokeDynamic (the bytecode to support dynamic calls) should be in Java 7, which should come out late 2007/early 2008.

      The one thing Java will *not* do (at least according to Gilad Bracha's blog) is support native continutations. I'm on the fence personally on that one, I can see points both for and against adding call/cc support to the JVM. Since a lot of modren dynamic languages have continuations (and a lot of older languages too, but they're not the buzzword of the day) that will obviously hamper their use on the JVM. I haven't seen a good method of "faking" continuations in Java yet, and I can only hazard a guess that any attempt at it would not be very performant, which is unfortunate. I think that, at the end of the day, Sun adding continuation support would be good overall, even if the Java language never uses it, just so that the JVM bytecode can be a native target for more languages. The modern JVM (1.5+) is a very nice piece of work.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    32. Re:Great News by plopez · · Score: 1

      Ruby also has quite a lot of Perlish roots, which make it a quite "practical" language.

      I think you hit the nail on the head there, being a Perl hack (second class only) I like Ruby because I found it easy to tranlate over and I can do the crazy wierd Perl-like stuff that I cannot do in C# or Java (or have to jump through a lot of hoops to do).
      All the while it is better in object orientation and they did clean a few things up as well.

      Ruby is becoming my new Perl. I predict more Perl hacks will cut over as well. ANd the Rails push will captaure people who may have used Java or .Net.

      --
      putting the 'B' in LGBTQ+
    33. Re:Great News by iion_tichy · · Score: 1

      Ruby is very young yet

      No it isn't, it has been around since 1993.

      I sincerely hope that the performance issue will be approached soon. One big concern is also the lack of native multithreading - multicore CPUs are becoming the norm...

    34. Re:Great News by CoughDropAddict · · Score: 1

      Are you sure about all that? I have not heard any plans for YARV to have a JIT, and I have heard no indication that it will approach the speed of Java. I have tried it out, and seen speedups of about 2-3x, but this is far short of being competetive with Java.

      Understand that I am a huge Ruby supporter, which is why I don't want to see unrealistic expectations about YARV that don't deliver, thus tarnishing Ruby's reputation.

    35. Re:Great News by plague3106 · · Score: 1

      I like Ruby because I found it easy to tranlate over and I can do the crazy wierd Perl-like stuff that I cannot do in C# or Java (or have to jump through a lot of hoops to do).

      Examples please?

    36. Re:Great News by Anonymous Coward · · Score: 0

      Great news? Quite the opposite, it means that jruby is now dead.

      > Secondly, because Sun is supporting JRuby, which is an alternate
      > implementation of the language.

      There's no such thing as an "alternate implementation". Those languages differ in some ways.

      > Thirdly, because the JRuby folks seem to have the plan to develop
      > a compiler.

      Not sure if you know what you're talking about. A compiler? Ruby is a interpreter.

      > Fourthly, because there is just a slight chance that Sun will
      > decide to make the JVM more flexible

      It is already flexible enough. Languages like python PHP, Jruby can already be used as script plugins, as a replacement for those who hate JSP for example.

    37. Re:Great News by Anonymous Coward · · Score: 1, Informative

      > Once the stuff is compiled in as classes into the vm it will become a load faster, heck even a port of php5 to native java compilation made it 3-5 times faster

      That's a blatant lie.

      The Java based PHP "Quercus" engine is more than 10 times slower than the C based PHP engine from Zend.

      Note that both engines are interpreters, they have to look up values at run time etc. A well written interpreter written in Java is always, even after JIT optimization, 2-3 times slower than a C based engine.

      For PHP this is even worse, Quercus has to emulate a reference counter on top of the java garbage collector. The Zend engine can simply use ref counting and throw out objects which are not referenced anymore. Cycles are thrown out automatically when the PHP request is done. Remember that a PHP script cannot run for more than 30 seconds, so in theory the C based engine could even switch off the ref counter to gain speed.

    38. Re:Great News by Anonymous Coward · · Score: 0

      What an in-depth erudite comprehensive analysis. I mean, it's a hundred percent wrong on every last detail, but still, golly.

      Smalltalk died the same death of lisp: it became a bloated monstrosity available only by paying exhorbitant fees to commercial outfits who had no interest in making it play nicely with the rest of the world. Squeak is too little and too late. Smalltalk became a proprietary language, and proprietary languages never become mainstream.

    39. Re:Great News by Per+Wigren · · Score: 1
      From the TODO-list:
      Optimize
        * JIT Compile (current: experimental)
        * AOT Compile (current: experimental)

      If you search the mailing lists you will find results of experiments by Sasada showing VERY fast execution on examples using code the JIT compiler supports so far.
      --
      My other account has a 3-digit UID.
    40. Re:Great News by mwkohout · · Score: 1

      Actually, there is more than a *slight chance*.

      The jvm will support(in java 7) a great deal of what is necessary via this jcp:
      http://jcp.org/en/jsr/detail?id=292

      it's approved and everything!

      Really, the only thing that is actually needed to make it perfect( for smalltalk, my true love ) so far as I know is to make code hotswapping a guaranteed thing. But with this feature, the status quo won't suck. And goodbye slow reflection.

    41. Re:Great News by SanityInAnarchy · · Score: 1

      There are advantages to having a common JIT engine, though.

      I've been sitting on the sidelines, watching all of this, wishing desperately for a clear winner. I'm looking for:

      • Bytecode. I don't want to have to compile separately for every platform I'd support, but I want to be able to go proprietary.
      • Fast. Faster-than-C if possible. I'll accept some performance loss, but not too much. Ahead-of-time compilation is a huge plus -- I have seen Java apps take forever to start, and I don't want my program to feel like Eclipse.
      • Dynamic. I want to be able to replace chunks of my code at runtime. Depending on the language, this could be easier or harder, but most seem to allow some level of reflection.
      • Popular. In general, you can call any Java library from any JVM language, and the same is true for these other platforms.
      • Open source. I may want to go proprietary, but I still want the ability to dig around under the hood. Even if it's not my bug, I should be able to fix it.
      • Stable. Duh, but really, there are so many of these that I've looked at that work beautifully in theory, but completely fall apart in practice, due to being fairly pre-alpha.

      Here's what I've come up with:

      • Java: Mature, has lots of interesting languages, a decent security model, and may soon become open source. Makes it incredibly hard to call out to native code, though, compared to some alternatives. Java itself is ugly, though, and the JVM is designed for it.
      • .NET: Reasonably mature, backed by MS so not going away soon, feels native on Windows. May be hard to reverse-engineer, so it's good for proprietary code. Actually has a working open-source implementation (mono). Makes it very easy to call out to native code. C# is Java's bastard cousin, and it's hard to pick a clear winner, but C# does appear to be quite a bit less ugly at first glance.
      • Python: Mature in the cpython form. Psyco is interesting, but doesn't work on anything other than 32-bit x86. Pypy is also interesting, but doesn't work for me on amd64. Makes it easy to call native C code. May be easy to reverse-engineer.
      • Parrot: Not stable at all. It's designed specifically for scripting languages, which is good, because I like Ruby. The best part is, it will be Perl6's engine, which means if Python and Ruby are ported, my Ruby code will be able to call CPAN modules. But at the moment, not even the spec is completely done.
      • Scheme/Lisp/Erlang/others. Every one of these I've looked at has one fatal flaw: It's not JIT'ed, or compiled. Erlang can be compiled, but then you lose one killer feature: even if they're just bytecode-compiled, compiled functions cannot be replaced at runtime, the way other Erlang functions can.

      I'm willing to accept some performance hit, and I'm even willing to accept severe obscurity -- if Erlang fulfilled every requirement other than popularity, it would be perfect. There have been cases where a few good LISP programmers can hack circles around anyone else in any other language, and I'll gladly trade popularity for massive efficiency of a few people.

      Unfortunately, right now I'm stuck between .NET and Java. Ruby.NET is, unfortunately, written in C#, does not follow the spec, doesn't give very useful information when it crashes, and doesn't seem to be that much faster, at first glance. At least it's a compiler. The JDK, though, is proprietary and closed, and doesn't look as well done as .NET in a few places -- it's child's play to make a .NET binding to a C library, compared to what you have to go through in Java. But then, Java's already done the main ones...

      Common sense tells me that I should just pick one and go, but if I pick the wrong one, I'll be playing catch-up for years, so instead, I just go back to my day job and use PHP.

      --
      Don't thank God, thank a doctor!
    42. Re:Great News by vsync64 · · Score: 1
      Scheme/Lisp/Erlang/others. Every one of these I've looked at has one fatal flaw: It's not JIT'ed, or compiled. Erlang can be compiled, but then you lose one killer feature: even if they're just bytecode-compiled, compiled functions cannot be replaced at runtime, the way other Erlang functions can.
      Common Lisp compilers:

      I know that in all of these you can replace a compiled function at runtime with another compiled function, both from personal experience and because the ANSI standard says so.

      You seem to have made a mistake many people do: confusing Common Lisp with Scheme. Scheme is a useful language, but it's primarily a teaching language, and it's extremely limited. The simplicity of Scheme makes it useful as well as a simple base for embedded languages. However Common Lisp is far more useful as a language for developing large robust systems, because it doesn't force you to implement everything from scratch and much much more is standardized between implementations.

      I don't want to be the cliché of the Lisp programmer saying "Lisp had it first", but I am amused when people find dynamic compilation new and exciting, or an integrated object system, or bemoan the lack of certification by a standards body.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    43. Re:Great News by 0xABADC0DA · · Score: 1

      Well, I call bs on YARV ruby vm being "about as fast as Java and .NET in most situations". I benchmarked Java vs C vs Smalltalk, and the results were basically:

      GCC: 1
      Java: 0.8-2, sometimes upto 4
      Smalltalk: 4-20, sometimes upto 80

      This was against highly optimized cincom smalltalk, the fastest around at the time, and even on OO tests like method dispatch. And Ruby has all the same issues as smalltalk (dynamic dispatch, boundless integers, blocks/closures, etc).

      Ruby, Python, Perl, Smalltalk, etc sometimes test well when the benchmark is something like "compress this 1mb" or "match this regular expression" because they all call out to the same C libraries to do this. There's something to be said for that, but when you need to step away from the standard libraries you'll see a much different picture.

    44. Re:Great News by vsync64 · · Score: 1
      To be fair, though, in technical terms the Common Language Infrastructure/Runtime was designed from the ground up with far more emphasis on language interoperability.

      As long as it walks, talks, and quacks like C#.

      As for closures, I'm a big fan, and I used to wish for their inclusion in Java. But I've come to reconsider that. Java is -- leaving aside for a moment the schizophrenia that is the primitive type system -- extremely object-oriented, at least in that it wants every user-defined type to be an Object. Of late Java has been piling on a lot of synactic sugar but I think it may be too little too late; introducing these epochs of major language change doesn't seem wise when the only thing keeping your userbase together has been the knowledge and workflow they've accumulated.

      I think people look, for example, to Larry Wall for innovation. They don't look to Sun Microsystems. It's a shame, but perhaps better to keep the appearance of stability.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    45. Re:Great News by Pike · · Score: 1

      So, how does the not-invented-here syndrome explain why we are now using a language invented in Japan?

      I didn't even know smalltalk was french until I read this.

    46. Re:Great News by SanityInAnarchy · · Score: 1

      I'm even more amused by LISP's parentheses, but I can live with them. I think of Ruby as exciting not because it's new, but because it's most of what I like about LISP without the ugliness. I mentioned Scheme because I seemed to remember it having a bytecode engine.

      But the real problem seems to be the same problem as with everyone's pet language. In theory, LISP could do everything I want, but I can't find a single implementation of LISP or Smalltalk that does it. Well, that's not true -- I can find one or two, but they're either commercial or in a state worse than Parrot.

      • CMUCL seems nice in that it can call C, but its bytecode is 50 times slower than its compilation, and at a first glance, I don't see how to go from bytecode to a compiled form.
      • SBCL doesn't seem to want to tell me what kind of compiler it has. Do we compile to native? Bytecode? Does it just run the macros and dump the preprocessed output?
      • CLISP compiles to bytecode, but that bytecode is then interpreted. That's a performance hit -- 50 times slower, if it's at all like CMUCL.
      • ABCL is awesome in that it's about arming bears, but it looks to be in fairly early development. Also, they do not seem to understand what the LGPL is, which is frightening.

      If I'm missing something, please let me know.

      --
      Don't thank God, thank a doctor!
    47. Re:Great News by Courageous · · Score: 1

      Fourthly, because there is just a slight chance that Sun will decide to make the JVM more flexible and amenable to languages other than Java.

      I actually find this to be the most promising aspect of this announcment. Not really surprising, considering the marketing speak M$ has been going thru lately regarding improving the CLR for dynamic languages, and what's happening with Iron Python (on .NET). I'm glad to see both of the main VM-based languages out there pushing towards a friendly environment for dynamics languages.

      C//

    48. Re:Great News by greg_barton · · Score: 1
      Only now that MS has started championing a pretty much official IronPython effort has Sun discovered dynamic languages, and started working towards making the JVM more dynamic-languages friendly.

      SCripting language support has been part of the spec for java6 since the beginning, mid 2005. JSR 270
    49. Re:Great News by misleb · · Score: 1

      My own benchmarks of YARV for some particularly slow real world tasks such as referencing items in a hash show only a modest performance boost. For example, I am trying to read 35,000 records from an SQLite database into a Ruby Array and it takes 23 seconds. The query itself only takes 1 second, but iterating over the records from SQLite is what takes so much time. I've profiled it and everything. It is definitly the iteration over the ResultSet that is the problem. Using the latest YARV from SVN only gets me to about 15 seconds. Doing the exact same thing in Python only takes 1.5 seconds. So even with YARV, Ruby is still an order of magitude slower than similar interpreters/VMs. At least in my limited benchmarks.

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    50. Re:Great News by RAMMS+EIN · · Score: 1
      ``
      Ruby is very young yet


        No it isn't, it has been around since 1993.''

      I meant it in a evolution, lifecycle kind of way. Ruby is still in a pretty early stage of life, and a lot of work can be done on improving the language and (especially) the runtime.
      --
      Please correct me if I got my facts wrong.
    51. Re:Great News by misleb · · Score: 1

      The problem with Jruby isn't performance, but limitations in the JVM. The JVM is very much taylored to Java. And Java and Ruby are different in very significant ways. YARV is probably going to be the official/default VM for Ruby. I'd rather see focus on making YARV better and faster. Although development seems pretty slow on YARV so I'm not holding my breath.

      It really is too bad. I thouroughly enjoy programming in Ruby.. especially with Rails. But I just can't justify using Ruby outside of a low traffic web app because it is just too damn slow!

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    52. Re:Great News by misleb · · Score: 1

      Forget about beating Java. Lets try matching Python. My benchmarks show that YARV is still an order of magitude slower than Python.

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    53. Re:Great News by misleb · · Score: 1

      Yeah, too bad I haven't see an svn update to YARV trunk since sept. 1. And that update was pretty minor. Unless they're doing a lot of work outside of svn (doesn't make much sense), things are not looking too hot.

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    54. Re:Great News by mclaincausey · · Score: 1
      It isn't French, but being Californian in origin, I can see why the poster was confused and thought it foreign:P

      Seriously, I think he must have been thinking of OCAML or Eiffel or something.

      --
      (%i1) factor(777353);
      (%o1) 777353
    55. Re:Great News by mclaincausey · · Score: 1
      But yeah, Ruby is much closer to Smalltalk than Lisp indeed, Ruby's main "ancestors" are Smalltalk and Perl with some bits of Lisp & others thrown in.
      As you note, Smalltalk and Perl clearly provided inspiration. There is support for functional programming, but I agree that Lisp is not a major contributor. I think the important point we are missing here is that Algol is the most direct and important ancestor of Ruby, at least syntactically. Python and TCL have their influences in Ruby as well.
      --
      (%i1) factor(777353);
      (%o1) 777353
    56. Re:Great News by masklinn · · Score: 1

      I would've thrown Python in, but as Python is not much older than Ruby I finally decided against it.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    57. Re:Great News by masklinn · · Score: 1

      IronPython moved from it's original site to GotDotNet ("The Microsoft .NET Framework Community", a microsoft website) in March 22, 2005...

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    58. Re:Great News by Scaba · · Score: 1
      Python and TCL have their influences in Ruby as well.

      Indeed. It is well know that before he created Python in 1991, Guido van Rossum travelled forward through time to 1993 to be influenced by the creation of Ruby. Unfortunately, the journey back to 1991 erased his memory of the secrets of time travel, and so we are left only with the fruits of his magical journey, the Python language. John Ousterhout made a similar journey in 1989 which informed his design of Tcl.

    59. Re:Great News by Marcus+Green · · Score: 1

      Ah, yes Small Talk was invented in that famous French research facility Xerox Parc. And for those that don't know Xerox is a Paris (France) based corporation and Parc is an acronym for Palo Alto Research Centre, Palo Alto being just to the North of Paris. When Steve Jobs went on his famous trip to see the Parc GUI development work he got on a plane to France for several hours, bla bla nonsense, dribble (Feel free to insert your own misleading rubbish as a response).

    60. Re:Great News by zootm · · Score: 1

      I think that a lot of the sugar Sun have been pouring on of late has benefited the language. Although I don't believe that closures are great for Java, first-class functions (function objects) strike me as a good idea, simply because they ease a lot of tasks significantly, and can fit reasonably well into the type system if implemented consistently.

      As for innovation, yes, I think that looking outside of Java (perhaps not outside of Sun, mind) can help with this. But the bottom line is that Java, as a system, although still very sound, can still benefit from having new features based on more modern technology added to it. It just picks them up a little later than others, but I think it's good that it does pick them up.

      As long as it walks, talks, and quacks like C#.

      Probably more of a symptom of the fact that C# was designed specifically to take advantage of all of the features of the CLI, rather than the influence being the other way around.

    61. Re:Great News by Per+Wigren · · Score: 1

      I don't doubt your numbers at all but you should try it again later when YARV has JIT compilation. Current YARV is still interpreted.

      --
      My other account has a 3-digit UID.
    62. Re:Great News by Weedlekin · · Score: 1

      Eiffel the computer language isn't French, although Eiffel and his tower were / are.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    63. Re:Great News by aled · · Score: 1

      that is comparing an experimental version with a years mature and optimized Hotspot JVM.

      --

      "I think this line is mostly filler"
    64. Re:Great News by misleb · · Score: 1

      Python doesn't have JIT. Well, it does if you use Psycho on i386, but stock python doesn't. YARV is at least an order of magnitude slower than stock python. We need to match that before we even think about JIT compiling. Would be nice if you could generate compiled (into bytecode) .rb files. Unfortunately the development of YARV seems pretty slow.

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    65. Re:Great News by mclaincausey · · Score: 1

      No, it's the reverse. Python and TCL influenced Ruby, not the other way round.

      --
      (%i1) factor(777353);
      (%o1) 777353
    66. Re:Great News by Scaba · · Score: 1

      I believe you either responded to the wrong message, or you need to check the fluid levels in your sarcasm detector.

    67. Re:Great News by mclaincausey · · Score: 1
      What is a "sarcasm detector?"

      :P

      --
      (%i1) factor(777353);
      (%o1) 777353
    68. Re:Great News by MemoryDragon · · Score: 1

      I am not talking about a pure interpreted engine, I was talking about one from Zend (there were some news a few weeks ago) which used compilation into the VM, and that one resulted in a speed increase of factor 3 least compared to C one. The reason was the runtime optimization of the VM which could kick in in full force.

    69. Re:Great News by Anonymous Coward · · Score: 0

      > I was talking about one from Zend (there were some news a few weeks ago)

      There is no PHP -> Java compiler available from Zend.

      You're probably talking about the Zend optimizer, which has nothing to do with Java. -- Of course a compiler is always faster than a interpreter, but that's not the point here.

  2. Support for Dynamic languages by EqualSlash · · Score: 4, Insightful

    Long ago, Microsoft hired Jython creator Jim Hugunin to work on IronPython. The aim is to make dynamic languages like python work better in .NET platform. Looks like Sun doesn't want to lose out in the race in supporting dynamic languages.

    1. Re:Support for Dynamic languages by TheRaven64 · · Score: 4, Insightful

      Smalltalk, the archetypal dynamic language, already runs quite happily on top of the JVM. Sun doesn't need better technology, they need better marketing. Last time I checked, there were more languages supported by the JVM than the .NET CLR, but Sun only ever talk about Java while Microsoft talk about everything. This is a PR move to let the world know that the JVM is not just for Java.

      --
      I am TheRaven on Soylent News
    2. Re:Support for Dynamic languages by egghat · · Score: 2, Insightful

      This is a *good* PR move.

      Which is not the norm when you're talking abount Sun microsoystems.

      Bye egghat.

      --
      -- "As a human being I claim the right to be widely inconsistent", John Peel
    3. Re:Support for Dynamic languages by killjoe · · Score: 1

      Ironpython just got to 1.0. You still can't write DLLs in python and call them from C# or VB.NET. That road only goes one way. You can call DLLs you wrote in C# from python but not vice versa.

      I am not saying it sucks but it does seem half assed to me.

      --
      evil is as evil does
    4. Re:Support for Dynamic languages by beemishboy · · Score: 1

      "Looks like Sun doesn't want to lose out in the race in supporting dynamic languages."
      I'm glad that Sun is taking more steps to make sure that the scripting support in the upcoming version of Java is decent. One thing that is kind of ironic about the first part of your statement is that Microsoft hired the Jython creator - hence Jython came first. I don't think a lot of people realize that Jython has been out for so long.

      One reason I'm glad that they hired those two Ruby developers is that if you're going to implement an entire language within the JVM, make it complete and up to date - none of this - "Well we're 4 versions behind the current version of the language, but *it's in the virtual machine*!"

      Also, the stated goal of the scripting support in the upcoming version of Java is to allow scripting languages to make calls to the Java backend - specifically if you have a php front end of a website and you have a Java backend, then it will become easier to connect the two. Not only that, but they're making a specification pretty open to any scripting languange.

    5. Re:Support for Dynamic languages by beemishboy · · Score: 1

      I should have also listed this link which lists all of the scripting languages that have at least some hooks already in Java and that are going to be affected by the new scripting specification.

  3. The way I see things... by Anonymous Coward · · Score: 2, Interesting
    Ruby (which is slow as molasses) could potentially see a higher speed gain from running on the JVM than Python has (not) seen from being ported to run on the CLR. However, I don't understand the technical advantage of these dynamic languages being ported to runtimes designed to host static languages.


    Lua is interesting, it runs on it's own register based VM and LuaJIT does exactly what you think. Lua is only a small language and generally faster than C-ruby and C-python. I don't see anybody rushing to port this to run on the JVM/CLR, is this because the performance and memory use would absolutely suck?

    1. Re:The way I see things... by Viol8 · · Score: 1

      "is this because the performance and memory use would absolutely suck?"

      No, I suspect its because no one has even heard of it. Theres dozens of
      me-too languages out there but until someone starts to use one a lot
      and it takes off no one cares. Fact of life I'm afraid.

    2. Re:The way I see things... by erig · · Score: 3, Informative

      Lua is used a lot as an embedded language, especially in games such as World of Warcraft, etc., so I wouldn't say that it's unheard of.

    3. Re:The way I see things... by Anonymous Coward · · Score: 0

      Lua users, just a list of users and applications people have never heard of like Lucas Arts (Monkey Island, Grim Fandango) and Blizzard (WOW). A little history demonstrated that Lua is not some "me-too" language either. If you're serious about programming, you've used or at least heard of Lua.

    4. Re:The way I see things... by masklinn · · Score: 2, Insightful

      I don't see anybody rushing to port this to run on the JVM/CLR, is this because the performance and memory use would absolutely suck?

      I think it's because they don't go for the same market. Lua's goal is to be a fast, simple embedded language, to enable easy scripting of your C/C++ applications for example (which is why Lua is used a lot in embedded and games devs).

      Python and Ruby are full fledged, self-contained programming languages (even though you can embed them into C/C++ programs, or use C/C++ libs from them). Porting them to the JVM or the CLR gives you all of the platform's power (modules & third party packages) with more dynamic and flexible syntaxes.

      Lua is definitely not "unheard of" though.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    5. Re:The way I see things... by jma05 · · Score: 1

      > However, I don't understand the technical advantage of these dynamic languages being ported to runtimes designed to host static languages.

      The "technical advantage" is the more or less same as implementing them over the more common "C platform".

      "It was a little less than a year ago that I first started investigating the Common Language Runtime (CLR). My plan was to do a little work and then write a short pithy article called, "Why .NET is a terrible platform for dynamic languages". My plans changed when I found the CLR to be an excellent target for the highly dynamic Python language. Since then I've spent much of my spare time working on the development of IronPython."

      - Jim Hugunin (primary author of IronPython and Jython)

    6. Re:The way I see things... by Anonymous Coward · · Score: 0
      The "technical advantage" is the more or less same as implementing them over the more common "C platform".

      Both the CLR and JVM are written in C, so I guess you're saying there's no advantage at all? Please spare me the dreaded Jim Hugunin quote, it doesn't matter how many times it's copied and pasted into a discussion, it's still only an opinion.

    7. Re:The way I see things... by Anonymous Coward · · Score: 0

      Nothing becomes faster by adding a VM. Think about it.

    8. Re:The way I see things... by Anonymous Coward · · Score: 0

      Think about it? You obviously haven't.

    9. Re:The way I see things... by Anonymous Coward · · Score: 0
      If you're serious about programming, you've used or at least heard of Lua.


      Right.

      If you're serious about programming you're actually programming, not sitting around jacking off to under supported niche languages. I swear some of you guys need to write more code and spend less time bullshitting.
    10. Re:The way I see things... by Viol8 · · Score: 1

      Oh fantastic , a high level games programming language (presumably for those who can't master C or assembler). I'll have to suggest it to my boss next time we need to write some trivial market access program that has to run 24/7/365 and process a few million trades an hour.

      >If you're serious about programming, you've used or at least heard of Lua

      Uh huh , whatever you say sonny.

    11. Re:The way I see things... by Anonymous Coward · · Score: 0
      Oh fantastic , a high level games programming language (presumably for those who can't master C or assembler).

      You could be just as easily be talking about C# or Java here.



      I'll have to suggest it to my boss next time we need to write some trivial market access program that has to run 24/7/365 and process a few million trades an hour.

      This article is about running scripting languages on a VM. If you can write your app in a scripting language, even one running on the JVM then you should be able to do it in any scripting language. There's also no reason why you wouldn't write such an app with the core functions in C and embed Lua to script the business logic.



      Uh huh , whatever you say sonny.

      With attitudes like that, it's no wonder programming jobs are being exported. If you want to keep getting paid for hammering in nails, don't ignore someone suggesting a better hammer.

    12. Re:The way I see things... by jma05 · · Score: 1

      > Both the CLR and JVM are written in C, so I guess you're saying there's no advantage at all?

      Just about every language is written in C at some point. That's not the point. When you code in a CLR implemented language, you have straight forward access to libraries targetting CLR as you do with C wrapped libraries with CPython. Yes, you can access libraries from any platform from any platform through some interop mechanism but the principle reason why people implement a language over popular managed environments is to gain access to their respective code base and provide a scripting option for that platform. It is rarely for performance reasons. Likewise, most of the time C wrappers are created for your favorite dynamic language, it is not for performance reasons but rather to gain access to the codebase. Performance gains in this case is merely incidental.

      > Please spare me the dreaded Jim Hugunin quote, it doesn't matter how many times it's copied and pasted into a discussion, it's still only an opinion.

      In case you haven't noticed, most the programming language talk is opinion. We care about it here because it is expert opinion. Jim Hugunin is the implementor of a very popular language on two of the most popular VMs. His opinion counts. I will listen to your opinion too when you...
      1. Stop being an AC.
      2. Actually provide arguments why these platforms are not good for dynamic languages.
      3. Show experience with language implementation either academically or in practice and prove that you are just as credible.

      > Ruby (which is slow as molasses)

      But here you demonstrate complete lack of understanding on why dynamic languages are chosen at all. The execution speed of dynamic languages is largely irrelevant. They would still be useful even if they were an order of magnitude slower than in their current implementations.

    13. Re:The way I see things... by Viol8 · · Score: 1

      >With attitudes like that, it's no wonder programming jobs are being exported. If you want to keep ?>getting paid for hammering in nails, don't ignore someone suggesting a better hammer.

      You think they're using Lua in Bombay?? Get real.

  4. good thing, too by macadamia_harold · · Score: 2, Funny

    Sun has thrown some corporate weight behind Ruby

    Good thing, because that Oswald guy was starting to get on my nerves.

    1. Re:good thing, too by Yuioup · · Score: 0, Offtopic

      Too bad I don't have mod points because I that was a funny post.

  5. GPL? by giafly · · Score: 5, Interesting

    Currently JRuby is licensed under the GPL.
    Given Sun's past criticism, I think it's fair to ask whether they have committed to using the GPL for future JRuby releases.

    --
    Reduce, reuse, cycle
    1. Re:GPL? by Aladrin · · Score: 1

      Do they have a choice? If they hired each and every person who has commited even a little code to JRuby under the GPL, then yes... They could force their employees to relicense. If they miss even 1 person, or someone quits and refuses to relicense, then no... They have no choice.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    2. Re:GPL? by mrjatsun · · Score: 2, Insightful

      OpenOffice is GPL. Different licenses for different products. There isn't one license to rule them all. I don't see why JRuby wouldn't be GPL given Sun's (my employer) past history.

    3. Re:GPL? by Anonymous Coward · · Score: 0

      If they miss even 1 person, or someone quits and refuses to relicense, then no... They have no choice.

      Well, they can always throw away that person's contribution.

    4. Re:GPL? by LarsWestergren · · Score: 1

      Given Sun's past criticism, I think it's fair to ask whether they have committed to using the GPL for future JRuby releases.

      Of course they will, they can't change the licence to a less restrictive one. Also you could just have read .

      --

      Being bitter is drinking poison and hoping someone else will die

    5. Re:GPL? by LarsWestergren · · Score: 1

      Bah... I meant:
      Also you could just have read TFA, or the FAQs, or the blogs.

      --

      Being bitter is drinking poison and hoping someone else will die

    6. Re:GPL? by Anonymous Coward · · Score: 0

      Except it clearly states on the homepage - "Distributed under a tri-license (CPL/GPL/LGPL)".
      http://jruby.codehaus.org/

    7. Re:GPL? by maxume · · Score: 1

      It wouldn't appear that way:

      http://www.tbray.org/ongoing/When/200x/2006/09/07/ JRuby-guys

      (see the question about sun owning jruby)

      --
      Nerd rage is the funniest rage.
    8. Re:GPL? by olabini · · Score: 2, Informative

      This is just not true. GPL is one of three licenses for JRuby, which is easy to find on the front page for the project. A direct quote: "Distributed under a tri-license (CPL/GPL/LGPL)" But anyway, as other people have posted, JRuby will continue, with it's own community, just with the support of employment for the two main guys.

  6. Re:Not exactly a good thing by RAMMS+EIN · · Score: 1

    ``Java is a marketing driven answer to a non existant technical problem,''

    To be fair, Java does have some advantages over C and C++ for application development, and I think that Java has worked wonders in the corporate world.

    ``the best move would have been replacing Java with Ruby,''

    Not necessarily. Java and Ruby have different strengths. For example, Java has static typing, which helps catch errors at compile time.

    ``Now, if and when some good Ruby software will be written by these folks which will rely on a JVM to be run''

    Not necessarily. Just because Sun supports JRuby doesn't mean CRuby is going to disappear.

    ``Think about what Azureus would be if it was written in a decent programming language.''

    You can't very much blame the state of Azureus on Sun. It was, after all, the Azureus developers who made it the way it is, through language choices and programming practices.

    --
    Please correct me if I got my facts wrong.
  7. backing dynamic languages? by haupz · · Score: 1

    Can Sun claim to be backing dynamic languages when people like David Ungar are looking for a new employment? http://tech.groups.yahoo.com/group/self-interest/m essage/1943

    Maybe they're too "old-school", but hey, those guys created Self!

    1. Re:backing dynamic languages? by ArikTheRed · · Score: 0, Offtopic

      Wow... a Self fan. Only on Slashdot.

    2. Re:backing dynamic languages? by haupz · · Score: 1

      Not a "Self" fan, a fan of dynamic languages whatsoever. ;-)

  8. Re:Not exactly a good thing by Viol8 · · Score: 0

    >To be fair, Java does have some advantages over C and C++ for application development,

    Apart from supposed portability I can't think of any. And that portability is overrated
    anyway since how often do companies mix and match Windows with X terminals with java stations
    to run a front end GUI, and how often does something think that a huge 1 million line
    backend mainframe program would be so much better if it could run on a cheap PC too?

  9. Re:Not exactly a good thing by RAMMS+EIN · · Score: 3, Informative

    ``Apart from supposed portability I can't think of any.''

    I don't think portability is the real advantage. I even doubt if Java really is more portable. No, the real advantages are safety and garbage collection. C and C++ programs are rife with format strings, unchecked return values, unchecked casts, unsafe I/O primitives, and manual memory allocation. All of these are rich sources of bugs. Buffer overflows are in the top three of most common vulnerability types (probably first after injection vulnerabilities, which Java's SQL API protects against, too). Memory leaks are also common, e.g. Firefox suffers badly from them. Unchecked return values have been responsible for some major privilege elevation vulnerabilities in Linux. All of these can't happen in Java, or at least, Java greatly reduces the risks.

    --
    Please correct me if I got my facts wrong.
  10. Re:Not exactly a good thing by Anonymous Coward · · Score: 0

    Java has garbage collection and is a simpler language than C++. The Java library is huge, but the actual language doesn't have nearly as many things that will bite you in the ass as C++ does. So it's easier to learn and harder to shoot yourself in the foot. I must not be as smart as the C++ fans, cause I prefer having a language like that for most of my development. I find that I can get things done in Java faster just because I spend less time catching bugs. My favorite's language is actually Ruby these days, but that's still impractical for a lot of things I like to do.

    I rather like C. For kernel hacking, I can't imagine using anything else. But I haven't done kernel hacking in five years -- it's just not something that comes up in my life these days. :-P And while Java's not simpler than C, it is still safer.

  11. And don't forget about identifiers by Gorath99 · · Score: 1

    Another big advantage is the fact that java identifiers (variable/procedure/class/etc. names) actually make sense. Sure, it's verbose, but syntax completion and a decent resolution on your monitor practically negate that problem. The added clarity more than makes up for it.

    Disclaimer: YMMV, and yes, I do know that you can use verbose identifiers in C/C++. That doesn't help much if nobody else does so.

    1. Re:And don't forget about identifiers by jma05 · · Score: 0

      > Another big advantage is the fact that java identifiers (variable/procedure/class/etc. names) actually make sense.

      ???

      > Sure, it's verbose, but syntax completion and a decent resolution on your monitor practically negate that problem. The added clarity more than makes up for it.

      No. They don't. "Syntax completion" helps me write code, not read it.
      Verbosity != Clarity
      Here is the dictionary meaning of Verbose
      Verbosity: long-winded: using or containing too many words

      Java is verbose because it lacks features that ought to be there in modern languages in the first place to properly express the logic at the appropriate level of abstraction. And that is by design. It was intentionally created for the least common denominator - initially for web monkeys (applet rage) and later for cheap commodity coders for the the enterprise (J2EE craze). Of course, I am not belittling Java coders. Smart people do work with Java. And there are other reasons for it than the language - more jobs, critical mass advantage etc.

      Java was released in 1995. Is Java better than C++? Maybe. Depends on how you look at it. But Java was a step backwards in every way compared to any serious language released from around that time onwards.

      > Disclaimer: YMMV, and yes, I do know that you can use verbose identifiers in C/C++. That doesn't help much if nobody else does so.

      I think you are confusing language features vs language culture. Language culture has more to do with it's application. Business logic obviously will be written quite differently than bit twiddling.

    2. Re:And don't forget about identifiers by LordLucless · · Score: 1

      To be fair, Java was not originally created for applets; the idea behind it was for embedded applications. It just so happened that nobody really wanted it for embedded applications, and the web just started to boom at the right time for applets to catch on. Sun didn't intentionally create it for applet authors, they're just the first people who picked it up.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    3. Re:And don't forget about identifiers by Gorath99 · · Score: 1

      >> Another big advantage is the fact that java identifiers (variable/procedure/class/etc. names) actually make sense.

      > ???

      Let's take a look at some of the functions in stdio.h: "fputs", "getw", "scanf", "tmpnam", "ungetc". To a programmer who's unexperienced in C/C++, these names don't give the slightest clue as to what these functions are good for. They're unpronouncable, hard to remember, and syntax completion won't do you any good unless it also shows a short description of what these functions actually do.

      >> Sure, it's verbose, but syntax completion and a decent resolution on your monitor practically negate that problem. The added clarity more than makes up for it.

      >No. They don't. "Syntax completion" helps me write code, not read it.
      Verbosity != Clarity
      Here is the dictionary meaning of Verbose
      Verbosity: long-winded: using or containing too many words

      Let's not be pedantic over definitions please. You know what I meant with "verbose", which is that identifiers are descriptive and thus tend to be long. That helps when reading code, but is a pain when writing it, unless you have syntax completion.

      >Java is verbose because it lacks features that ought to be there in modern languages in the first place to properly express the logic at the appropriate level of abstraction. And that is by design. It was intentionally created for the least common denominator - initially for web monkeys (applet rage) and later for cheap commodity coders for the the enterprise (J2EE craze). Of course, I am not belittling Java coders. Smart people do work with Java. And there are other reasons for it than the language - more jobs, critical mass advantage etc.

      That is just utter nonsense. Java wasn't designed for the least common denominator, it was designed to be clean.

      >Java was released in 1995. Is Java better than C++? Maybe. Depends on how you look at it. But Java was a step backwards in every way compared to any serious language released from around that time onwards.

      That is just an opinion. And one that you don't even provide arguments in favor of, at that.

      >> Disclaimer: YMMV, and yes, I do know that you can use verbose identifiers in C/C++. That doesn't help much if nobody else does so.

      >I think you are confusing language features vs language culture. Language culture has more to do with it's application. Business logic obviously will be written quite differently than bit twiddling.

      I would call the standard libraries an important feature (positive or negative) of any language.

    4. Re:And don't forget about identifiers by aevans · · Score: 1

      /* cperfected.h
        *
        * this c header file fixes the core problem with the c language.
        * apparently some of the variable (?) and function names are not
        * entirely intuitive, and thus the language heretofor had been
        * fatally flawed. No more. Include this library and breathe
        * new life into a formerly useless antiquated language.
        *
        * This code is released under the
        * Microsoft Shared Source License
        */

      #define filePutString(x, y) fputs(x, y)

      int function getWord(FILE *stream)
      {
        return getw(stream)
      }

    5. Re:And don't forget about identifiers by jma05 · · Score: 1

      > Let's take a look at some of the functions in stdio.h: "fputs", "getw", "scanf", "tmpnam", "ungetc".
      > They're unpronouncable, hard to remember, and syntax completion won't do you any good unless it also shows a short description of what these functions actually do.

      The standard library of C is small. Small enough to easily remember everyone of the functions. For such a case, it is actually desirable to have short names. That is usually not the case with Java.

      > To a programmer who's unexperienced in C/C++, these names don't give the slightest clue as to what these functions are good for.

      C was never meant to be used by the inexperienced for casual purposes. They are more appropriate languages for that.

      >> Sure, it's verbose, but syntax completion and a decent resolution on your monitor practically negate that problem. The added clarity more than makes up for it.

      >No. They don't. "Syntax completion" helps me write code, not read it.
      Verbosity != Clarity
      Here is the dictionary meaning of Verbose
      Verbosity: long-winded: using or containing too many words

      > Let's not be pedantic over definitions please. You know what I meant with "verbose", which is that identifiers are descriptive and thus tend to be long. That helps when reading code, but is a pain when writing it, unless you have syntax completion.

      I am not being pedantic. You and I have very different understanding of the word "verbose" and it is important to have a common accepted definition rather than subjective interpretations of it. For me, it means "redundant". For you, it means "descriptive".

      Using tell-tale identifiers and profuse comments is not my idea of verbose. That's good. Nor does it have anything to do with language design. It is a matter of how it is used by specific programmers. C programmers use descriptive identifiers too. Take a look at GTK for example. Here is one. gtk_button_new_with_label. I am not going to call the language verbose for that descriptive name.

      > That is just utter nonsense. Java wasn't designed for the least common denominator, it was designed to be clean.

      Adopting C++ syntax to avoid syntax shock.
      Stripping down useful features like generics (and eventually realizing the folly).
      "Protecting" programmers with checked exceptions.

      Clean means something else. It implies consistancy. I don't disagree. Java was largely consistant.

      Sun resisted adding features till they were challenged by C#. Till then the response was "You don't need that feature. you can get around that limitation by this (long wound) approach".

      >Java was released in 1995. Is Java better than C++? Maybe. Depends on how you look at it. But Java was a step backwards in every way compared to any serious language released from around that time onwards.

      > That is just an opinion. And one that you don't even provide arguments in favor of, at that.

      http://en.wikipedia.org/wiki/Programming_language_ timeline#1990s
      Humor me. Baring special purpose languages and language updates, which general purpose languages do you think are worse off than Java by features.

      >> Disclaimer: YMMV, and yes, I do know that you can use verbose identifiers in C/C++. That doesn't help much if nobody else does so.

      >I think you are confusing language features vs language culture. Language culture has more to do with it's application. Business logic obviously will be written quite differently than bit twiddling.

      > I would call the standard libraries an important feature (positive or negative) of any language.

      I wasn't talking about standard libraries anywhere there.

  12. Re:Not exactly a good thing by $RANDOMLUSER · · Score: 2, Insightful

    Think harder.

    How about a bazillion prewritten, documented, tested, standardized, open source library modules, many of them supplied by Sun with the language, to do bigmath/network/file/database/sql/2D-3Dgraphic/GUI /whatnot ops?

    Tell you what, you roll anything trickier than "hello world" from scratch in C/C++, and I'll do the same in Java, and we'll see who has the choice of more predefined stuff to use, and who finishes faster with a program that runs more correctly.

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  13. Don't get your hopes up.... by Anonymous Coward · · Score: 0
    Sun did the same thing with TCL years ago by hiring Oosterhoot and his gang. After the inital hoopla, not much became of it, really.

    -- ac at home

    1. Re:Don't get your hopes up.... by dwarfking · · Score: 1

      Speaking of TCL, why is it that it gets so little attention? With starkits TCL has the ability to simply create a single file executable, that doesn't require a local installation of a heavy VM.

      It offers the scripting abilities people seem to want, is fairly easy to learn, has a nice set of available libraries.

      Why does it seem to get overlooked? To me the startkit capability puts it head and shoulders above all the other scripted/interpreted languages since for little more than a meg in size I can have, as an example, a complete webserver in a single file that only requires a file copy to install.

    2. Re:Don't get your hopes up.... by Anonymous Coward · · Score: 0

      For one, TCL/TK has VERY poor support for alternate input methods: ie: UIM/XIM under linux. I pulled my hair off for several weeks trying to make japanese input work with TCL/TK only to finaly figure out the latest stable version did not support it "too well" and that I had to use an older version... TCL will forever be a bad memory to me.

    3. Re:Don't get your hopes up.... by nuzak · · Score: 1

      > Speaking of TCL, why is it that it gets so little attention?

      Most of us still get a little bit of an upchuck reflex when remembering the hype that Scriptics put behind it.

      It still has lousy regular expressions, when the rest of the "quick-and-dirty" languages support PCRE.

      Its OOP models are bolted on to a degree that makes perl look clean. Most of them don't even garbage collect objects, you have to free them yourself.

      Its quoting model and its whole parser is weird and flakey. Everyone gets bitten by it sometime.

      Doing simple math expressions requires using "expr". I can see the logic behind it, but it's gratuitous to most people expecting a language and not a shell script.

      It has "upvars" but no other sense of scope. Doing tk apps is particularly "interesting" since all events execute only in the global scope and you have to use the hardwired little event language to get anything like callbacks.

      It's still really really slow.

      It's got a lot of nice features, but many of them are new, when other languages were fulfilling practical needs.

      --
      Done with slashdot, done with nerds, getting a life.
    4. Re:Don't get your hopes up.... by Anonymous Coward · · Score: 0

      Easy: TCL sucks as a language.

  14. Re:Not exactly a good thing by masklinn · · Score: 2, Informative

    To be fair, Java does have some advantages over C and C++ for application development, and I think that Java has worked wonders in the corporate world.

    So do many other languages. The main reason why Java worked wonders in the corporate world is marketting. Basically, Java is a victory of marketting over engineering.

    For example, Java has static typing, which helps catch errors at compile time.

    Doesn't have near enough to be truely useful, and the explicit typing (lack of type inference) make it extremely verbose and annoying to work with. Much more than statically typed languages with type inference and extremely strong type systems (à la Haskell) for example.

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  15. Re:Not exactly a good thing by masklinn · · Score: 1

    Java has garbage collection and is a simpler language than C++. The Java library is huge, but the actual language doesn't have nearly as many things that will bite you in the ass as C++ does. So it's easier to learn and harder to shoot yourself in the foot. I must not be as smart as the C++ fans, cause I prefer having a language like that for most of my development. I find that I can get things done in Java faster just because I spend less time catching bugs. My favorite's language is actually Ruby these days, but that's still impractical for a lot of things I like to do.

    You should try the D Programming Language (from Digital Mars). It's much cleaner than Java, and faster. Has all the advantages of java (but the number of third-party packages I guess) with pretty much none of the inconvenients.

    Give it a try between two Ruby sessions ;)

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  16. Too young to remember Tcl/Tk at Sun by Richard+W.M.+Jones · · Score: 1
    Well, it's hardly the first time that Sun has got involved in scripting/dynamic languages.

    Back in 1994, Sun hired the core developer behind Tcl/Tk, and asked him to form a team around the language / graphical toolkit. The toolkit was very widely used and quite promising (for the time), but it languished at Sun and eventually they dumped it.

    Rich.

  17. Re:Not exactly a good thing by Anonymous Coward · · Score: 0

    - You can't very much blame the state of Azureus on Sun. It was, after all, the Azureus developers who made it the way it is, through language choices and programming practices.

    Yes, of course. My point is that the corporate backing behind Java could push relatively new programmers (for example those who never had to play with an accumulator register, or align manually data to even addresses in a M68K asm code, or those who know the difference between C89 and C99 - Ok, now you know I'm 40+ :-) to make a choice without regard of the inner working of their code, its requirements and the weight it will impose on the system or other applications being run on it. The infamous saying "Nobody was ever fired for choosing Microsoft" could be abused here as well.
    About Azureus, the point is that almost all if not all its weaknesses are due to the choice of Java as its language of choice. This should ring a bell.

    Just to clarify my take on Java. I'm not against it as a language, the 10% I know about it says that it's well designed, powerful and pretty straightforward to learn, but I can't accept being forced to run most software under a vitual machine which makes it slower by orders of magnitude.
    Using a JVM because it allows a financial application to be hidden within security layer is also a myth: one could as well hack a Z80 or 6502 emulator to do the same (no networking, no access to local files, no way to bypass the parent calling process permissions, etc. everything is already there) in much much much less cpu cycles.

    I can barely understand corporate choices like "being delivered on schedule" or "instead of 2 good programmers it can be done by 10 monkeys, and they still cost us less", but for Open Source and community driven projects Java should never be considered. Let alone that if Sun goes bust (or decides to kill the platform) your project is esentially doomed. Both are very unlikely scenarios, but not impossible.

  18. Jython -- they need a boost too by ovapositor · · Score: 2, Informative

    It would be nice if Sun hired the Jython team as well. :) Consider that they would then have two very popular scripting languages nicely supported under their portfolio.

    I just don't think they are taking .NET seriously enough.

  19. cleaner language? by backwardMechanic · · Score: 1
    One of the benefits of this is that it will cause features to be thought and debated about more, which I believe results in cleaner, nicer languages.


    I'm all for debate, but does that really create cleaner languages? Is c++ cleaner now that a panel decide what goes into it (I'm thinking of the STL here)? I kind of like the model of one guy with a neat idea, trying to produce a language that works the way he wants it to.

    1. Re:cleaner language? by dkf · · Score: 1

      The advantage of a committee is not that the committee is better than one man with a vision (I can't think of any instance where that's true, even when the committee includes the original one man) but rather that the committee can keep going even when some of its members leave or are busy. The one-man-band approach can't do that.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  20. Re:Not exactly a good thing by RAMMS+EIN · · Score: 1

    FWIW, I completely agree with you. I just wanted to defend Java for once. ;-)

    --
    Please correct me if I got my facts wrong.
  21. Re:Not exactly a good thing by Anonymous Coward · · Score: 0

    )and who finishes faster with a program that runs more correctly.

    That program -and its jvm- will however run almost everywhere under a C++ + C operating, system under a C+asm kernel, and often will call functions contained in C or C++ libraries for speed reasons. This is a chain where one link can break all the others. If your Java program still runs fine it's because even software written with other languages can (as it did for decades).

  22. It would be interesting by gnufied · · Score: 2

    People started speculating , this might be in response of Microsoft throwing weight behind Python, though I am not in that camp....but it would be interesting to see that how these interpreted languages will perform when hijacked by these JIT compilers( or whatever these sun guys tell you about their shiny bytecode stuff.)

    I have seen JRuby code and the effort to use Java libraries from Ruby and it was plain scary, I would rather do pure Java. And support for rails is "miles before you and me can do some real code". According to Tom(one of the authors of Jruby):
    "It should be stated clearly here, that the JRuby this is running on is not released code yet. In fact, our next release 0.9.0 will not quite be running this application out of the box"
    So, we have a tight case there. Besides Matz is also working on Ruby2.0, which will have VM execution kind of stuff. So, though you may celebrate if you want, I would rather like to have C Ruby for my breakfast. There are two major problems of Ruby:
    1. Slow (yes its slow and stylish)
    2. GUI programming
    And guess, what Jruby is not going to bring anything better on the table on these two fronts. With Introduction of IronPython, you can do GUI programming on Windows happily and PyGtk was there as shining example of one of the finest GTK bindings ever produced. Whereas, if you want to do, GUI programming with Ruby, how many REALLY good choices do we have? Though this might be humble opinion, but I have hated GTK for gui stuff, it sucks. Qt and Windows Forms are much better. Java applets suck even more.

    1. Re:It would be interesting by olabini · · Score: 1

      Yes, Matz and Ko1-san is working on Ruby 2.0 (Rite). They also say that this won't be here for at least 18 months, and at that point the VM still needs to support older extensions, which means the architecture is severely limited. It won't be possible for Rite to get that far ahead of Ruby 1.8 in terms of speed. But, regarding JRuby and speed; Right now JRuby is interpreted. The current planning includes basic JIT compilation to byte code for Ruby scripts. This could easily give JRuby as much performance as MRI in a few months.

  23. Re:Not exactly a good thing by Anonymous Coward · · Score: 0

    AFAIK Ruby is garbage-collected. So why does it have to run on Java?

    Also, I doubt Sun makes a big commitment to Ruby, as they already have Groovy for the same purpose (Java-suited dynamic language).

  24. Typecast this by Anonymous Coward · · Score: 0
    One of the arguments for porting a language to the JVM or CLR is that you can use the standard libraries. Would it be possible to go the other way and compile GNU classpath using GCJ and then write generic JLib bindings to dynamic runtimes?

    You can go right ahead and flame me now.

  25. .NET already has this by tiedemann · · Score: 1

    There seems to be an ongoing effort to make ruby run well on the .NET-framework aswell, check out IronRuby or Ruby.NET for further reading. Ruby.NET supposedly runs on Mono although it requires a few patches.

  26. after letting Jython languish by hashmap · · Score: 5, Insightful

    I gots no love for Sun ... after all Jython been out for half a decade, and Sun has shown little to no interest in it ... just imagine how much better it would be if they had the foresight to support it and improve its performance

    As far as I'm concenrned Sun is playing catch-up with Microsoft, and this is no more than a half assed response to MS releasing IronPython

    1. Re:after letting Jython languish by LarsWestergren · · Score: 1
      I gots no love for Sun ... after all Jython been out for half a decade, and Sun has shown little to no interest in it... just imagine how much better it would be if they had the foresight to support it and improve its performance


      They can't support every open source project and everyones favourite language under the sun. From what I have heard development on Jython is picking up again, and it performs quite well. Perhaps Sun thought resources were better spent on improving speed and stability in the core, so they didn't lose the customers they already had.

      The fact that they have hired the JRuby developers is not intended as a slight against the other scripting languages either, as Thomas writes in his blog:

      1. Does the Sun move mean Groovy, Jython, BeanShell, and friends are being cut out of the picture? Has Sun chosen a winner in the dynamic languages realm?

      Absolutely not, on both counts. I got involved in JRuby for one reason: Ruby was underrepresented in the Java world, and happened to be a very attractive language to me. Jython was fairly well-established and performed quite nicely. Groovy was gaining some traction and seeing an upswing in developer interest. JavaScript was scheduled to be included in Java 6. What about Ruby? JRuby didn't run most Ruby apps, had known major incompatibilities with C Ruby, and performance was very poor. Something had to be done.


      As far as I'm concenrned Sun is playing catch-up with Microsoft, and this is no more than a half assed response to MS releasing IronPython

      That is just ridiculous. As I stated in a previous post, the increased support for dynamic languages on the JVM has been planned since at least 2003. Even hiring these guys have been planned for a long time, how fast do you think the HR department works on a big company like Sun? The fact that Microsoft announced the IronPython support a week ago is just a coincidence.
      --

      Being bitter is drinking poison and hoping someone else will die

    2. Re:after letting Jython languish by RAMMS+EIN · · Score: 2, Informative

      Absolutely. Sun played the lock-in game by positing Java as the One True Programming language. That worked pretty well, and so they slacked off, not improving the language (although they did a good job at the runtime, but they could have gotten both right in the first place), and not helping better languages target their platform.

      Then Microsoft came along and released a Java that was a better Java, on top of a JVM that was a better JVM. On top of that, they actively supported language diversity, encouraged efforts to port popular languages, and changed the VM to accomodate these languages. Soon enough, people were jumping ship; from Java to C#, because it's a better language, and from whatever they had to .NET, because it's a better platform.

      Now Sun is playing catch up. They added lots of essential features in Java 5, finally making Java a somewhat useable language. Apparently, they've also gotten the message about supporting multiple languages. And they've been working on opening Java to make it more attractive to those who love software freedom or use platforms that Sun doesn't support.

      It will be interesting to see it all play out. At least, I'm glad to see that Sun and Microsoft are having such good influences on one another; Microsoft coming with a very open platform in response to Java, and Sun improving the Java platform tremendously in response to .NET. While they compete, the rest of the world wins.

      --
      Please correct me if I got my facts wrong.
    3. Re:after letting Jython languish by sankyuu · · Score: 1
      As far as I'm concenrned Sun is playing catch-up with Microsoft, and this is no more than a half assed response to MS releasing IronPython


      In case you didn't know, IronPython (python on .net) was developed by the same person as Jython. I was wondering too why jython seemed to be languishing. It seems that Microsoft beat Sun to it and hired the main developer of Jython, who now dedicates most of his time to IronPython.

      But it looks like Python on Java has not stopped altogether. After searching a bit, it looks like other folks trying to write python in python (pypy) to make it easier to port python to other platforms, e.g. C, java, etc.
    4. Re:after letting Jython languish by toriver · · Score: 1

      Then Microsoft came along and released a Java that was a better Java, on top of a JVM that was a better JVM.

      No, they released a Java that had contract-violating proprietary extensions to support a proprietary library and native calling mechanism. (I blame Sun for not specifying JNI until 1.2, meaning Microsoft and Netscape had to come up with their own interpretation of "native".) And it was a better JVM than Sun.s 1.1.x in speed, but it wasn't better once J2SE 1.2 was out and Microsoft failed to update their implementation.

      On top of that, they actively supported language diversity, encouraged efforts to port popular languages, and changed the VM to accomodate these languages.

      Ah, you were talking about .Net and the C# language. That's more a merge between C++ and Delphi/Object Pascal than Java - Anders Hejsberg was after all hired from Borland to make it. And as for "change the VM to accomodate the languages", it's more a story of writing a VM for C# and wrestle other languages like VB and C++ into the confines.

      Why can't .Net fans see that Java is still the dominant developent platform of the two? The "catch up" is to add features into the language that C# "borrowed" from other sources. So C# is playing catch-up just as much as Java.

    5. Re:after letting Jython languish by funfail · · Score: 1

      I believe the parent poster meant C# as a better Java and CLR as a better JVM, not J++ and MS-JVM.

    6. Re:after letting Jython languish by chris_7d0h · · Score: 1

      I'm sorry to hear that your pet-language didn't get endorsed by a market actor and in a way which would have benefitted you. Now aside from that, I however commend SUN for making this endorsement for the reasons I'll outline below.

      The gist of my point of view in this regard is that any effort at further developing, refining, standardizing and documenting useful tools and technologies is something I consider to be a good thing. The motives a company has for doing this matters very little to me, since I'm a pragmatist seeking the best process, tools, governance model or what have you for any given problem context.

      If this effort by SUN means I get much needed standardization and documentation of the Ruby language, it's an initiative which benefits *me* regardless of the reason SUN is doing it. If a resulting standardization effort would be supported by peer vendors like IBM and Weblogic I could very likely expect to see a R2EE stack and the resulting application server support for Ruby, with very possibly a clean way of component interaction between Java modules and (j)ruby modules in the same JVM process. Or at least the latter, allowing me to reuse the existing Java stacks.

      There are some really nice constructs in parts of the J2EE and J2SE stacks which I would like to use through the Ruby language, such as the servlet specification realization and the various containers (J2EE, pico and Spring ones). Now I know a lot of Ruby (and esp. Rails) people like to advocate "Just write all the code yourself to get fat free libraries"[1] in contrast to re-using "bloated libraries and stacks"[1] as is common in most other languages and esp. in Java. This type of argument has bugged many developers whose job it is to solve real problems under constraints of budget and time and as such a proper governance model[2] for Ruby is essential. It is essential in that it helps propel the language from being just another language to a platform which may be used as an alternative or a complement to the dominating Java language for enterprise development.

      Being able to use Ruby and Java modules together in the same JVM with the module contracts between the two languages being interface based would "make my day". I firmly believe there are problems and tasks where strongly typed languages are preferred while at the same time there are other problems where a dynamically typed language would be most advantageous. Having the option of choice between the two while being able to retain existing infrastructure, middleware and architectures would be a sweet thing indeed.

      [1] Both statements are paraphrased from variants heard uttered or seen written on various web sites. The underlying argument being that since the Ruby language is so "simple", "verbose" while still being succinct the effort for writing libraries would be lower than in other languages. This argument as most people know is seldom an option due to project constraints such as time, budget, skills and domain expertise.

      [2] You may think what you will of SUN's stewardship of Java and the related specifications, but one thing is clear and it is that those specifications have tremendous buy-in both by the major IT vendors but also by most corporations around the globe. I don't think there is any denying that. If we at least acknowledge and attribute a bit of this success to SUN, then I at least don't think that the Ruby language would be worse off by SUN supporting it than otherwise.

      --
      In a society that believes in nothing, fear becomes the only agenda ~ Bill Durodié
    7. Re:after letting Jython languish by gnufied · · Score: 1

      +5 Insightful for a half assed response, already pointed by Charles O Nutter(on ruby-talk), this is not directly in response to Microsoft's IronPython, the talks were going on for quite sometime. As i said earlier, this is just a effort to bring a language ecosystem around their VMs/JIT compilers. Its for sure gonna kill all those interpretor authors in the long run(*if JRuby/IronPython succeeds in the long run*)

      Now, some hot headed open source evangelist may point that, OSS is all about choice and hence even if JRuby succeeds on the cost of C Ruby, matz will continue his effort. Yes probably, he will but fame is a big thing. Do you thing, Linus would have continued with Linux for soo long, if it would have been used by few uber geeks.

      Personally, I would like to see C Ruby succeed and beat the hell outta all those bastards, who are trying to hijack ruby.Besides, Matz is a excellent language designer...one of the best. If JRuby succeeds, then all he has to do is churn out language specifications...and let folks implement them. A scary thought if you ask me.But of course, none of this is gonna happen..since C Ruby has the upper hand.

  27. JSP? by lbmouse · · Score: 1

    Does anyone know for sure where/how/why JSP is going to fit in all of this?

    1. Re:JSP? by Anonymous Coward · · Score: 0

      Wellllll... uh... you can write random scriptlets in Ruby, have them compiled as Java .classes, and call them from JSP? Surely cooler language for writing taglibs than Java itself. Just a guess...

    2. Re:JSP? by vhogemann · · Score: 1

      Well,

      Not JSP itself, but you'll be able to write your servlets using Ruby. I think that eventually someone will even port ActiveRecord to JRuby, and you'll be able to use RubyOnRails inside your favorite servlet container, such as Tomcat, and have access to the best from both worlds.

      You can already use scripting languages, such as Ruby, to write Struts' ActionServlets, just to give you an example.

      --
      ---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
    3. Re:JSP? by WWWWolf · · Score: 1
      eventually someone will even port ActiveRecord to JRuby

      I was under the impression ActiveRecord already worked under JRuby? After all, Camping apparently works under JRuby and it uses ActiveRecord. The tutorial speaks of something about JDBC.

      Okay, so it may not work to really useful extent yet, and I hear Rails definitely won't work yet, but it's probably a start...

    4. Re:JSP? by RAMMS+EIN · · Score: 1

      JSP is like embedding Java code in HTML, aye? Well, you have been able to do same with Ruby for a long time; see, for example, erb, eruby, amrita, and kwarts.

      Also, note that you can pretty simply get a similar effect using just pure Ruby, by using heredocs and interpolation, e.g.

      print ...
      #{some_ruby_code here} ...
      EOT

      --
      Please correct me if I got my facts wrong.
    5. Re:JSP? by RAMMS+EIN · · Score: 1

      Right, so the HTML in the example that I gave went missing, of course. Oh well, I'll blame it on Slashdot's "Plain Old Text" not actually handling plain old text. I guess if you view the page source you can get the example, but the idea is that you can put Ruby code in #{...} inside whatever you have, and it will be executed and whatever it returns converted to a string and inserted in the whatever you have. Works not just for HTML, but for anything you use it with.

      --
      Please correct me if I got my facts wrong.
  28. Re:Not exactly a good thing by Grr · · Score: 2, Insightful
    Tell you what, you roll anything trickier than "hello world" from scratch in C/C++, and I'll do the same in Java, and we'll see who has the choice of more predefined stuff to use, and who finishes faster with a program that runs more correctly.

    I pick a 3d shooter. Now you get to pick anything less yawn inspiring than a database driven office app right? This is a fun game. ;)

    Seriously though, each language has applications that it's well or badly suited for. Each moderatly proficient software developer should be able to pick the right tools for the job and be able to use them. No need to start holy wars over them.

  29. Re:Not exactly a good thing by LordLucless · · Score: 1

    for Open Source and community driven projects Java should never be considered.

    Open Source folks will generally write in a language they're familiar with. For a lot of people, that's Java. I agree with you that the JVM is unnecessary complication in most situations, but the language itself is nice, with a large, cohesive, well-documented class library. Purely on a language basis, I prefer Java to C/C++. A lot of the time when I'm developing something for myself, I'm doing it more for the chance to muck around than to get a lean, mean, performing machine. But the Azureus folks probably wanted to fool around and see what they could to with the bittorrent protocol, and because they knew java, that's what they used. In that scenarior, efficiency and performance were never goals, so they were never factored in to the choice of language.

    Let alone that if Sun goes bust (or decides to kill the platform) your project is esentially doomed. Both are very unlikely scenarios, but not impossible.

    Nah. Even if development on Java was totally halted, existing Java programs would run fine. Even if distribution of Sun's JVM was halted, it's installed on many computers already (and I believe it's licence allows it to be redistributed with your program?). Even if Sun goes belly-up, there's no reason for Java to die.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
  30. Great, now if only... by DavidNWelton · · Score: 1

    ... if only someone would throw some money my way to work on Hecl (http://www.hecl.org/) :-)

  31. Re:Bad News by namekuseijin · · Score: 1

    "it will cause features to be thought and debated about more, which I believe results in cleaner, nicer languages"

    I can see where this will lend to: a convoluted syntax more close to Java and less of the conciseness of Smalltalk and Perl...

    --
    I don't feel like it...
  32. Re:Bad News by RAMMS+EIN · · Score: 2, Interesting

    I very much doubt that. It's languages like Perl, PHP, Ruby, and Python that have the odd features that cause massive problems when the language grows out of its initial niche and starts being applied to large, Real World problems. Many of these languages have little hacks that seemed advantageous when originally conceived, but later turned against them. Java has comparatively few of these issues (no list context vs. scalar context, scopes that don't nest, unpredictable syntax, etc.) - its main problem is that it's extremely verbose and repetitive.

    --
    Please correct me if I got my facts wrong.
  33. Re:Not exactly a good thing by Anonymous+Brave+Guy · · Score: 1

    Damn, where are my mod points?

    You're absolutely right. Java and C++ are different tools, with different strengths and weaknesses. Attempting to compare them like-for-like is meaningless, as is making general statments about which language is "better".

    If you want to do serious mathematical modelling, for example, you have a pretty limited selection of languages available. Most of them start with "C". Most of the others start with "M" and are written in languages starting with "C".

    On the other hand, for CGI, most of the languages I use start with "P". I wouldn't dream of trying to write a database-backed web-page generator in C++, because I could have written the whole thing in Perl or PHP by the time I'd worked out how to link in the right libraries for C++.

    Java seems to have found the (rather large) niche of developing back-end, "business" applications (i.e., database apps). Again, I probably wouldn't choose to use C++ there, since Java already has loads of pre-supplied functionality, and perhaps as importantly, a whole community of developers with experience in the field.

    As the parent says, it's all about picking the right tool for the job. Most of us have succumbed to language holy wars in the past, and hopefully most of us have since outgrown them.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  34. Another SmallTalk Derivative (bit OT) by jscotta44 · · Score: 1

    This is a bit off topic but maybe in line with the current thread. There is a SmallTalk/C derivative (at least heavily influence by SmallTalk and built on top of C). The Cocoa Frameworks using Objective C are gaining a bit of traction, even if it is only used for the niche Apple Macintosh market.

  35. Sun has a lot to offer by kahei · · Score: 1


    So, we have a tight case there. Besides Matz is also working on Ruby2.0, which will have VM execution kind of stuff. So, though you may celebrate if you want, I would rather like to have C Ruby for my breakfast. There are two major problems of Ruby:
    1. Slow (yes its slow and stylish)
    2. GUI programming
    And guess, what Jruby is not going to bring anything better on the table on these two fronts.


    I disagree -- there are more problems with Ruby than just those, and they are things Jruby could fix.

    The big problems are:

    --Slow: unlikely to be completely fixed by using a JVM, but it would probably help. Matz's VM was going to be ready Real Soon Now in about the year 2000.
    --Unicode: The JVM would FINALLY give Ruby the ability to take in text in various languages and just process it in the normal way, rather than messing with individual bytes and having Japanese be a special case.
    --Threads: The JVM would FINALLY give Ruby proper threads.

    And another problem is:

    --Project Management: Involvement from Sun might make for a more efficiently run, less 'hobby like' project.

    So, I'd say there's a lot Sun could offer to Ruby. Whether any of it will happen I don't know -- and of course bad Ruby code is a lot worse than bad Java code and I'm not sure if I wouldn't rather people stuck with Java.

    --
    Whence? Hence. Whither? Thither.
  36. Re:Not exactly a good thing by Abcd1234 · · Score: 1

    but the number of third-party packages I guess

    And thus you illustrate why it's not successful. Let's pick a quick list of very successful languages:

    Python
    Perl
    Ruby
    Java .NET

    You know what this list has in common? An extremely powerful set of standard libraries. Hell, the whole reason I enjoy working with Perl and Java is because of the very rich set of APIs made immediately available to me (and in the case of Perl, this extends to CPAN, which is ridiculous in it's breadth).

    APIs are the key. Without them, no developer will bother. As a contrasting example, despite the fact that I love the concepts in Lisp, I've never embarked on a major project in it because I'm invariably forced to roll my own <insert library here>. The same is true of Objective-C (unless you're on a Mac), Smalltalk, and I'm sure many *many* others.

  37. Missing the point by metamatic · · Score: 2, Insightful

    Ruby on Rails has got a lot of attention. Many web sites that would have been built using Java are being built using Rails, and people were starting to ask if Ruby on Rails was the new, better Java.

    This is an insurance policy for Sun, and a way for them to provide a migration path and say "Oh, OK, you can run your Rails site on our Java platform while you build the next version using J2EE".

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:Missing the point by oldwarrior · · Score: 0

      >>Ruby on Rails was the new, better Java

      More like a new, better J2EE. If they do what you say, they will abandon the J2EE Epic Project for a lot of agile interations. And have a lot more fun.

      --
      If it were done when 'tis done, then t'were well it were done quickly... MacBeth
    2. Re:Missing the point by RAMMS+EIN · · Score: 1

      Ruby the new and better *Java*?

      No. Ruby and Java are very different languages. Java is a statically typed language with explicit type annotations, which requires you to handle exceptions or explicitly pass them on. It looks like a dumbed-down version of C++. There are not too many features, and definitely not a lot of flexibility. Object-oriented programming is the only paradigm: everything you write has to be part of a class definition (ok, or an interface definition).

      As such, its strengths are similarity to programmers who already know C or C++ (or, really, one of the many languages that resemble C syntax), reasonable assurance that a program that makes it through the compiler will work well, and not too many features that might confuse programmers.

      Its weaknesses are mostly its extreme verbosity, the fact that many techniques that are elegant in other languages can only be emulated in an ugly way by using classes somehow (e.g. static methods of some utility class, rather than simple functions, and anonymous classes with only one method instead of anonymous functions), and the fact that refactoring is very expensive: if you change a method's signature (the types it takes or returns, or the exceptions it throws, code needs to change in a _lot_ of places).

      Ruby is a dynamically typed language, with no type annotations and no need to explicitly handle exceptions. In terms of features and syntax it's somewhat of a merger between Python, Smalltalk, Lisp, and Perl. Everything is an object or part of an object (there are no "primitive types" as in Java), but you don't have to make that explicit all the time. Ruby programs tend to be a mixture of procedural and object oriented style, with heavy use of functional features (in Ruby, blocks and iterators).

      Ruby's strengths are its conciseness and flexibility, and the fact that many practical features are built-in. Its syntax is easy for humans to work with (I'd say easier than many other languages), although there are a few pitfalls, and it doesn't look like C very much.

      The weaknesses of Ruby are mostly the dark sides of its advantages. It's concise and flexible because there are no type declarations or explicit exception handling, but this also means the compiler can't do a lot of checking, meaning bugs are only found when your program is run. The power that comes from being multi-paradigm (especially the functional one) allows for more elegant code, but also means programmers have to know all these paradigms to understand the code. And the syntax does have its pitfalls, especially with regards to blocks.

      Implementation-wise, Ruby programs are also interpreted, and the interpreters are dog slow. On the other hand, Ruby implementations are small compared to Java runtimes. Ruby and JRuby are open source and complete, whereas with Java, the choice is between complete, performant and proprietary, or incomplete, slow, and open source. Of course, these are all implementation issues, and will likely be solved over time (the FSF is working hard on a fast and complete Java runtime, and YARV will be a fast Ruby runtime, both of these will be open source).

      --
      Please correct me if I got my facts wrong.
    3. Re:Missing the point by metamatic · · Score: 1

      I know all that. (I write both.) However, from an end user functionality point of view, both languages are used for building dynamic web sites, so Ruby (with Rails) is viewed as an alternative to Java (with J2EE).

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  38. Re:Not exactly a good thing by masklinn · · Score: 1

    Standard Libraries are first-party packages, I was talking about third-party packages. D has a fairly good stdlib (less extensive than Python's or Java's, but pretty much at Ruby's level, and with a documentation that doesn't quite suck as much).

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  39. embrace and extend by oohshiny · · Score: 1

    So, the creator of a proprietary platform acquires key developers of open source add-on for that platform. This likely means that Sun will add more Sun Java-specific features to JRuby and that JRuby will not work on IKVM or Classpath in the future.

    I wonder whether Sun tried acquiring Jython first and was turned away...

    1. Re:embrace and extend by vhogemann · · Score: 1

      I would mod you troll if I had mod poits...

      Java is an OPEN platform, based on well established standarts that are made public, royality-free. Everyone is free to make their own implementation of the JavaVM, this commitment to open standarts made efforts like IKVM, Kaffe, Classpath and ohters possible on the first place.

      Also, every bit of the Sun's Java implementation sources are avaliable. And every future modification on the Java standart is made public avaliable way before its deployed, including a reference implementation.

      So, tell me... What do you think Sun will do to "embrace, extend and extinguish" JRuby?

      --
      ---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
  40. Re:Not exactly a good thing by Viol8 · · Score: 1

    "No, the real advantages are safety and garbage collection"

    Only an advantage in some areas. If you're writing a low level
    caching algorithm such as for an RDBMS server or file system
    driver you don't want the runtime deciding when to flush the
    memory , you want to do it when you think its most efficient.
    Java is an application programming language , its not for
    low level code where you have to know what you're doing and
    thats where C/C++ comes into its own.

  41. How long will it last by chamont · · Score: 1

    Sorry to play the cynic, but you have to ask how long this goodwill will last. Sun has a layoff announcement every 6 months it seems. "Non-core" business units are shut down at every turn.

    I love Sun, and I think it's great that they're doing this. I hope they prove me wrong.

  42. Re:Not exactly a good thing by aurelian · · Score: 1
    If you want to do serious mathematical modelling, for example, you have a pretty limited selection of languages available. Most of them start with "C". Most of the others start with "M" and are written in languages starting with "C".

    Actually I'd say Fortran90 is probably a better language for serious numerical computing than the languages you described: it handles array computations natively and parallelizes well.

  43. ACK! by oldwarrior · · Score: 0

    Ruby, and it's raison d'etre Rails, are so open and free of comittee-paralysis that the thought of having it over-engineered, -documented, and -planned, gives me the heebeejeebees. The lang is supposed to be the common sense anwer to what went wrong with Java. Sun has a widely used and distributed, wreck of a language system and they should keep their mitts off of the next generation of tools.

    --
    If it were done when 'tis done, then t'were well it were done quickly... MacBeth
  44. Re:Not exactly a good thing by Abcd1234 · · Score: 1

    Hmmm... touche. ;) Well, the point still stands, I think. The availability of third party packages is, IMHO, nearly as critical. All those languages, as well as C and C++, have a rich set of third party libraries available. And going back to Lisp and Smalltalk, clearly this isn't the case (even worse, there isn't even a standard library framework for those languages).

  45. Re:Not exactly a good thing by masklinn · · Score: 1

    they already have Groovy for the same purpose

    Except that (C)Ruby works, is stable, is actually used (more than Jython I mean, which is used quite a lot), and is not designed by taking everything that looks shiny and shoehorning it in a stupid language.

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  46. Re:Not exactly a good thing by Anonymous+Brave+Guy · · Score: 1

    Indeed, Fortran is one of the few other languages that's in the game. Whether it's still ahead of C++ on raw performance grounds is a bit of a moot point these days. Some class and template wizardry in C++ libraries now means heavily optimised data structures and basic algorithms are available, which negates a lot of Fortran's native array advantage. Also, things like the F2C conversion library now allow important Fortran-based libraries like BLAS and LAPACK to be built natively on C++ with all the optimised algorithms still available. I expect Fortran still has a significant edge on highly parallel architectures, where C++ isn't exactly geared up for powerful optimisations, but for anything more desktop-based, it's probably much closer.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  47. C library versus C++ library by hummassa · · Score: 1

    You know, the fact that you can use C libraries in C++ programs does not mean you should do it. The real C++ library (STL) is extremely clear, without any unneeded verbosity.

    I can't think of anything clearer than map or list (examples that apply to java, also), or:

    for_each(l.begin(), l.end(), _1.print());

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  48. My Brain's Infinite Looping by Stringer+Bell · · Score: 1

    I've never heard of JRuby before this. However, according to the Wikipedia entry, it allows you to run Ruby code within Java. Cool. Further down, it says you can also run Java code within Ruby within Java.

    Whoa.

    So, can you run Ruby code within Java within Ruby within Java? What about running Java code within Ruby within Java within Ruby within Java?

    My head hurts...

  49. lies by oohshiny · · Score: 0, Flamebait

    Java is an OPEN platform, based on well established standarts that are made public, royality-free. Everyone is free to make their own implementation of the JavaVM, this commitment to open standarts made efforts like IKVM, Kaffe, Classpath and ohters possible on the first place.

    That's a bunch of lies.

    Sun's Java specifications are available only under restrictive licenses and Sun has withdrawn them from standards bodies twice because Sun was unwilling to allow independent implementations. Go try to download the J2SE specifications from Sun's web site and look at the licenses they come under.

    IKVM, Kaffe, Classpath, and others have been laboriously reverse engineered from third party sources, and Sun has to this day refused to help in their creation. Sun's sources are completely useless to anybody working on independent Java implementations, because if they so much as look at them, Sun claims ownership of their work.

    Sun's lack of openness has cost a lot of people a lot of time and effort. Claiming that they are implementations of some "open" Java standard is adding insult to injury.

    1. Re:lies by toriver · · Score: 1

      Sun's Java specifications are available only under restrictive licenses

      No, they are freely downloadable from java.sun.com (unlike, say, the ISO-9899 C standard which ISO charge 340 Swiss Francs for). The license states that any independent implementation cannot make proprietary extensions/subtractions and needs to pass a test. How is that a bad thing? Do you enjoy that the multitude of SQL implementations do most small things in their own different way?

      Other specifications are provided by the JCP where Sun is one member of many - but with extra powers.

      Anyway: Some of us are satisfied with Sun's free-as-in-beer implemenation, as are most other developers, which is reflected in the slow progress of the OSS implementations (since OSS developers generally make software for their own use).

      IKVM, Kaffe, Classpath, and others have been laboriously reverse engineered from third party sources, and Sun has to this day refused to help in their creation.

      "Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment." - clean room does not necessarily mean reverse engineered. Anyway, Kaffe now has merged in parts of GNU Classpath, so perhaps the NIH-istic multitude of implementations could merge into one so that an OSS project actually got somewhere? It's not like GCC depended on AT&T to make progress.

      This Kaffe project slideshow is a very interesting read.

    2. Re:lies by oohshiny · · Score: 1

      The license states that any independent implementation cannot make proprietary extensions/subtractions and needs to pass a test. How is that a bad thing?

      First of all, you're changing the subject. We weren't discussing whether it's a bad thing, but whether the platform is proprietary, and you just admitted that the platform is.

      Now, why is it a bad thing? Because under the license agreement, Sun can effectively shut down any Java implementation they want at any time. Any open source or commercial developer would be a complete fool to agree to those terms. And that's why there are no certified, independent Java implementations at all and why all commercial competitors have dropped out. The only independent Java implementations still left are open source implementations that have had to reverse engineer the APIs.

      Do you enjoy that the multitude of SQL implementations do most small things in their own different way?

      I have no problem with it, just like I don't have a problem with the implementation differences for C, C++, C#, or even Java.. Besides, even Sun-certified Java implementations have numerous differences and significantly different APIs on different platforms, so I don't see how Java is any better.

      Do you enjoy that the multitude of SQL implementations do most small things in their own different way?

      How is that different from Java? A lot of Sun Java code doesn't run on IKVM or gcj, and vice versa. Obviously, Sun has not prevented fragmentation.

      Anyway: Some of us are satisfied with Sun's free-as-in-beer implemenation, as are most other developers, which is reflected in the slow progress of the OSS implementations (since OSS developers generally make software for their own use).

      And even more people are satisfied with Microsoft's proprietary software. The fact that you're satisfied doesn't make Sun software any less proprietary.

      Anyway, Kaffe now has merged in parts of GNU Classpath, so perhaps the NIH-istic multitude of implementations could merge into one so that an OSS project actually got somewhere?

      It is outrageous that you accuse open source developers of being responsible for the delay in open source Java implementations. The cause of the slow maturation and incompatibilities of open source Java implementations has to do with Sun's failure to deliver on their commitment to create a well-defined, stable, and open Java standard. As a result, open source implementations have had to use other sources to try to reconstruct Java APIs and play constant catch-up with Sun.

      You can see how rapidly open source can implement a Java-like standard by looking at Mono: within two years, Mono achieved what neither Kaffe nor gcj achieved in three times that time.

      It's not like GCC depended on AT&T to make progress.

      Indeed, it didn't. That's because, unlike Java, C and C++ actually were, and continue to be, open standards.

  50. C Devs are laughing their asses off right now... by MacDork · · Score: 0, Flamebait

    fast as Java

    Enough said... ;-)

  51. Why not hear it from the guy who made it happen... by lowoddnumber · · Score: 2, Informative

    instead of speculating? Here's Tim Bray's blog post about hiring them here and a follow up here.

    from Tim's blog:

    Why is Sun hiring JRuby developers Charles Nutter and Thomas Enebo? First, they are excellent developers. Technologies like Ruby are getting intense interest from the developer community, and Sun is interested in anything that developers care about.

    What will their new role be at Sun? First, they have to get JRuby to 1.0 and make sure that the major applications are running smoothly and are performant.

    Will they work on JRuby full time? Yes, but they also have a mandate to think about developer tools. Right now, developers who use dynamic languages like Python and Ruby are poorly served, compared to what Java developers have.

    Will JRuby be "owned" by Sun? No. JRuby has existed for a long time as a project; it has its own culture, community, license, and codebase, and there are no plans for significant changes.

    He answers more questions on his blog.

  52. And in other news... by hpcanswers · · Score: 1

    Sun is back to hiring!

  53. Groovy by Anonymous Coward · · Score: 0

    If you're a Java developer, check out Groovy and Grails. It integrates much more tightly with existing Java code rather than redoing everything in Ruby.

    See also this post: http://www.infoq.com/news/jruby-groovy-next

  54. Re:Bad News by chromatic · · Score: 1
    It's languages like Perl, PHP, Ruby, and Python that have the odd features that cause massive problems when the language grows out of its initial niche and starts being applied to large, Real World problems.
    As opposed to what, Oak 2 Enterprise Edition? Enterprise Oak Seeds?
  55. Re:Not exactly a good thing by SanityInAnarchy · · Score: 1

    Ok, what are the weaknesses of Azureus? The main one I see is performance...

    Java could, in theory, perform very well. In theory, it could perform faster than C. Remember, a VM does not necessarily mean slower, and there is something to be said for the portability -- Java was supposed to be AJAX, 10 years earlier.

    --
    Don't thank God, thank a doctor!
  56. Examples by MarkusQ · · Score: 1

    Suppose you want to find the last names of people in your address book who might be Vulcans, and produce a list ordered by the length of their name (five character names, then four and six character names, then the rest, alphabetized within length groups

    address_book.
    collect { |person| person.last_name }.
    find_all { |name| (3..8).include? name.length and name =~ /.*k$/ }.
    sort_by {|name| [[2 2 2 2 1 0 1 2 2][name.length],name] }

    I'm not sure, but I think this would be harder in C#.

    --MarkusQ

    1. Re:Examples by plague3106 · · Score: 1

      Depends on how you define harder. I have a custom DAL i created which makes searching as easy as your example. Its a few more lines of code to create the objects and set the desired values / operators, but its not 'harder' by any stretch.

    2. Re:Examples by MarkusQ · · Score: 1
      Depends on how you define harder. I have a custom DAL i created which makes searching as easy as your example. Its a few more lines of code to create the objects and set the desired values / operators, but its not 'harder' by any stretch.

      "Harder" may be a bit of a stretch, I'll admit. The thing I like about Ruby is how easy it is to do things like this "on the fly," without a lot of clutter for "creating objects" and "setting parameters"; it isn't that the other way is harder to write per se, but that the total effort (thinking it up, typing, reading it later, and figuring out what it does) seems to be less. But it's a cumulative thing, an effect you can really feel as you're working even when the individual steps aren't that much harder.

      --MarkusQ

    3. Re:Examples by plague3106 · · Score: 1

      The thing I like about Ruby is how easy it is to do things like this "on the fly," without a lot of clutter for "creating objects" and "setting parameters";

      On the fly.. I'm going to assume that means Ruby is not type safe and more akin to script. Not having type safety was a HUGE problem in developing classic ASP sites and JavaScript. Not having to define your variable was also a huge problem. One typo and bam, you've got bugs.

      it isn't that the other way is harder to write per se, but that the total effort (thinking it up, typing, reading it later, and figuring out what it does) seems to be less. But it's a cumulative thing, an effect you can really feel as you're working even when the individual steps aren't that much harder.

      More effort up front in my experience leads to less effort later. Its not hard to read either. Here's a search in my DAL.

      DataSearcher searcher;
      SelectionCriteria crit;
      List results;

      searcher = new DataSearcher();

      crit = new SelectionCriteria( "MyProperty", Operator.Equals );
      crit.Values.Add( "someVal" );

      searcher.AddSelectionCriteria( crit );

      results = searcher.Find();

      Is it more lines? Sure. Harder to read? I don't think so.

      More lines does not mean harder to maintain or read. With Intellisense, I usually only type a few characters before what I want to type appears in a list.. then I press space and the rest is inserted. For larger repetitive things, you have code generation.

    4. Re:Examples by MarkusQ · · Score: 1
      I'm going to assume that means Ruby is not type safe and more akin to script.

      Ruby is type safe, but not statically typed. And it's polymorphic, which further complicates the question.

      But the point of the post to which I was responding was doing "script like things" (e.g. Perl-like) in Ruby, so yes, the example I gave was scripting language-like.

      And I disagree with you about what is or isn't harder to read. Your example, at eight lines, appears to do what in Ruby would be one line:

      results = my_data.find_all { |item| item.my_property == 'someVal' }

      The extra lines are all administrative overhead, and don't have anything to do with what you are trying to accomplish. In fact they obscure some of the interesting details, such as where the items being searched are coming from (at least, I can't tell were they're coming from from looking at this code). In the ruby version, the data is coming from the object "my_data", as should be obvious.

      And finally, the Ruby version is much more general; if we needed to change it to find items by more complex criteria, the changes are trivial:

      results = my_data.find_all { |item| item.my_property == 'someVal' and (item.half_life > 60.seconds or item.tastes_sweet?)}

      I imagine that the analogous changes to your code would be...bulky.

      MarkusQ

    5. Re:Examples by plague3106 · · Score: 1

      Ruby is type safe, but not statically typed. And it's polymorphic, which further complicates the question.

      Heh.. dynamic typing has been a bane for quite a while.. at least for me and co-workers. As a disclaimer, I've come to hate building anything complex in script because I spent a good deal of time in ASP / VBscript. Its been my experience that as complexity of the application grows, dynamic typing leads to very difficult to find bugs, which can only be detected at runtime. All of my (former) co-workers would agree, as no one wants to do ASP because Asp.Net is so much easier in these terms.

      But the point of the post to which I was responding was doing "script like things" (e.g. Perl-like) in Ruby, so yes, the example I gave was scripting language-like.

      See above about my dislike of doing anything important in scripts. :-)

      And I disagree with you about what is or isn't harder to read. Your example, at eight lines, appears to do what in Ruby would be one line:

              results = my_data.find_all { |item| item.my_property == 'someVal' }


      And what if later you type rsults instead? Do you get a warning or error? Or will it suddenly 'appear' out of nowhere? I assume the latter, because some of the lines in C# are to allocate the resources you'll be using. Personally I look at these lines, skip the lines which create the objects and look at the methods. Of course that's how I set up my DAL; I'm certain I could change the API of the DAL so that it can occur in one line (minus the declarations of course).

      The extra lines are all administrative overhead, and don't have anything to do with what you are trying to accomplish. In fact they obscure some of the interesting details, such as where the items being searched are coming from (at least, I can't tell were they're coming from from looking at this code). In the ruby version, the data is coming from the object "my_data", as should be obvious.

      The overhead provides a safety net. ASP didn't require that much overhead either. The problem was that because it was so lax there ended up being a huge number of runtime errors. Again, more effort upfront lead to less effort later. I'd rather write the code correct the first time, instead of writing it and finding out later there are bugs in it and then trying to fix those bugs. Something as simple as a compile finds errors right away, without even running the code. Doesn't sound like Ruby provides that level of safety.

      I imagine that the analogous changes to your code would be...bulky.

      Again, that's simply because of how I designed the API. I actually could add a method so that adding criteria becomes something along these lines:

      searcher.AddSelectionCriteria( "MyProperty", Operator.Equals, "myVal" );

      Alternately,
      results = seacher.Find( new SelectionCriteria( "MyProperty", Operator.Equals, "myVal" ), new SelectionCriteria( "MyProperty2", Operator.Like, "*myVal" ) );

      Down to one line (excluding allocating resources). Of course that one line, much like your Ruby example, is getting longer and longer, which for me becomes unreadable. I'd rather have multiple short lines over a single long line.

  57. Re:Not exactly a good thing by Anonymous Coward · · Score: 0

    In theory. It crawls on old hardware. It doesn't feel "snappy" due to the slow class load time and initial JIT compile. Developers jump through hoops putting in lazy loading and splash screens to timewarp away the slowness.

    But it could be pretty awesome if there was the ability to save/load a cache of all the loaded classes and JIT compiled code from a running JVM. With this initial class load times/JIT times can be dodged. Is that doable?

  58. Re:Not exactly a good thing by RAMMS+EIN · · Score: 1

    ``Yes, of course. My point is that the corporate backing behind Java could push relatively new programmers (for example those who never had to play with an accumulator register, or align manually data to even addresses in a M68K asm code, or those who know the difference between C89 and C99 - Ok, now you know I'm 40+ :-)''

    Hey, I'm 40+ too, but I'm only 24 years old! ;-)

    ``to make a choice without regard of the inner working of their code, its requirements and the weight it will impose on the system or other applications being run on it.''

    Yes, and this is why universities teaching students Java and only Java are a major Bad Thing. Not only because people lose touch with the real cost and workings of things, but also because it makes them narrow minded: too many people I talk to just refuse to accept anything that implies Java isn't the greatest programming language ever.

    ``The infamous saying "Nobody was ever fired for choosing Microsoft" could be abused here as well.''

    And if you don't teach Java, you will be accused of being impractical. After all, Java, is what everyone in the Real World uses.

    ``About Azureus, the point is that almost all if not all its weaknesses are due to the choice of Java as its language of choice. This should ring a bell.''

    Not knowing Azureus, I can't really comment, but I've seen enough things like it that I can accept what you say.

    ``Just to clarify my take on Java. I'm not against it as a language, the 10% I know about it says that it's well designed, powerful and pretty straightforward to learn''

    I wouldn't say so. I know Java 5 very well, and it's a very limited language: everything must belong to a class, public classes must be in separate files named identically to the class, there is inheritance, but only single inheritance, everything is a subclass of Object, except some things, containers store Objects (meaning no basic types like int or float), and when you take them out, you'll have to cast them to their actual type (which incurs extra code and run-time checks). Java 5 has a much better type system (with parametric polymorphism, allowing you to store whatever you want in containers, I think including primitive types). However, Java programs are still very verbose compared to programs written in other languages, especially languages I like to program in. There's lots of repetition and explicit things that must be changed whenever a type somewhere is changed or the exceptions a method can throw change.

    ``but I can't accept being forced to run most software under a vitual machine which makes it slower by orders of magnitude.''

    That's not true. The JVM used to be slow, but it's improved impressively. YMMV, of course, but the Shootout puts Java at about half the speed of C, which puts it among the faster languages.

    ``Using a JVM because it allows a financial application to be hidden within security layer is also a myth''

    The examples you give merely prove that there are other ways besides using the JVM, not that the JVM wouldn't be a suitable solution. However, with the Java platform being as large as it is, chances are that there are bugs which can be exploited.

    ``I can barely understand corporate choices like "being delivered on schedule" or "instead of 2 good programmers it can be done by 10 monkeys, and they still cost us less", but for Open Source and community driven projects Java should never be considered. Let alone that if Sun goes bust (or decides to kill the platform) your project is esentially doomed. Both are very unlikely scenarios, but not impossible.''

    Sun seems willing to make the whole enchilada open source, in which case such risks disappear.

    --
    Please correct me if I got my facts wrong.
  59. Re:Not exactly a good thing by SanityInAnarchy · · Score: 1

    Not quite the same way.

    gcj can compile Java source or bytecode into a native binary. .NET (and Mono) can both do ahead-of-time native compilation, even if you only have a bytecode (assembly) to start with, but by doing this, you lose a lot of run-time optimization. I know this is true for Mono, I'm not sure to what extent it's true for .NET or Java. It would be nice if we could cache information used by a running VM, but still do all the nice things that a VM does for you.

    But we should be doing lazy loading anyway, if it's possible to do it reasonably.

    --
    Don't thank God, thank a doctor!
  60. Sun may not be making tons of money... by BalkanBoy · · Score: 1

    but to this day, they have yet to disappoint with their engineering/technical appeal... Solaris... Java.... now adding support for a wildly popular dynamically typed language... The only one that comes close to their engineering savvy is Apple. Not so long ago there was talk of a Sun-Apple (Snapple? :) merger - http://digg.com/apple/Dvorak_Is_an_Apple_Sun_Merge r_in_the_Works. I've been writing software for 10 years now, and I prefer the small company setting... but if I were to ever work for a large company again, I'd like it to be like Sun or Apple, with superb engineers around me who are going to make me re-examine everything I know on a daily basis and keep me challenged forever.

    --
    'A lie if repeated often enough, becomes the truth.' - Goebbels
  61. This is great news for me at work, JRuby rocks by Anonymous Coward · · Score: 0

    I work at a very large healthcare organization, and the deal is, we have the JVM installed in many environments. Trying to get native Python or Ruby installed is a no-go. But with JRuby, I've been able to say "just install these JARs please" and the operations people are OK with that. And voila, now I can write Ruby scripts, and Ruby is pretty cool.

    Plus, we do have a lot of valuable security logic built into JARs in public static methods, so being able to access those Java security libraries, developed in house, is damn handy. JRuby is excellent, and this is awesome news.

  62. Why does Ruby score so badly in the C.L. Shootout? by SimHacker · · Score: 1

    Why is Ruby so far down at the bottom of the list sorted by score, in the Computer Language Shootout? The only other popular web server scripting language that's worse than Ruby is PHP! That's certainly nothing to be proud of.

    With such lackluster performance, Ruby looks good to newbie programmers whose only experience is with PHP, but that's only because PHP is so horrible that Ruby looks better in contrast, and they haven't investigated any of the much more efficient, fully developed, well designed languages like Lisp, Python and Lua, which kick Ruby's ass when it comes to performance.

    But if your main criteria for choosing a language is that it should only have a single one-size-fits-all unitard web framework, and you don't like the bewildering freedom of having many frameworks to choose from tailored for different situations, then by all means go with Ruby on Rails, and save yourself all the bother and effort of researching and understanding the problem space, and choosing the best tool to fit your application. After all, it levels the Web 2.0 playing field if everybody's trying to tighten their screws and splice their wires with the same hammer.

    The fact that Sun hired a major developer of a programming language does NOT necessarily bode well for that language. Sun has a long track record of trying to scuttle technologies that they perceive as a threat, by hiring the developers, and diverting them to work on other things like Java.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  63. Lua kicks Ruby's ass! by SimHacker · · Score: 1

    Lua totally kicks Ruby's ass in the Computer Language Shootout.

    Ruby only seems like a great language to newbie programmers who don't know anything but PHP. It's not BAD, but it's not very impressive nor efficient compared to decent languages, and it's horrible compared to excellent languages.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  64. Re:The way I see things (with eyes tightly shut) by SimHacker · · Score: 1

    What are you, an old COBOL programmer who hates to learn new languages? Lua is an extremely well designed language, much more efficient than PHP or Ruby. Where did you get the prejudice that a high level game programming language would be designed for people who can't master other languages? Ruby shines because it's a real programming language, not a toy, and it integrates extremely well with compiled languages like C and C++.

    I understand that you may not have heard of Lua, because there are a lot of people like you who are afraid to learn new languages, and reject them out of hand, without even knowing what you're talking about. But if you have the guts to open your mind to new ideas, then take a look at the computer language shootout, and see which interpreted scripting language is at the top of the pack, with a higher score than JavaScript, Smalltalk GST, Scheme MzScheme, PHP, Smalltalk Visualworks, Ruby, Icon, TCL, Pike, Mozart/OZ, Perl, Erlang Hipe, Python and Scala. Ever heard of any of those languages, old timer? Lua's faster than them all.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  65. Sun scuttling technology by hiring its authors by SimHacker · · Score: 1

    The fact that the Self team is looking for work is telling. Sun hired the Self team, and plowed the fruits of their brilliant work into Java instead of Self or Smalltalk, and then Sun scuttled all the Self related projects. Before that, Sun hired the TCL team, announced with much fanfair that TCL was going to be the official web scripting language, then dropped it like a hot potato.

    Don't read too much into anyone's promises that Sun is going to support Ruby, especially if they work for Sun and are trying to hire you. They lie to the people they're hiring, and play bait-and-switch, because their real intention is to divert people from competing projects that conflict with Sun's other goals-de-jour. From my past experience with Sun (like James Gosling personally promising me that Sun was totally behind NeWS and would soon make NeWS source public domain), I believe that it's quite likely they'll let the JRuby team work on Ruby for a little while, then divert them onto something else. If you can't beat 'em, hire 'em and tell 'em to stop. That's the way it works in the real world, kids.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  66. Re:Bad News by rjshields · · Score: 1
    As opposed to what, Oak 2 Enterprise Edition? Enterprise Oak Seeds?
    I thought we were discussing languages not stuff built on top of them.
    --
    In this world nothing is certain but death, taxes and flawed car analogies.
  67. Re:Bad News by chromatic · · Score: 1

    That's a mighty fine distinction and, I think, a distraction from the point.

    The initial goal of what became Java was not to produce a real-time, mission-critical platform with two-phase transactions, high-volume messaging and queueing, and whatever other enterprisey buzzwords win the measuring contest this week. Yet Java grew out of that niche, as it proved to be a decent general purpose language and platform.

    Given any other general-purpose language and platform (and here I include Perl, Python, and Ruby -- but not PHP), why does the designer's original intent matter one bit?

  68. Offtopic??? by Drysh · · Score: 1

    Why is that offtopic? Self, Squeak, Bistro are all derived from Smalltalk -- all of them reflective programing languages like Ruby. And the greatest problem of Self is that no one uses it. I find it a very good concept and a very interesting language. If only it got more attention.

    Why is Ruby getting all that attention? I think there are many others reflective languages that could become much more than Ruby will ever be. Personaly, I dislike the idea of multi-paradigm languages: you end up with something thats is almost good in almost everything. Why not focus in a pure reflective language that won't solve all the problems in the world but will be perfect when a reflective language is needed? Do that with calls/links to other languages and you have the perfect programing environment: each language doing what it does best.

    1. Re:Offtopic??? by Anonymous Coward · · Score: 0

      Mod parent up.

      I never understood how or why Python and Ruby managed to get so much attention while more interesting, elegant and consistent languages like Self and Smalltalk never took off.
      Python and Ruby have not improved on Smalltalk in any way, only got rid of the elegance.

      Reminds me of the C.A.R. Hoare quote "ALGOL 60 was a great improvement on its successors".

  69. Re:Why does Ruby score so badly in the C.L. Shooto by iggymanz · · Score: 1

    good grief, there are other (and better) web frameworks available based on Ruby than ruby on rails; ruby on rails is fun and coding-fast though. If you check out the comp.lang.ruby threads you'll find that plenty of folks have refactored various benchmarks in the C.L. shootout and been able to improve performance by factors of two to many times, which proves exactly nothing. The benefits of ruby aren't speed of execution. Speed of coding is, most power for the least typing compared to others except ocaml.

  70. Ruby fork reported in my relevant rejected article by mattr · · Score: 1
    I reported in my article "Boxing in the LLRing", which covered a recent 300 developer gathering at a Tokyo boxing ring, a presentation by the creator of Ruby in which he announced that he would retire from Ruby to work on YARV only, and that the next major version would in fact be a fork of Ruby, generally but possibly not completely compatible to allow for freedom of creativity.

    In this 4500 word article, which includes in addition to fun and hijinks detailed language updates for Ruby, Python, Squeak, Perl, Java, Javascript and 20 other languages and frameworks, a panel on functional programming and comparison between Ruby and Java.

    Since I went to the trouble to write the English article I'd like to let people know about it since it is on an unknown site. So far just people in Japan and perlmonks.org people know about it. Considering that Ruby, Python, Java and Squeak are all mentioned in the article (and Ruby/Java generation is a big topic in Japan too) I can't figure out why such a relevant post gets backseated to Piquepaille and endless RIAA and voting machine stories. Anyway, if you are interested check out the article. As far as I know, this is the first breaking news coverage in the world of a fork in Ruby and retirement of its creator from work on the language (or so he says, hope not!).

    FWIW the magazine in my hands right now, probably the best selling magazine in Japan in this space this month has the cover story that Ruby helps you solve problems fast. Also including articles on Java and a nice Perl Catalyst story.

  71. J2EE is definitely portable by Slashdot+Parent · · Score: 1

    I'll take a J2EE app and deploy it on Windows for development and Solaris for production, and half the time I don't even consider that the underlying architecture is as different as night and day. The app just works in both places.

    --
    They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  72. Segway on rails! by Baldrson · · Score: 0, Troll

    I am bemused people who think Sun is relevant anymore. It's stock went through the floor, the barrier hit by most others during the dot-con bubble burst, and proceeded to the basement. It's server technology just isn't that interesting and Java has never been interesting except as a way to import enormous numbers of programmers from India using the capital Sun had acquired from its early success.

  73. Re:Bad News by rjshields · · Score: 1
    Given any other general-purpose language and platform (and here I include Perl, Python, and Ruby -- but not PHP), why does the designer's original intent matter one bit?
    It doesn't matter per se, but what does matter is when a language becomes too bogged down with features and additions that it hinders further development. Take Perl 6 and Parrot an example, supporting all of Perl 5's features in a new VM is not going to be easy.

    The initial goal of what became Java was not to produce a real-time, mission-critical platform with two-phase transactions, high-volume messaging and queueing, and whatever other enterprisey buzzwords win the measuring contest this week. Yet Java grew out of that niche
    To be fair, the uptake of Java grew out of that niche but the language remained fairly true to its original design throughout.
    --
    In this world nothing is certain but death, taxes and flawed car analogies.
  74. Are you on crack? by Anonymous Coward · · Score: 0

    "It's server technology just isn't that interesting... ...and Java has never been interesting "

    Are you on crack?

  75. Agreeing, and not by MarkusQ · · Score: 1

    In some ways, I think we are close to agreeing (at least, I share your reaction to ASP and VBScript, and also used to assume that strongly typed languages had to be statically typed).

    But in other ways I think we are talking past each other. A few of the places I think we may still disagree:

    • While we both can see that redundancy can help catch errors, I also maintain that it can cause errors--or at least, hide them. We might, for example, have a language that reduced the chance of numeric constants being mistyped by requiring them to be specified in English as well, and require that the type of a variable be specified with each use as is done in some contexts (e.g. checks):
      float::cost := 57.34(Fifty seven point thirty four)
      While this would reduce the chance of some types of errors it is my contention that it would make others, such as logic errors, harder to find--if only because the more bloat you have, the more places there are for bugs to hide.
    • I don't think the "scripting language" distinction is useful. Is Smalltalk a scripting language? How about Prolog? Or Java? What about Erlang? How in the heck can you say, in any meaningful way? Rather than comparing languages by first categorizing them based on some set of features and then assuming that they share all the other properties of the categories, it is much more useful to compare the languages themselves.
    • In each of the examples we have traded back and forth, I note that your example is not only longer and dependent on specific extensions to the language but significantly less flexible as well. My first example performed a series of operations, you countered with a longer example that just performed one step. I replied with an example that tested for 1) a specific value in one field, 2) an arbitrary function of the value in another, and 3) called a method of the object to let it "test itself"; you responded with a longer example that performed a small subset of this, and indicated that it could only be as short as it was if there were additional changes to the library. (BTW, I'm ignoring the number/length of lines argument as a red herring).
    • Another example of the way in which dynamically typed languages can help prevent bugs is the reuse of code. Rather than having to rewrite library routines (or force object into an inheritance hierarchy) just to get a certain feature, languages like Ruby make it easy to write library routines that only depend on the features of objects they actually need. Thus if I am writing a statistics package, I might only care about the certain aspects of the data (which of two values is "greater than" the other or how "far apart" they are in some sense). Instead of saying that this library deals with doubles, or smallints, or whatever, I can write something that accepts any data that provides the interface I need.

      That means I won't have a half dozen differently specialized versions floating around, some having one bug fixed, some having another bug fixed...

    • Dynamically typed languages can free you from a whole host of bugs that arise specifically because you have to decide on the type of your data rather than letting the language do it for you. Strings and arrays that overflow their bounds, integers that get out of range, inexact fractions, etc. all result from you preallocating the storage--in many cases, by guess, habit, or unjustified assumption. These problems simply don't occur in a language like Ruby. I can increment a counter until I die of old age without worrying about it overflowing the integer range--overflows are caught, and the number is promoted to a larger integer type, without loss of information.

    But other than these sorts of points, I suspect we share the same goals and (on a large range of issues implied but not discussed by this thread) the same sensibilities.

    --MarkusQ