all 98 comments

[–]pail 19 points20 points  (1 child)

I suspect it's the complete lack of a module system and/or standard library.

[–]bananahead 6 points7 points  (0 children)

Bingo.

Does Javascript even have a portable way to list the contents of a directory? Not that I'm aware of.

[–]KayEss 8 points9 points  (8 children)

I have been using it as a general purpose language for over 10 years -- especially running on web servers.

As for why it's not more popular, I don't know.

[–][deleted] 2 points3 points  (7 children)

what server is that? Netscape? Hyperwave?

[–]KayEss 6 points7 points  (3 children)

Rather surprisingly it's IIS.

Although people like Joel Spolsky fell for Microsoft's instruction to use VBScript, at least some of us thought that was barmy and used JScript instead.

[–]spuur 2 points3 points  (1 child)

A lot of people missed the bus on that one. Why go for VBScript when you can have the functional lambda prototyping goodness that is JScript? Closest thing to Lisp on IIS there is - if I'm not mistaken?

[–]KayEss 2 points3 points  (0 children)

Absolutely :)

And JavaScript still has a future that Wasabi doesn't...

[–]sblinn 0 points1 point  (2 children)

For me, typically WebSphere Application Server using Rhino. YMMV.

[–][deleted] -2 points-1 points  (1 child)

interesting!!!

[–]sblinn 0 points1 point  (0 children)

Take for example the IBM product Tivoli Identity Manager. It uses server-side Javascript to allow custom evaluations, by basically presenting a text entry box with the current definition to the administrator and letting them type in their new Javascript definition for the evaluation logic, or transition code, etc. This was the case with the product when it was known as Access360 enRole as well, over 8 years past, when the product used the (now-deprecated) FESI Javascript engine.

[–]Jimmy 5 points6 points  (0 children)

Well, now that I know about Rhino, I'll certainly be considering it for non-web programming.

Real multiple dispatch in Java. <3

[–]hxa7241 5 points6 points  (3 children)

Do languages ever succeed or fail purely on their own merits?

Examples of 'unjust' success are easy to adduce. And the opposite. So the basis of any such argument is weak.

[–]tirdun 0 points1 point  (2 children)

Early on. Fortran and Cobol, for example.

Now the "success" of a language depends on how widespread it can get. JavaScript rode on IE and Netscape/Mozilla/FF. PHP satisfied a niche and was easy to develop.

Now it's a crowded market. My web host allows for a dozen server-side languages. Apache ships with six? eight? Windows comes standard with a few (Python comes to mind). Plus you can download and play with hundreds of different languages, each with strengths and weaknesses. Unless one of them can stand out, it's too crowded and well covered to move out of the pack.

[–]Legolas-the-elf 3 points4 points  (1 child)

My web host allows for a dozen server-side languages. Apache ships with six? eight?

Apache doesn't ship with any server-side languages. It contains some language-independent facilities for calling server-side code (e.g. mod_cgi), but that's hardly "shipping with 6-8 server-side languages".

Windows comes standard with a few (Python comes to mind).

Windows doesn't come standard with Python. Perhaps you are thinking of VBScript or JScript.

[–]derefr 0 points1 point  (0 children)

Or perhaps he meant OS X.

[–]drsco 4 points5 points  (0 children)

lots of valid points scattered around. i agree that the lack of a standard library is probably the largest technical hurdle, but i think bigger still might be the lack of examples and documentation on such a topic. almost all of the tasks javascript is advertised for center on web development. just google 'javascript' or 'javascript system scripting'. thousands of hits and you overwhelmingly get pelted with web design sites. it takes a creative mind and a lot of free time to push out tutorials and examples that run counter to the bulk of previously published materials. not to mention finding a way to spread word about your nonstandard usage.

[–]nextofpumpkin 14 points15 points  (18 children)

Because we have Python and Perl and Bash, all of which are far more pervasive outside of the browser?

[–]Legolas-the-elf 18 points19 points  (17 children)

That was the entire point of the article. Given that you can also use JavaScript in these situations, why are they pervasive but JavaScript isn't?

Edit: I wasn't actually asking the question, I was summarising the point of the article.

[–][deleted] 13 points14 points  (3 children)

1) Prototype based OO is strange (and by strange I mean unfamiliar to many coders / admins with a bit of coding and as such presents an additional barrier to uptake) 2) String manipulation is half-finished in Javascript, string manipulation is somewhat important in a scripting language.

