It looks like the Sapphire in Steel camp feels they need to create their own language on top of Microsoft's CLR/DLR (.NET) platform. Yawn, ho-hum, here we go again. *Snort* wait a sec.. this isn't coming from Microsoft? *Sigh*. Here's an open question to the Programming Community: Why, oh WHY do so many developers feel the need to create their own programming language? With an alphabet soup full of programming languages available, why do we really need another one? Can't we just figure out how to do what we want via Domain Specific Languages (DSLs) within our preferred language platforms? From my understanding after reading the Sapphire announcement, it seems the Sapphire Language is inspired by Ruby, but adds constraints to make the language more “unambiguous”. Funny, that sounds a lot like what Charles Nutter recently blogged about, with his experimental, type-inferenced, Ruby-like language that he calls Duby. With Sapphire and Duby floating around, I have to question.. nee... CHALLENGE future direction of the Ruby Language. Are Ruby Language implementers getting tired of “In Matz We Trust”, and caving into temptations to make platform-specific extensions? I seriously hope not! Remember how screwed up things were when Microsoft added J#-specific “extensions” to their implementation of Java? “Write Once Run Anywhere” went out the window, and Microsoft forced us into “Java Wars” -- much like how we were already engaged in the “Browser Wars”. Life as a programmer back then was a freaking nightmare! Instead of focusing on getting the job done, Technical Architects worked on conditional-coding to bring out the “flavor-specific” candy for each platform, or they used the “lowest common denominator” approach by abstaining from ALL extensions. If the Sapphire Language closely resembles Ruby (i.e. it's a fork, despite their claims), we could soon see a lot more conditional-coding constructs showing up in Ruby Application code (versus Ruby Library code, where this is hidden from Developers): def do_something(a,b) Needless to say, I don't care for conditional-coding constructs. It detracts away from the Application Solution. I specifically choose to develop in Python and Ruby because all the desirable platforms have implementations available:
As a developer, I strive to create “Cross Platform” applications where possible, and go Platform-Specific when something needs to be more optimized. With that goal in mind, Sapphire Camp, I just gotta say... PLEASE DON'T FORK RUBY!
|
|||


Correction on Java wars
Your account is basically correct except for the name. What started the war was Microsoft's implementation of JVM for Windows which violated Sun's licensing agreement. (There are other such implementations from different vendors which do comply). MS Java did not have any special name, but Visual Studio may have called it Visual J++. J# was a CLR based .NET thing and came about much later. Its purpose was to address learning curve for Java developers switching to .NET. It is yet another Java-like syntax and has no licensing issues as far as I know.
The Sapphire Programming Language
Thanks for the comments. I would like to be quite clear about one thing, however: Sapphire is a new language. it is not a fork of Ruby (any more than, say, Java is a fork of C or Erlang is a fork of Prolog). The Sapphire language uses a Ruby-like syntax. In many other respects it is very unlike Ruby. There is no way you would be able to write a program to work conditionally with Sapphire and with Ruby. The two languages will not be compatible. I hope my latest blog may explain this: http://www.sapphiresteel.com/The-Sapphire-Programming-Language best wishes Huw SapphireSteel Software Ruby and Rails In Visual Studio http://www.sapphiresteel.com