Move Over AJAX, Make Room for ARAX
sasserstyl writes "eWeek reports that Microsoft's Silverlight platform will support Ruby client-side scripting, enabling ARAX — or Asynchronous Ruby and XML. Would be cool to have the option to script client-side in something other than Javascript. 'In essence, using ARAX, Ruby developers would not have to go through the machinations of using something like the RJS (Ruby JavaScript) utility, where they write Ruby code and RJS generates JavaScript code to run on the client, Lam said. "Sure, you could do it that way, but then at some point you might have to add some JavaScript code that adds some custom functionality on the client yourself," he said. "So there's always that sense of, 'Now I'm in another world. And wouldn't it be nice if I have this utility class I wrote in Ruby...' Today if I want to use it in the browser I have to port it to JavaScript. Now I can just run it in the browser."'"
Does yours?
Doing a little something for developer mindshare. But then this is really just a way to push .NET.
Questions:
There's already Java (with GWT) and haXe
Not only that, but they're not adding a language that's significantly different. They're not adding Java (which Google might appreciate) or C/C++, they're adding Ruby, which is a language very similar to javascript (certainly more similar than JS or Ruby are to Java and their ilk). Port a language with better scalability and modularity, not more of the same.
Hey Balmer!
I've put together a language and framework.
I call them Diamond and Diamond-On-Wings.
They're not very good... rather cumbersome and don't scale very well, but they give you something flashy with only 3 lines of code, and I've got a ton of amateur developers who haven't learned well enough not to use it yet on board.
Can I have a blowjob too?
Come on... Developers, Developers, Developers!!! and all that jazz...
On your knees, fat man!
-1 Uncomfortable Truth
Silverlight is going to allow .NET code, not just Ruby. Do we really need this? Do we really need to introduce multiple client-side languages like this? We're just creating more avenues to exploit clients. Adobe has had years to get Flash right and we're still finding exploits that can be used to install malware in the background.
Couple that with injection attacks being discovered on popular web sites and the growing use of Deep Packet Inspection and, honestly, we might as well just allow everyone in the world root access to all of our machines.
This is not a step forwards, it's a major step backwards. We can't be blinded by the prospect of client-side Ruby. We have to look past that and see that there are some very real security risks involved. It's less a cause for celebration and more a cause for caution towards installing Silverlight (or Flash, or any other type of embedded object that allows for client scripting).
Note that Ruby scripting is being integrated into Silverlight - which is similar to Flash - not Internet Explorer. While it offers more than Flash does (you can write full applications ala XUL with Silverlight) it also does similar embedded rich apps ala Flash, but its not a browser (yet).
Caesar si viveret, ad remum dareris.
Weak security because of dynamic typing? You really have to elaborate on this, because like this it just makes no sense. How is a strong typed languare more secure than a dynamic typed one?
I just don't trust anything that bleeds for five days and doesn't die.
Really this isn't a suprise as SilverLight was supposed to be the first outing of the Dynamic CLR (support for IronPython, IronRuby etc.). MS has been quite enthusiastic about dynamic languages ever since Jim Hugenin (former JPython author) started working for them.
Andy
Why exactly would they be adding (managed) C++ support when they have already done so?
I can see 75% of Slashdot talking out of their ass on this one.
Are you a troll (perhaps even a shill) or just a schmuck? There's nothing seriously wrong with Javascript as a language, only with specific implementations, some of which are actually quite good these days.
I'm guessing you are just a troll, but I don't want anyone to think you're right or anything and I have a little time on my hands :P
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Why?
Why is this good to run Silverlight?
Running silverlight on anything non-windows is like shoving legal issues up someone's ass and waiting for them to cough out the settlement.
Ruby on rails also seemed to work just fine without siverlight...and as comments show, more languages in the mix is not a good thing.
So yes, people are trashing MS because there is something wrong with this. If MS did anything right, we wouldnt' trash MS, we'd praise them. In this case, as usual, they haven't done anything right. I'd be glad to praise MS if they actually did something that wasn't underhanded, but when was the last time you can recall them doing that?
Maybe we need an infrastructure for this. An infrastructure that would be common among multiple languages. And then you could run any language that can target this common language infrastructure. And if you manage it properly it could be secure....
See, that's sharp isn't it? Of course, it might seem like I'm parroting a bunch of buzzwords in this monologue, but I really have a message... I'm not just making small talk. I think that's enough pearls of wisdom in one post.
--JoeProgram Intellivision!
Microsoft did something not cool and not useful
...
... and Silverlight was allegedly cross-platform ... this cuts it down to .... windows only again ...
Not cool as in hijack something cool and do something that ties it to their latest thing...
Not useful as in only works in the next version of their system, if you have their modified version of Ruby and IIS and use Internet Explorer
So this is another way to break all the other systems
Puteulanus fenestra mortis
Strong and weak are often confused with dynamic and static. They're orthogonal concepts.
An example of a weakly statically typed language would be C. You have to declare the all the types, so you know what type you're dealing with compile time, but a boolean can be treated like an integer or a pointer. An example of a strongly dynamically typed language would be Lisp. You don't have type declarations (well in Common Lisp they're optional), and you don't know the type of a variable at compile time, but a list cannot be treated like a number.
You do get dynamically weakly typed languages, like PHP. You also get statically strongly typed languages, like Haskell. Assuming that strong and static are the same thing, or that weak and dynamic is the same thing, is a big mistake.
How dare you be so modest!! You conceited bastard!!
http://www.google.com/search?q=%22Type+conversion+error%22+attack
Dynamic type conversions are a pretty common way to exploit SQL injection holes and circumvent input validation.
"The cup is in turn designed for holding hot or cold liquids, and has an open rim and closed base." --US Patent #5425497
Port a language with better scalability
Ah, yes. Scalability in a client-side scripting environment. For the times when a browser has to be able to handle requests from thousands of users at once!
Tweet, tweet.
And when Microsoft sues You...
Ruby in Jails ?
this reminds me of the scene in the lord of the rings where Saruman proclaims he has successfully bred Orcs and Goblins and that crazy thing hatches out of a slimey membrane.
ruby ruby roo!
stuff |
Security has nothing to do with strong/weak typing. Strong typing is simply the first stage of testing code and validating input.
http://mindview.net/WebLog/log-0025
Microsoft has built alot of great tools and products but I fail to see how hitching their failing Silverlight product to an overly hyped language whose golden days are now over is such a great idea. Al the CEO's and developers who jumped on the Ruby bandwagon are quickly abandoning it and Silverlight has gailed to even make a dent in Flash's market share. How are either of these going to help each other? Why would the consumer want to be forced to download both of these things?
This is my sig. There are many like it but this one is mine.
Ajax has always been second-best to Achilles, the greatest hero of the Trojan war. In other words, the only thing better than Ajax would be Achilles (maybe Asynchronous C or Haskall In Lisp List Extensible Style).
Who was this Arax fellow? What wars did he fight in?
LedgerSMB: Open source Accounting/ERP
This does bring up an old question of mine... how come no one has made a Python plugin for web browsers, like Java has?
Just think how much more awesome projects like TurboGears/Pylons could be if you could run Python on both the client side as well as the backend.
Where's APAX when we need it?
"A truly wise man realizes he knows nothing."
Ruby
rails
Ruby on rails
Soap
Ajax
Ajax soap
Python
Perl
Java
Is it any wonder normal people think we're strange? (Ignore the rest of this comment, as it presently has too few characters per line (currently 8.5) but thankfully I can paste slashdot's retarded "error" message in the comment to correct this travesty)
mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
Ruh Roh!
My other sig is extremely clever...
Who needs Lisp? PROLOG! APAX is the wave of the future!
Or we define the web as a meta-processor and write wasm (web assembler) to interpret assembly code for this processor. Then we can have AAAX!
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
Probably shouldn't feed the troll, but ...
His argument was against your assertion that 'everybody thinks javascript just doesn't cut it for current web apps'.
This plainly isn't true as lots of people are actually very impressed by the javascript language, and just a bit frustrated that IE6 / IE7 / IE on Safari work so differently to everything else. For internal work I just ignore IE, and target Firefox only.
Even Joel has praise for javascript - take a look at his 'Can Your Programming Language Do This?' article at
http://www.joelonsoftware.com/items/2006/08/01.html
A better option than Javascript would be great, but Ruby hardly looks like the best option. A much better use of time for Microsoft would be making their Javscript engine for IE more standards compliant.
Actually, AJAX is good for very large (have the manpower to deal with its complexitied) and very small (won't encounter its complexities) projects.
I occasionally use it in a very rudimentary way - I use the AJ part and forget about the AX. What I mean with that is that I simply reload part of a page, whatever it may contain. It's a simple GET, no bells and whistles. The XMLHttpRequest part and the connection handling are abstracted away in a drop-in function that handles everything for me. It's not very flexible but usually it's enough.
Of course it does get more complex once you want to do anything that goes past putting the reply to a GET into a <div>, especially if you use JSON to pass around tuples and don't trust the server to send clean code...
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
Under 1000 lines for drag & drop support? This looks like a moderate amount of code, taking into account that you only get raw mouse coordinates from the browser in JS, and that it supports IE.
People dislike Javascript, but in fact it's very powerful. Its Achilles' heel seems to be that no one cares to really learn Javascript like a regular programming language. Rather, people doing Web development look at it as a hacky tool to add bling to their website. They learn small bits of it whenever they want some new effect they saw on the other guy's site, but never stop to learn how to use the vast array of built-in functions effectively, how to create objects, how closures and functional primitives work. Javascript is very much a "real" programming language, but its niche causes most to overlook its powerful and one-of-a-kind features and instead view it through the multitude of browser quirks one has to deal with when using Javascript in Ajax.
Those who would give up liberty to obtain working drivers, deserve neither liberty nor working drivers.
Love sees no species.
So far everything I've seen that was at all "special" about Ruby is available in just about every other language via helper classes (like Integer for ints in Java) and perhaps slightly less graceful structures like callbacks (just look at jQuery, for example.)
Usually the reason I've picked a language to do a job has had nothing to do about syntax. The three biggest factors have always been: what do I already know, what has the best performance, and what can be developed quickest? It's always a balance of those 3.
I'll never use Ruby until it's supported widely enough, matured enough, and provides me with some reason to bother learning its API.
Considering I'm already intimately familiar with C, Java, PHP, and SQL, I think hell freezing over is a safer bet. In my limited observation, most of the people who tout Ruby as the future have never extensively programmed in another language (except maybe a handful of people who coded in the much older languages similar to Ruby.)
I especially love it when somebody claims to write a web server in 10 lines of Ruby... and all it took was using a 10,000 line library and a however-large interpreter. I'd like to see that stand up to a slash-dotting. Puh-lease...
Move all sig!
Because Ruby on Rails developers will not have to switch to JavaScript in order to do AJAX like stuff.
.NET, but Silverlight in order to take over the Flash market. The funny thing is that Flash is probably peeking in popularity. The problem is one of the shear diversity of web browsing platforms that will be coming out soon. The iPhone is just the first such device, and already sites are removing flash from their webpages in order to make them iPhone compatible. Yes, Adobe is going to release flash for the iPhone, but what happens when Android comes out? Is Adobe really going to build flash for each and every version of an Android handset? They simply don't have the resources. Microsoft will find the same situation with Silverlight. They simply won't be able to support all the platforms that people want to use.
One of the problems in Web Development is using one language for the back end (whether Java, Ruby, or PHP) and then when you need some asynchronous action on the client side, you have to switch your syntax to JavaScript. It can be a bit of a pain. It's not that you may not know both JavaScript and Ruby, but that you have to keep switching between the two and that can make brain hurt.
I take it that Silverlight will be doing the "ARAX" side of things. It's actually a neat idea. You can use a single language for both the Client and Server side, but where JavaScript is built from the ground up to live inside a webpage, Ruby isn't. I guess that's why there's IronRuby which will be a bit more "JavaScript" like.
The big problem is that the Ruby interpreter will be Silverlight. Where as JavaScript is built into WebKit, an open source project, Silverlight is proprietary. If you create a new web browser, you can easily adopt WebKit and get a standardized JavaScript implementation. With ARAX, you're either going have to role your own or depend upon Microsoft to create a Silverlight interpreter.
The whole thing is to push not
In the old days, this was okay because it brought people into the Windows world. But, as people move from the desktop, Windows isn't the end all/be all platform it use to be. People like their iPhones and iPods. People will start buying Android based stuff. Symbian and RIM both are larger platforms. Windows Mobile is a distant fourth in sales this year. Measured in licenses, Windows Mobile is still more popular than the iPhone, but that doesn't include all the devices laying in some drawer gathering dust. Assuming a 2 year average product lifespan, Windows is fourth behind the iPhone which hasn't been out for a year yet. Can Microsoft (or is Microsoft even willing) to put Silverlight on all the various platforms out there? If not, developers just won't use ARAX.
Though Java-centric in nature, the JVM provides a secure sandboxed environment to host numerous languages including Ruby, Python, Lisp and even JavaScript. Throw in Groovy and Scala for home-grown alternatives.
Thanks to the efforts of IcedTea (principally funded by RedHat) and others, Java 6 will be fully GPL by the end of the year.
Another non-standard scripting implementation that only works with one particular browser. Didn't anyone learn from vbscript?
#DeleteChrome
I hope you don't program Ruby like you post
“Common sense is not so common.” — Voltaire
The problem with JavaScript has nothing to do with the language itself, the problem is that no two browser implement it quite the same way. Adding another language that's only supported in a proprietary and still not very widespread plugin isn't going to help that one bit.
Browser compatibility aside, JavaScript is actually very solid and is a great language to program in for people who actually bother to learn it (unless you are really stuck up about static typing or class based OO, in which case, sorry...) Why so many people work so hard in trying to convert Ruby or Java into JavaScript (e.g. RJS or GWT) or make JavaScript look like a language that it isn't (e.g. ASP.NET AJAX) rather than just learning the damn language I will never figure out.
This of course brings me to JavaScript's second biggest problem - it's users. Why is it that JavaScript, apparently alone among languages, can attract so many programmers that have absolutely no desire to even try to learn the language? I've heard people who programmed professionally in JavaScript for years claim that it doesn't support inheritance. In any other OO language that would be the sort of thing that a new programmer would learn in the first week. Most experienced programmers when learning a new language would sit down with a book or a quickstart guide or tutorial of some sort and learn at least the basics of the language before they tried to take on a meaningful project, but apparently with JavaScript it's OK to just jump in and learn as little as you have to as you go along.
If I don't put anything here, will anyone recognize me anymore?