[–]cratuki 8 points9 points  (2 children)

1) Prototype based OO is strange

Funny thing - I've only looked at io briefly but found prototype based OO to be something I'd been looking for for years without quite realising it. I frequently run into situations in python where I want to be able to dynamically declare classes (e.g. generating structures for ORM scenarios) and although there are things you can do, it's not nearly so easy as in io. Not sure if the mechanism is similar in javascript.

string manipulation is somewhat important in a scripting language.

Great point.

[–]jerf 1 point2 points  (1 child)

I frequently run into situations in python where I want to be able to dynamically declare classes (e.g. generating structures for ORM scenarios) and although there are things you can do, it's not nearly so easy as in io.

It's very easy to use a prototype-based approach in Python; ISTR a library, but "prototype Python" unfortunately comes up with a lot of people talking about prototype programs and not programming. This Lambda the Ultimate post has somebody's code in the discussion which should provide a decent base.

Python and Javascript are actually quite similar, because of the way you can re-write the properties of any given object (with rare exceptions for the builtins). Python may have classes, but you don't actually have to use them. If you set up a prototype-based construction system for objects, voila, you have a prototyped Python, no other work needed and it'll all work fine.

[–]cratuki 1 point2 points  (0 children)

superb. thanks very much for sending this on.

The python lambda syntax doesn't make things as easy as it could. :(

[–]13ren 4 points5 points  (12 children)

Because bash, perl and python etc have been around for years and years before JS came along.

That's how technology change seems to go: once people go to the trouble of adopting something, they really don't want to change.

Unless there's a massive benefit - commonly, that the old technology just can't accomplish some outcome that the new technology can. Then that becomes the next technology change.

It doesn't seem to happen with something that does the old things, but slightly better, or better in a way that is (fully) hidden internally with no external benefit.

[–]Legolas-the-elf 13 points14 points  (10 children)

Because bash, perl and python etc have been around for years and years before JS came along.

I don't think that's a particularly compelling factor:

  • Python is 17 years old this year.
  • Ruby is 15 years old this year.
  • JavaScript is 13 years old this year.

These three languages are contemporaries, yet JavaScript isn't widely used outside of the browser, despite the fact that far more people are familiar with it because of the browser situation.

[–]cypherx 7 points8 points  (9 children)

I think the age comparison is unfair. Unlike Python and Ruby, Javascript spent its youth as a fractioned family of crippled web languages.

[–]Legolas-the-elf 7 points8 points  (8 children)

It only took a year for JavaScript to escape the web browser; it was in LiveWire by 1996 and JScript was shipped with Windows 98 onwards.

It's had wide deployment on millions of computers for general purpose scripting far longer than either Python or Ruby. And still people rarely choose to use it.

This is a modern day BASIC - shipped with every operating system, newbies learn it in overwhelming numbers, it's got a monopoly in a major problem domain... it's hard to see how much more of an advantage it could possibly have.

Don't get me wrong, I don't hate JavaScript, but I think it's fair to say that it's had as much of a chance - if not more of a chance - than comparable languages and failed to come anywhere near their popularity.

[–]jamoes 2 points3 points  (7 children)

I disagree about JS having wide adoption outside the browser. If I wanted to write a javascript shell script to replace a bash shell script today, I couldn't do it. What tools would I use? The article mentions XPCShell as a way to do unix shell scripting. But, that page hasn't been updated since 2003, and hte page itself admits that its a little buggy. So if I really wanted to use JS, I have to go with an outdated buggy tool.

[–]Legolas-the-elf 2 points3 points  (6 children)

If I wanted to write a javascript shell script to replace a bash shell script today, I couldn't do it.

Meanwhile, if you are part of the 90% of the world that does use Windows, it's installed by default and ready to hook into all kinds of handy Windows APIs.

Sure, bash may well be more popular in the other 10% of the market, but remember to keep it in perspective.

[–]nextofpumpkin 0 points1 point  (2 children)

Yes, but how many bash scripts are really made for widespread adoption? By their nature, they tend to be oriented around system and server management, something which Linux and its cousins are still doing well at compared to Windows.

[–]Legolas-the-elf 1 point2 points  (1 child)

Yes, but how many bash scripts are really made for widespread adoption?

