Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Sun Backs Ruby by Hiring Main JRuby Developers

Posted by ScuttleMonkey on Tue Sep 12, 2006 04:31 AM
from the feel-the-love dept.
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."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Great News (Score:5, Interesting)

    by RAMMS+EIN (578166) on Tuesday September 12 2006, @04:48AM (#16087330) Homepage Journal
    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.
    • 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!!
      • A fast Ruby with a compiler is called Common Lisp.

        • I should have added ;-)

        • Re: (Score:3, 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?
          • Re: (Score:3, 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 c
            • Smalltalk was invented in Palo Alto, California. [wikipedia.org]

              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.
          • Re: (Score:3, 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
      • Re:Great News (Score:5, Interesting)

        by Per Wigren (5315) on Tuesday September 12 2006, @05:25AM (#16087401) Homepage
        The language itself isn't slow, the current interpreter is.

        The solution is YARV [atdot.net] (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.
        • Re:Great News (Score:4, Insightful)

          by LarsWestergren (9033) on Tuesday September 12 2006, @07:42AM (#16087818) Homepage Journal
          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".
      • ``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.
        • 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.

      • 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.
    • 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 unders

      • ``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 sp
        • 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)
    • Re: (Score:3, 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 [jcp.org]
      • ``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 co
    • 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.
    • Re: (Score:3, 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 d

      • Re:Great News (Score:4, Insightful)

        by LarsWestergren (9033) on Tuesday September 12 2006, @05:33AM (#16087418) Homepage Journal
        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 [robert-tolksdorf.de] 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.
        • Re:Great News (Score:5, Insightful)

          by masklinn (823351) <slashdot.org@NoSpAM.masklinn.net> on Tuesday September 12 2006, @06:07AM (#16087505)

          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.

      • Re: (Score:3, 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 t
  • by EqualSlash (690076) on Tuesday September 12 2006, @04:55AM (#16087343)
    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.
    • by TheRaven64 (641858) on Tuesday September 12 2006, @05:26AM (#16087402) Homepage Journal
      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.
      • Re: (Score:3, Insightful)

        This is a *good* PR move.

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

        Bye egghat.
    • 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 [www.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.

  • by Anonymous Coward
    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 t

    • "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.
    • Re: (Score:3, 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

    • > 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
  • by macadamia_harold (947445) on Tuesday September 12 2006, @05:10AM (#16087370) Homepage
    Sun has thrown some corporate weight behind Ruby

    Good thing, because that Oswald guy was starting to get on my nerves.
  • GPL? (Score:5, Interesting)

    by giafly (926567) on Tuesday September 12 2006, @05:16AM (#16087382)
    Currently JRuby is licensed under the GPL [sourceforge.net].
    Given Sun's past criticism [com.com], I think it's fair to ask whether they have committed to using the GPL for future JRuby releases.
    • 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.
    • Re: (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.
    • 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 . [bloglines.com]
  • by ovapositor (79434) on Tuesday September 12 2006, @06:25AM (#16087559) Homepage Journal
    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.

  • 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
  • by hashmap (613482) on Tuesday September 12 2006, @07:30AM (#16087770)

    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

    • Re: (Score:3, 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
  • Missing the point (Score:3, Insightful)

    by metamatic (202216) on Tuesday September 12 2006, @09:01AM (#16088192) Homepage Journal
    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".
    • ``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
      • Re: (Score:3, 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 extreme

        • by RAMMS+EIN (578166) on Tuesday September 12 2006, @05:47AM (#16087445) Homepage Journal
          ``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.
          • 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.
        • Re: (Score:3, 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.
          • 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 d