Showing posts with label Ruby. Show all posts
Showing posts with label Ruby. Show all posts

Sunday, September 26, 2010

The Next Big Java Language; my $0.02

Time to to add my $0.02....

What is the Next Big JVM Language going to be?

I've been watching the whole evolution of alternative languages on the JVM for a few years now. Long enough to start tracing the hype around the different languages.

Yet none of these languages are really mainstream, despite their apparent advantages.

I think the reason for this has absolutely nothing to do with the technical features (or lack thereof) of any of these languages.

I think the NBJL will be the one that large organisation or group of organisations with enough clout and deep enough pockets is actually willing to go out and effectively market both to decision makers and developers.

No doubt Java did strike a chord with mainstream developers, but quite honestly was that more to do with Sun's aggressive marketing campaign or because it of it's many technical merits?


Saturday, May 24, 2008

Is Java the new C?

I've been watching the language changes being proposed by the community for Java 7.0 like a hawk.

Alex Miller's Pure danger tech blog has become one of my favourite reads as a result.

However I'm pretty sure I'm not the only one who seems to be rather disappointed about what came out of JavaOne this year regarding the proposed Java language features.

It seems that many of the changes will probably be postponed until Java 8.0.

Maybe this is not such a bad thing though.

If I look at the message coming out from JavaOne I could summarise it as being: "Please use Java as a platform but you don't need to use the Java language at all".

In fact I have have a vast array of excellent choices:

  • If I want a highly productive platform for doing web development, use JRuby.

  • If I want a highly productive platform for my existing Java Developers use Groovy.

  • If I want a concise type safe platform with high productivity use Scala.

  • If I want a mainstream language with Java benefits and high producivity (when it matures) use Jython.


  • Of these languages, Jython (Python in Java) and JRuby (Ruby in Java) are the most "mainstream" being in the top ten on the Tiobe index with Python and Ruby respectively sandwiching C# - which in itself is quite amazing considering that neither have had C#'s marketing.

    Groovy and Scala are a little less mainstream but both have broken into the top 50 with Groovy at number 33 behind Smalltalk and Haskell and Scala finally breaking into the top 50.

    Would I still need to write stuff in Java? sure, but only for those bits and pieces which need some low level stuff where speed becomes important especially considering that Java is the only language in the list which still supports primitives, In this scenario the Java language takes on roll much like C.

    In fact I'd even go so far to say that Java needs to stay the way that it is in in order to keep it viable for this very important role.

    After all we wouldn't want to turn it into the new C++.

    Maybe then we should stop regarding Java as the new Cobol but rather look at it as the new C.

    Wednesday, April 30, 2008

    MagLev Ruby VM

    This is absolutely, mind-blowingly awesome!

    Why Ruby is only getting popular now in the west

    It's suddenly blatantly apparent why it took so long for the Ruby zen to reach us here in the westerly part of the globe.

    Just go read Ruby creator; Yukihiro Matsumoto's blog and you will understand why...

    Friday, April 18, 2008

    Getting Ruby Gems on Ubuntu

    The lack of Gems as a .deb is recurringly annoying.

    While I appreciate the reasons for doing so, it doesn't make my life easier.

    So here is a script to do it:

    #!/usr/bin/ruby
    gems_version="rubygems-0.9.4"
    gems_version = ARGV[0] unless ARGV[0].nil?
    rubyforge_v = "20989"
    rubyforge_v = ARGV[1] unless ARGV[1].nil?
    puts "installing unpack (unp)"
    system("sudo apt-get install unp")
    puts "done!"
    puts "installing rdoc"
    system("sudo apt-get install rdoc")
    puts "getting ruby gems version #{gems_version}"
    system("wget http://rubyforge.org/frs/download.php/#{rubyforge_v}/#{gems_version}.tgz")
    puts "unpacking..."
    system("unp #{gems_version}.tgz")
    pwd = Dir.pwd
    Dir.chdir(gems_version)
    puts "running install"
    system("sudo ruby setup.rb")
    puts "cleaning up"
    system("rm -rf #{gems_version}")
    system("rm -rf #{gems_version}.tgz")

    All you need to do it grab it, save it to a file, chmod it, run it, and you are done :-).

    PS: you need to be logged in as a user who can sudo. Also note the version of gems the script supports if you need to change it you will have to determine the name of the file (minus the .tgz) and also the magic number at which the file sits in the rubyforge repository, which you need to pass to the script respectively as arguments.