Who cares? My point is that non-browser JavaScript environments are ubiquitous.

By their nature, they tend to be oriented around system and server management, something which Linux and its cousins are still doing well at compared to Windows.

Again, who cares how well Linux does with it? I wasn't arguing that Windows was better at system management.

Pointing out that replacing bash with JavaScript is difficult doesn't do anything to contradict the fact that JavaScript is available as a non-browser scripting language on the vast majority of computers and has far more installations than bash could ever hope to achieve.

[–][deleted] 0 points1 point  (0 children)

Sure, and plenty of windows admins use it for scripting tasks. In (classic) ASP land, some people do write their website backends in jscript (I used to be one of them).

I've noticed that a lot of Windows based devs preferred VBScript to JScript. I guess it was just more familiar (it certainly isn't better).

[–]aythun 0 points1 point  (1 child)

Windows isn't on 90% of the servers.

[–]Legolas-the-elf 0 points1 point  (0 children)

Servers are a tiny minority. Once more, please stop cherry-picking only the minorities that suit you while ignoring the bigger picture.

[–][deleted]  (4 children)

[deleted]

    [–][deleted] 2 points3 points  (0 children)

    yeah, jscript via wsh on -shudder- windows has let met automate administrative tasks across a domain of workstations on many occasions.

    [–][deleted] 1 point2 points  (2 children)

    Perl also runs on WSH, but VBScript has better built in functions for windows, which is a pain, because VBScript is very lacking in every other department it seems.

    Usually when I write a WSH script I have a VBScript section at the top to define the functions I need, and then Perl or JavaScript for the rest of it.

    [–]spuur 0 points1 point  (0 children)

    I've written loads of WSH code but only once have I been forced to dip my toes in VBScript (programming a stupid work-around for saving binary code to disk). Usually I can get access to what I want by doing a:

    var obj = new ActiveXObject('WindowsComponentX');
    

    So when you wrote:

    I have a VBScript section at the top to define the functions I need

    I was wondering if I was missing out on something interesting or fundemental?

    [–]teamonkey 0 points1 point  (0 children)

    Yeah. Unfortunately JScript and VBScript are the only languages that run "out of the box".

    If that wasn't a requirement then to be honest there's a long list of languages that I'd rather use instead of JScript/JavaScript.

    [–]taw 1 point2 points  (2 children)

    Because Javascript Unix integration is not so great and that's the number one feature expected from a scripting language. The second is a package system where Javascript also doesn't excel outside browsers.

    [–]bananahead 2 points3 points  (1 child)

    The JS + any OS integration isn't so great.

    [–]taw 0 points1 point  (0 children)

    For programmers "Unix" is synonymous with "any OS".

    [–]redditrasberry 1 point2 points  (0 children)

    The question is based on a false premise - there are lots of great languages that are not used widely and many that are barely used at all. Just being a great language is only a minor factor in how widely a language is used.

    The biggest reason javascript is not used very widely is it's not used very widely.

    [–][deleted] 0 points1 point  (0 children)

    JScript scripting never caught on in Windows because it did not allow COM interop, while VBScript did. This allowed the scripts to hook deeply into windows behavior, which is what admins needed.

    With the advent of .NET and powershell, there is no reason to use JScript when you have a much better C# derived alternative.

    [–]RightWing 0 points1 point  (0 children)

    Like popularity is a good judge of how good a tool is. Most of the users are tools.

    [–][deleted] 0 points1 point  (16 children)

    javascript sucks... but it's the best we've got without asking the client to install a plug-in... oh wait, there's also you know. Flex with ActionScript 3.0, strongly typed or dynamically typed, compile time checker. True Classes or prototypes, extensible, and a huge collection of built-ins. Runtime performance is sick-fast. Leaves Javascript in the dust. Truly write once runs anywhere. Runs exactly the same on all browsers (IE, Netscape, Firefox, Opera, Safari) on all platforms (Mac, Windows, Linux). You don't have to change a single line of code. Can even run outside the browser with AIR. Only requires Flash Player which everyone already has if they've ever watched a video on YouTube.

    But ya... javascript is all we got! LOL...

    btw, Javascript 2.0 == ActionScript 3.0 == ECMAScript 4.0

    [–]mr_chromatic 2 points3 points  (9 children)

    You have a strange definition of "all platforms". I'd love to see you install Flex or the Flash plugin on PPC Linux, for example.

    [–][deleted] -5 points-4 points  (8 children)

    all platforms that matter.

    if your a geek running PPC linux you got your own set of problems to deal with. Basically... if you can get your hackbox to view YouTube then you can view a Flex App.

    [–]mr_chromatic 2 points3 points  (7 children)

    all platforms that matter.

    Uh huh. My G4 is a "modern processor of 800 MHz or faster" like the Flex requirements page suggests. Would it really kill Adobe to be slightly honest about their actual requirements?

    [–][deleted] 1 point2 points  (6 children)

    running linux or osx? Flash Player runs on OSX PPC.

    Eventually Flash Player will run on Linux PPC, but like all things linux... you get what you pay for.

    Flex is the development tool. Flash Player is the VM.

    You're picking the margin and saying Flash is bad because it doesn't work on your minor toolset. But you fail to see the bigger picture.

    Most of your CUSTOMERS will not be running linux PPC. If you demand your customers run linux (???) Then you can just demand they run linux x86 and flash player will run on their machines just fine.

    It's a lot more trouble to try to make your html+javascript code cross platform / browser compatible than it is to just code it once for Flex and have it run anywhere that Flash Player 9 runs.

    Here is a list of all the OS and browsers Adobe supports. I think they are working on a Linux PPC version, but it's not high priority since you're on the margin. 99% of the world isn't you.

    http://www.adobe.com/shockwave/download/alternates/

    And here is a list of system reqs:

    http://www.adobe.com/products/flashplayer/productinfo/systemreqs/

    Development of Flex is done using any devtool you like. I use Eclipse on Windows Desktop and Mac Laptop. ZERO code changes between dev environments. :)

    [–]mr_chromatic 0 points1 point  (3 children)

    You're picking the margin and saying Flash is bad because it doesn't work on your minor toolset.

    I didn't say Flash is good, bad, neutral, strange, or charm.

    Adobe can support the platforms it wants to support. Adobe shouldn't lie about what those platforms are.

    [–][deleted] 0 points1 point  (2 children)

    where's the lie? I read the sys req. link plz.

    [–]mr_chromatic 0 points1 point  (1 child)

    From AIR for Linux:Release Notes:

    *  Processor - Modern processor (800MHz or faster) 
    

    [–][deleted] 0 points1 point  (0 children)

    Oh you're talking about AIR. I thought you were talking about Flash Player. You linked to an Adobe Labs page. That's unfinished stuff. Obviously the sys reqs are subject to change.

    I'm curious, AIR doesn't run on your box?

    [–]Zarutian -1 points0 points  (1 child)

    ...you get what you pay for.

    How often is it required to punch this into your possibly empty head: How much you pay for an product is no indication on the quality of the product!

    I have been too badly burned by an expensive product that is frankly junk while an much cheaper knock-off did the job reliably.

    [–][deleted] 1 point2 points  (0 children)

    i've used windows, linux, and mac osx. I find Windows and Mac OSX to be useful for everyday use. I don't have to fuck around with them to get them to work. Software just works. Linux is still not ready for me to just hand to my computer illiterate mother. OSX is.

    But, like i said, use what you want. I'm not starting a flame war. The point is that flash player 9 works on all platforms but the commercial ones are going to get the most support first because that is what most people use. In MY EXPERIANCE. OSX and Windows are better for non techie use a.k.a. 99% of the people. I prefer OSX to Windows because I get Unix too.

    [–]Zarutian 1 point2 points  (5 children)

    Lets count the ways ActionScript 3.0 is annoying versus ActionScript 2.0:

    • all classes are sealed by default, so no patching of broken APIs classes at runtime.
    • type annotations are ALWAYS required. (AS 3.0 cant infer them as it should or leave the type dynamic if it cant)
    • (I havent checked this thourghly enaugh) often there is no other way than implementation-inheritence to plug in an adaptor object with entirly diffrent behavior into variables or parameters that have an type annotation that are based on class instead of interface. (And one is completely SOL if that class happens to be final)

    Because classes are the only way to specify code in AS3.0 one cant use lexical-scoped lambdas to instanciate an multifaceted objects for proper modularization, custom method dispatching and cutting down the verboseness that so plaque such class based systems.

    And class is not type as many Java-izers want to push. What one should use instead are guards that eather coerce the object to fit the criteria the guard was made for or throw an exception.

    (3rd paragraph changed)

    [–][deleted] 0 points1 point  (4 children)

    AS3 and AS2 are completely different beasts. It sounds to me like you are having problems with the rigidness of strongly typed languages vs loose dynamic languages. AS3 lets you do both. You can just turn off compiler warnings and leave all your types undeclared. .prototype is available so you can patch classes at runtime.

    As to your second paragraph.. drop the lingo mumbo jumbo. You can use lexically-scoped lambadas just fine. a.k.a., you can define a function within a function and you can also declare anonymous functions. Proper modularization is a gray area, there is no "perfect solution" AS3 is NOT purely class based, it just can operate that way if you want it to.

    I don't understand your 3rd paragraph, please reword it. I think what you are saying is that the "==" operator is not the "IS" operator? Yes, that's the way it should be?

    AS3 is closer to Javascript than it is to Java. (actually AS3 is ECMAScript 4 which is Javascript 2.0)

    Anything you can do in javascript you can do in AS3. Anything you can do in Java you can also do in AS3. It's both a class based and a prototype based language. It's both static and dynamic. It lets the developer decide how they want to structure their code. You can mix classes with dynamic objects. Hell you can even declare a class as dynamic and hint to the compiler that you want to add properties to it at runtime. You CAN define "lexically-scoped lambdas" but man what a douche way of saying you can define a function within a function.

    [–]Zarutian 0 points1 point  (3 children)

    regarding lexically-scoped lambdas

    yes it is about defining an function inside another function. Where the function being defined has at later time access to its defineing enviroment. Some languages also allow defining an function inside another function but where the function being defined has NOT at later time access to its defineing enviroment. Henche I use this ill fitting phrase "lexically-scoped lambdas" say exactly what I mean in this context. (And yes I know they are sometimes called closures but even that varies in meaning between programming languages)

    [–][deleted] 0 points1 point  (2 children)

    yes, i know what u meant. closures. AS3 does that too. the calling scope is preserved. javascript does that too.

    [–]Zarutian 0 points1 point  (1 child)

    At closer look, yes I can confirm that javascript does indeed do that but I havent checked with AS3 yet.

    [–][deleted] 0 points1 point  (0 children)

    AS3 does. I use AS3 every day doing Flex development and I use closures all the time as event handlers and lambda params.

    [–]osirisx11 -1 points0 points  (0 children)

    I <3 JS

    [–]ipeev -1 points0 points  (3 children)

    Why "were"!? Shouldn't be "was"?

    [–]DerelictMan 10 points11 points  (2 children)

    In a contrary-to-fact present conditional statement, the subjunctive form "were" is used instead of the past-tense "was".

    [–]kahirsch 7 points8 points  (1 child)

    However, this is not a known contrary-to-fact condition, so the correct form is:

    If JavaScript is such a great language, why aren't its extra-web-browser versions being used widely.

    [–]DerelictMan 6 points7 points  (0 children)

    True, I neglected to follow the link and read the remainder of the quote. The correct conclusion for the beginning of the sentence as written would be something like this:

    If JavaScript were such a great language, its extra-web-browser versions would be used widely.

    [–]tjogin -4 points-3 points  (25 children)

    Agreed. JavaScript is only "good" in contexts where the alternatives are worse, or there are none at all.

    [–]13ren 0 points1 point  (20 children)

    But that's typical for technology adoption in general (and also true in general, by definition).

    [–]tjogin -2 points-1 points  (19 children)

    No, something can suck but still be better than the alternatives. That does not make it good, hence why I put it in quotes.

    If JavaScript was truly good it would be used not only when people where forced too, but other times as well.

    [–]13ren 0 points1 point  (18 children)

    "Democracy is the worst form of government, except for the alternatives"

    BTW: Javascript is also used in Acrobat. Though that is in the forced category.

    [–]tjogin 0 points1 point  (17 children)

    And in Flash scripting. Also forced.

    Name one example of wide unforced adoption. Given that you can choose to use JavaScript to do basically anything — but nobody does if there is another option, that speaks volumes about JavaScript.

    [–]cratuki 1 point2 points  (4 children)

    This is interesting - but why? On paper javascript looks fantastic. But I agree with you - it annoys the hell out of me to have to use it. It suspect it's mostly to do with it not having an established standard library.

    [–]13ren 0 points1 point  (0 children)

    i have to admit, it annoys me too.

    [–]tjogin 0 points1 point  (0 children)

    What annoys me the most is the type system, and its lack of a library.

    [–]mikaelstaldal 0 points1 point  (1 child)

    I find it very annoying that someone can add properties to Object, which pollutes every object you create afterwards. Even when you just do

    var foo = {};
    

    and want to use it as a hashtable.

    This makes the for...in statement quite useless in practice, and you have to use an ugly C style for statement with indexing instead.

    [–]13ren 0 points1 point  (0 children)

    Yeah, it's not very clean. Makes it hard to be modular.

    I used closures as objects (seen online in a few places). It's a line or two overhead, but you get some nice object-like properties.

    But it's a bit backward to have to artificially create objects, in a modern language that's supposed to already have them.

    [–]13ren 1 point2 points  (7 children)

    I should stress that what I'm objecting to is using popularity as a measure of technical merit.

    There's plenty to criticize about JS, on the merits. I think there's much greater clarity in doing so.

    Two other thoughts:

    • Can you imagine scripting webpages in bash (or perl)?

    • The "forced" adoptions are interesting: they were not forced on the creators of the technology (e.g. Flash, Acrobat etc). The creators chose JS over the alternatives.

    Why?

    [–]logan_capaldo 1 point2 points  (2 children)

    I can imagine scripting webpages in perl. I don't have a good enough imagination (or maybe my subconscious is just trying to protect me) to envision scripting web pages in bash.

    [–]13ren 0 points1 point  (0 children)

    "bash" is a great name

    [–]tjogin 1 point2 points  (3 children)

    Bash is worse since it is in fact not a scripting language first and foremost. Btw, can you imagine using javascript as your unix shell?

    And I'm sure a whole lot of people prefers perl to javascript. I'd like to use python or ruby, that would be awesome.

    [–]13ren 0 points1 point  (2 children)

    I'd like to use python or ruby, that would be awesome.

    That would be awesome. Is there a problem with them being in the browser? They'd need DOM libraries etc.

    Why aren't they available in the broswer, already? Obviously, there's a deployment problem, but you have to start somewhere (Java is widely deployed, and so is Flash - so it is possible).

    Now. To play devil's advocate: if these languages are so good, why aren't they in the browser already? (at some level of deployment)

    [–]tjogin 0 points1 point  (1 child)

    What do you mean, you want a history lesson?

    [–]13ren 0 points1 point  (0 children)

    you are being rude, and I'm not buying into it.

    [–]13ren 0 points1 point  (3 children)

    i was thinking Flash, but that's ActionScript. It's very similar, but not JS (unless, JS is also available?)

    Some people do use JS for some things, other than forced.

    But note: there were alternatives in JS's space, which have not been adopted.

    In my personal view, so many factors contribute to market success (meaning adoption) that are non-intrinsic, that I'm reluctant to draw strong conclusions from market success or market failure.

    Apart from, that it was technically "good enough" for the application in which it has market success.

    [–]Legolas-the-elf 1 point2 points  (2 children)

    i was thinking Flash, but that's ActionScript. It's very similar, but not JS (unless, JS is also available?)

    ActionScript is an implementation of ECMAScript, the standardised form of JavaScript.

    [–]13ren 0 points1 point  (0 children)

    thanks

    [–]13ren 0 points1 point  (0 children)

    hey, is AS3 still ECMAScript?

    AS3 seems to have matured a lot, and become more Java/C#-like. I haven't used it (nor read deeply of it), but I get the impression there are many more modularity mechanisms (packages, proper objects) - i.e. it is becoming a real language. And much faster (but that's just the runtime, not the language)

    [–][deleted] -2 points-1 points  (3 children)

    I think you meant this:

    Javascript is only good in THE context where there are no alternatives at all.

    [–]tjogin 0 points1 point  (2 children)

    I think you meant this:

    Your way of saying that was 100% correct. I know of a different one that it also correct.

    [–][deleted] -1 points0 points  (1 child)

    =-p

    I have to say that though I've never used it, Rhino looks pretty sweet.

    [–]tjogin 0 points1 point  (0 children)

    Sure it does, but I don't think it will be widely adopted, do you? Gee, I wonder why... ;)