Microsoft and Nokia Adopt OSS JQuery Framework 126
soliptic writes "The jQuery blog today announced that 'Both Microsoft and Nokia are taking the major step of adopting jQuery as part of their official application development platform.' So the open-source javascript framework will be shipped with Visual Studio and ASP.NET MVC. Microsoft's Scott Hanselman notes: 'It's Open Source, and we'll use it and ship it via its MIT license, unchanged. If there's changes we want, we'll submit a patch just like anyone else.'" There's also a story at eWeek about the decision.
Will they (Score:1, Troll)
Re:Will they (Score:5, Insightful)
Yeah why not? As long as they release all their code under the MIT licence (which they've said they will do), there is no reason not to embrace and extend. The parent project can choose to incorporate Microsoft's code, or not.
From the article, Microsoft have said they will contribute patches upstream rather than forking their own version. But as long as you're sure everybody is releasing their code under the same free licence, 'embrace and extend' is not a problem in the free software world. In many cases it can be beneficial.
But... (Score:5, Informative)
MIT license is not a source-required license. Companies may sell, close it up, whatever they wish so long as they continue to give credit to the original product.
Re:But... (Score:5, Informative)
MIT license is not a source-required license. Companies may sell, close it up, whatever they wish so long as they continue to give credit to the original product.
And is that relevant? This issue has been addressed:
Scott Guthrie says: [asp.net]
"We will distribute the jQuery JavaScript library as-is, and will not be forking or changing the source from the main jQuery branch."
The Scott Hanselman says: [hanselman.com]
"It's Open Source, and we'll use it and ship it via its MIT license, unchanged. If there's changes we want, we'll submit a patch just like anyone else."
Re:But... (Score:4, Insightful)
Outside of obfuscation, how exactly do you close source a JavaScript library that your browser can access via HTTP? I suppose Microsoft could incorporate it directly into the browser, but that doesn't seem likely.
Re:But... (Score:5, Insightful)
Outside of obfuscation, how exactly do you close source a JavaScript library that your browser can access via HTTP? I suppose Microsoft could incorporate it directly into the browser, but that doesn't seem likely.
"Close" can mean two things here. Yes, the source will remain visible, since its Javascript. So that's one sense of "open". However, it doesn't need to remain open source in the sense of the license. Microsoft could, in theory, add some features and relicense it under proprietary terms; the MIT license allows that. That is, seeing the source doesn't mean it's open source in the licensing sense.
Happily, Microsoft announced that they won't change the license.
Re: (Score:3, Funny)
I suppose Microsoft could incorporate it directly into the browser, but that doesn't seem likely.
Microsoft could, in theory, add some features and relicense it under proprietary terms; the MIT license allows that. That is, seeing the source doesn't mean it's open source in the licensing sense.
Say hello to Microsoft DirectHTML!
Re: (Score:3, Interesting)
In fact, this has already happened to a Javascript library: EXTJS. Not quite in the sense you're talking about -- it was GPL'd -- but we still had to port away from it.
We might've been willing to release some of the Javascript source -- after all, GP is right, it's not like we can hide it -- but the author was claiming it applied to the web app serving the Javascript, also.
Although that's patently absurd, it's also untested in court, and it proved that he's exactly the kind of assmunch we don't want to work
Re: (Score:2)
Uh you did look and see that ExtJs has a commercial license and always has had one, which you could use to create a proprietary blend with?
Not saying your decision was rash or unfounded, just wanted to point out to the discussion that Ext and Josh Shlocum considered their options and chose to offer dual licenses as there was not a single license available which met their needs.
That being said, good luck with that closed source thing you've got going on...
Re: (Score:2)
Re: (Score:2)
Closed source, for now. There's always the chance it will be opened in the future, but even if it was, there are other licenses to consider -- for example, we link against plugins which are MIT-licensed, and that's not GPL compatible.
And we do contribute back to open source projects we use. So, really, EXT's loss is jQuery's gain.
Now, the commercial license would be worth it. We're not against paying for things -- most of us use TextMate, for example, with legitimate licenses, and we have paid for Photoshop
Same thing here.. (Score:3, Interesting)
Was evaluating JS frameworks for an open-source project, and ext js was precluded due to license. The project was BSD licensed, and thus neither the commercial nor GPL license was appropriate.
I understand their viewpoint (trying to make a business and community framework), but MIT licensed jQuery is much more amenable to other licenses.
I've always thought software vendors when doing open source would prefer GPL on stuff they put out (force commercial adopters to use a more commercial license), and that so
Re: (Score:2)
Well, it might even be open source. You get the source, and you can change it.
That is why "open source" is an unfortunate term.
It would not be free software, because the user would be some freedoms short.
Yeah, I was... (Score:2)
Yeah, I was going to say the same thing. Considering some of the smaller scale, and a few of the larger, OSS projects have code so badly written, so badly commented that obfuscated javascript looks easy to read by comparison, how do you close a JavaScript project?
Re: (Score:2, Insightful)
Javascript is copyright just like anything else. Just because you can see the code doesn't mean you're free to use it for your own stuff. For example, you can not legally use non-free Javascript off of any random website.
Re: (Score:3, Funny)
The difference being, sparky, is that the source is not closed, you can read it. It maybe closed in terms of copyright, but it's still open in terms of source access. As opposed to closed, compiled binaries where the source is not available.
The discussion was about source code.
Re:But... (Score:5, Insightful)
What he's saying is that although Microsoft will be distributing the JQuery framework as-is, they may decide to use it in a closed-source product, with custom changes that don't get sent upstream. I'm not saying that Microsoft will do that, because I'm not in a position to speak for them, but it would definitely not be outside of their usual MO. Furthermore, parents point is that there is nothing in the MIT license that prevents them from doing this. Whether you agree with the philosophy of the MIT license or not is out of scope and off-topic.
Re:But... (Score:4, Funny)
In other words: It's time to start a flame war! Right here! Right now!
Re: (Score:1)
Re: (Score:2)
And? Do you want a cookie for pointing that out, or do you actually have a point?
Re: (Score:1)
Re: (Score:2)
Due to the client-side script nature of JavaScript, I am struggling to be able to imagine a situation where it makes sense to release jQuery or any other JavaScript web library as closed source.
Just because you can access the source doesn't mean you have license to do anything with it. There own extensions, especially if contained in separate source files, do not need to be covered by the same license.
Re: (Score:2)
Just because you can access the source doesn't mean you have license to do anything with it. There own extensions, especially if contained in separate source files, do not need to be covered by the same license.
But if your business model depended on keeping the code confidential you wouldn't send it over the wire to browsers to execute, whatever the license says, since you can be sure that people will poke around and probably half-inch bits and pieces of it. If you want it confidential, you don't send the source to the user.
Re: (Score:2)
If you are microsoft you would probably just LOVE it for some sucker to do that.
Because then you can nail them on copyright infringement if they become a significant competitor.
This is just for cred (Score:3, Insightful)
But I believe this is something different. Even though this probably gives them some code they don't have to write, this is just to use a popular and growing JavaScript library to give ASP.NET MVC some much needed street cred, especially among open source leaning developers.
Though jQuery is better as a general JavaScript library than anyt
Re: (Score:2)
And? What's wrong with that? I use Visual Studio in addition to a number of open-source tools. I think this is a great inclusion into Visual Studio.
Re: (Score:3, Insightful)
yes, because we all know how trustworthy microsoft is when it comes to keeping their promises...
heck, why bother with OSS licenses at all? just trust companies during the "embrace" stage, and i'm sure nothing else will come of it!
Re: (Score:2)
Submitting a patch and that patch being useful to anyone using a non-windows platform are two different things.
Re: (Score:1)
Re: (Score:2, Insightful)
That's right, in a few months Microsoft will submit a patch that ties jQuery hopelessly to IE8... and no one will notice.
Such things tend to happen with projects with no oversight and no established community, of which jQuery is clearly a shining example.
Re: (Score:2)
Submitting a patch and that patch being useful to anyone using a non-windows platform are two different things.
JavaScript doesn't run on windows, it runs on browsers.
The Asp.Net team, from whom this announcement comes, have been pretty good for the last few years in making sure that their stuff works in the big 4 browsers: IE, Firefox, Safari, Opera. So their patches would have to work in Firefox and Safari to pass MS internal QA. You can then run it on Windows, Linux, Mac, whatever.
To be cynical, you could
Re: (Score:2)
So, should they distribute under a more restricted license in order to show everyone how open they are?
Not saying that... (Score:2)
Just saying until they act, we can not guarantee based solely on the license what they will do. They do say they will, but the legal obligations upon them do not mandate it.
MIT license is fine, but you cannot predict traditional open-source sensibilities solely from an announcement mentioning the licens..
Re: (Score:2, Interesting)
Oh, that's right, it's Microsoft. That automatically makes it evil...
Give me a break.
Re:Will they (Score:5, Funny)
Well.... a big part of its popularity is that it's a lightweight library, so maybe better if they don't contribute to it... :-)
Re: (Score:2)
a big part of its popularity is that it's a lightweight library
Last time I checked, it was ~50kb, minified, and included all sorts of visual effects that I have no desire to use. I wouldn't call that lightweight. Why any of the visual stuff is part of the core distribution is beyond me.
Re: (Score:2)
Re: (Score:2)
If......
from TFA: .NET applications. jQuery helpers will also be included in the server-side portion of .NET development
Additionally Microsoft will be developing additional controls, or widgets, to run on top of jQuery that will be easily deployable within your
so much for "if we want changes, we'll submit a patch like everyone else"
Re:Will they (Score:4, Informative)
jQuery is the core library, with widgets usually being distributed as independent packages, so it makes complete sense for them to do it this way.
jQuery's aim isn't to be the source for calendar and date-picker widgets, it's to provide a solid base to build those things on.
Re:Will they (Score:4, Informative)
jQuery is designed specifically to be extended, by the programming of plugins. Have a look at their plugin repository.
I find it highly unlikely that Microsoft would require anything adding to the jQuery core that couldn't be better implemented with a plugin.
Re: (Score:2)
Where there's a will there's a way... where there's Microsoft you can bet your arse they'll try to proprietry it.
Re: (Score:2)
Re: (Score:2)
I know this is a welcome addition for me, as my employer just decided to start investigating doing this on our own.
Same ol' embrace, extend, extinguish? (Score:2, Informative)
Additionally Microsoft will be developing additional controls, or widgets, to run on top of jQuery that will be easily deployable within your .NET applications. jQuery helpers will also be included in the server-side portion of .NET development (in addition to the existing helpers) providing complementary functions to existing ASP.NET AJAX capabilities.
Re: (Score:1, Funny)
Oh noes they take a open source project and want to use it for their own intend. Damn those devils! Open Source Software does not want to be used, it wants to be free!
Just makes sense... (Score:5, Interesting)
Javascript frameworks deal with the major hurdles of modern web design: Abstracting browser differences, and avoiding reinventing the wheel with the kind of AJAXy effects that are increasingly more common these days.
I wonder how this will affect Prototype. It's always had different design goals than jQuery, but will this diminish it's popularity?
Also, will the jQuery API eventually be integrated into the browser instead of being a huge JS blob for every page?
Re:Just makes sense... (Score:4, Insightful)
I imagine not, since it would make upgrading a major pain. As long as the site controls which version of jQuery you have, they can opt in to the latest and greatest version without having to wait for the browser manufacturers.
Re: (Score:2)
True, although it would be interesting if future browsers could detect certain versions of jQuery via the <script> tags in webpages, and accelerate those versions. That way, the latest version could always be included if needed, but for older versions browsers could provide a native implementation.
Of course, that doesn't mean its a good idea. If Microsoft managed to fuck up CSS, JavaScript and pretty much everything they have implemented so far, I sure as hell don't think they'd implement jQuery any b
Re:Just makes sense... (Score:5, Informative)
jQuery is entirely contained within its own namespace. Multiple versions of jQuery can coexist on the same page, so upgrades wouldn't be a problem, sites could just include the latest version if the version shipped with browsers wasn't suitable.
Re: (Score:2)
One thing I would like to see in the future is some apt-like repository for commonly used javascript libraries. E.g., if I use Yahoo! js libs, the page would just ask for whatever lib version it was designed for, and the browser would load it from a local repository. Some libs are huge, and there should be no need for downloading it again and again from different sites.
Of course, this could be done today by simply point the src attribute in your script tag to yahoo's repository, but this would not be good o
Coincidentally (Score:1)
jQuery has a very nice website, but implementations seems slow and clunky on my ubuntu/firefox set-up.
Why jQuery?
Re: (Score:1)
Re: (Score:3, Informative)
Re: (Score:1)
Re: (Score:2)
My biggest problem with Prototype is that it doesn't play nice (last time I checked) with other libraries and you have to jump through hoops to do so.
Re: (Score:2)
And according to Hannselminutes from last week (I think , I am backlogged a bit) ASP.Net Ajaxs works very well with jQuery.
Re: (Score:2)
It doesn't play well with badly written Javascript that blindly use "for ... in ..." (not loops) in order to iterates over Objects and Arrays.
Have a look at why it's bad: http://www.prototypejs.org/api/array [prototypejs.org]
Prototype doesn't do anything wrong here.
But Prototype can play very well with any other library and with badly written code, using Protosafe : http://code.google.com/p/protosafe/ [google.com]
Re: (Score:2)
It would be a very stupid reason to pick a framework over another one.
Your link shows results from a benchmark. What does that benchmark? It just benches the speed of selectors.
It tries tons of times to fetch DOM nodes from a fixed definition like "a A in a P in a DIV".
If your application heavily depends on the framework's ability to fetch 10000 times the same element the same way, there's something really wrong with it.
I can't understand how Javascript frameworks can be compared using such a benchmark.
More
Re: (Score:2)
Running 10,000 queries isn't a benchmark because it's a likely use of the library, it's a benchmark because 10,000 queries will create measurable timing differences where the difference in each one is too small to measure. An immeasurable timing difference might not seem like much, but for effects that have to run smoothly or synchronized, it can create undesirable visual effects. I've seen the difference in MooTools versus jQuery, for instance, in that a MT app often has smoother motion and fade effects th
Re: (Score:2)
You don't need to seek 10000 times for the same element. You can look it up *once* and store it. Avoiding useless DOM traversal is the basic of javascript optimization.
If your visual effects depends on traversing 10000 times the DOM in order to always find the same node, something is seriously broken in your code, not in the framework.
In other news (Score:2, Funny)
jQuery announced that the next version of their popular library will leverage the power and versatility of Microsoft(tm)(r) Silverlight(r) for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.
"Freetards and other goddamn hippies need not apply." said jQuery's new maintainer, an oddly familiar, angry fat man. Going by the name of Stephan Ballmerano; he sports a beard, dark glasses, cape, and top-hat.
"I have done it before, and I'll do it again. I'm
jQuery vs. JavaScript "classes" (Score:1)
Re: (Score:2)
It abstracts the more complex client-server interactions and lets you use a pre-built tool for such interactions rather than creating one yourself.
Re: (Score:2)
The most imprtant feature of jQuery is that you can select groups of HTML nodes using CSS selectors, and modify them in bulk with a single function call instead of iterating over some array. I didn't use it too much, but this approach is extremely powerful and simplifies code a great deal. There are also simple and usable Ajax APIs and other assorted goodies, but the CSS selector idea is really brilliant.
Not eating the dogfood? (Score:3, Insightful)
I was a little bemused by the Microsoft guy's blog... last screenshot before the comments.
He needs to demo something non-trivial, so he switches to Firefox and Firebug.
Tell me about it, Scott!
JQuery site down???? (Score:1)
Re: (Score:2)
That's not uncommon even if the the site isn't slashdotted. It's getting a lot better, though :)
That's great! (Score:2)
Congratulations to everybody who has worked on jQuery!
I have used jQuery extensively and it is easy to learn and easy to handle. In fact, I had been using JavaScript for quite a while before jQuery, but after I started using jQuery, read some source, wrote a few plugins, etc. (even some patches, including performance related ones), I feel my understanding of the weird and advanced things in JavaScript is also much much better - and it didn't require any hard work or thinking :)
In comparison, before jQuery I
Re: (Score:2)
Also songratulations to everybody who has worked on Prototype!
I have used Prototype extensively and it is easy to learn and easy to handle. In fact, I had been using JavaScript for quite a while before Prototype, but after I started using Prototype, read some source, wrote a few plugins, etc. (even some patches, including performance related ones), I feel my understanding of the weird and advanced things in JavaScript is also much much better - and it didn't require any hard work or thinking :)
In comparison
Re: (Score:2)
Undoubtedly Prototype is very nice as well. Never used it though, after Dojo (which was pretty heavy at the time, with lots of server requests) I decided to pick a new framework; jQuery and Prototype were the candidates at the time, and I picked jQuery. Not sure why I picked it over Prototype at the time, though, but this was already some time ago.
Either way, the last part of your 'rewrite' seems to imply there are some specific cases where you'd pick Prototype over jQuery (or vice versa). Care to elaborate
Isn't IE the problem (Score:2)
I think the main reason for jQuery and Prototype is to insulate the programmer from browser idiosyncrasies. And Microsoft's IE (mostly IE6) is the main cause of them!!!
Bleh... (Score:2)
I just had horrifying visions of MS jQuery .Net Visual Studio Professional.
Speed isn't the real reason- its documentation (Score:2)
On the speed front: that isn't sufficient enough of a reason, and here's why:
Re: (Score:2)
Re: (Score:2)
Boss: So what did you pick for the website?
You: mooTools.
Boss: moo- what? Is that related to the flaming fox, thundering bird or that blasted penguin?
You: Er..not directly..
Boss: Out of my office! Bring me back acronyms or combinations of characters of the english alphabet with common words! Cute animals are not an element of success!
Re: (Score:2)
The problem is not Microsoft (Score:2)
but all the shitty microsoft-based sites that were thrown up in a day that will be including jQuery UI elements. Users will begin to see jQuery elements and associate them with shitty websites and they will become considered tacky/cliche despite their quality and usefulness. This is what I fear.
LS
Re: (Score:1, Interesting)
Care to elaborate? I searched the bug tracker for http headers and Carewolf, but didn't see anything relevant, although that may be because the complete fuckwit who redesigned the website recently decided that it would be a good idea to use a font size that is half the size configured in the browser (flagged as !important no less). And no, don't tell me to adjust my settings. If I have to adjust my settings to make your design readable, then you have utterly failed as a designer on the most fundamental
Re: (Score:2)
My memory could be playing a trick on me, but I think jQuery was the framework that used x-json. Just google x-json.
Re:Will they fix it? (Score:5, Informative)
Re: (Score:1, Funny)
And yet the baseless smear against jQuery is currently at 5, Interesting. Heckuva job, moddies.
Re: (Score:2)
Re: (Score:2)
that kind of applies to all scripting languages. Besides, how many others are embedded in the browser?
Re:pity JS is crap to start with (Score:4, Insightful)
it's slow, buggy, and prone to being abused. why are we still using it?
Slow? Not with the next generation of JIT JavaScript compilers coming up in Firefox 3.1, Google Chrome, and WebKit. And I'm sure IE will get there someday. Buggy? Not sure what you even mean by that... particular implementations may be buggy, but a programming language cannot itself be buggy. Prone to being abused? Which language isn't?
Re:pity JS is crap to start with (Score:4, Interesting)
So those are only a few of the issues. It feels like it's trying to be several different languages all at once. Coupled with the issues above (particularly the inconsistent use of 'this' and the implicit semi-colons), well frankly, if any design could be considered buggy, I'd say that it's Javascript's.
Re: (Score:2)
Nearly every gripe with Javascript stems from the first and last items on your list. 99% of the javascript I come across is written as if it is C, which causes all sorts of confusion with scope and efficiency.
Second and third, true enough, but Javascript is not alone.
Other languages with tons of theoretical cred share the newline/semicolon problems (Haskell, for example).
If more programmers understood functional idioms, Javascript wouldn't have such a bad reputation.
Re: (Score:2)
Nearly every gripe with Javascript stems from the first and last items on your list. 99% of the javascript I come across is written as if it is C, which causes all sorts of confusion with scope and efficiency.
Yes, and I think it's a bad design to model the statements of a language against a different language, but completely change the semantics. An extreme example would be using the '+' symbol for subtraction. But I don't think that the typeof issues I mentioned are fundamental to functional programming languages. And I don't think that reusing bad design (===) excuses the language just because "Javascript is not alone."
Other languages with tons of theoretical cred share the newline/semicolon problems (Haskell, for example).
I haven't seen many other languages do this, but I still think it's a bad design. I'm su
Re: (Score:3, Insightful)
Re: (Score:3, Interesting)
That's an extreme case, but it illustrates the point. Javascript takes common programming paradigms, structure, and syntax, and turns them on their heads. It would be nice if the designers had chosen to make Javascript look a little less C-like, but I suppose that it might not hav
Re: (Score:3, Insightful)
I guess that it depends upon your definition of "buggy." You can design a language where the Integer object has a destructor named "toString" if you want to. And if someone did that, I would consider the design to be broken.
No, the definition of "buggy" is not open to interpretation. If your language defines a destructor named toString, then that is a feature of the language, not a bug. Any implementation which does not correctly implement it is therefore buggy, but the language itself is not.
Now, anyone is certainly free to argue whether a destructor named toString, or any particular feature of JavaScript, is a good idea, but saying that the language itself is "buggy" or "broken" is, by definitio
Re: (Score:2)
No, the definition of "buggy" is not open to interpretation. If your language defines a destructor named toString, then that is a feature of the language, not a bug. Any implementation which does not correctly implement it is therefore buggy, but the language itself is not.
Now, anyone is certainly free to argue whether a destructor named toString, or any particular feature of JavaScript, is a good idea, but saying that the language itself is "buggy" or "broken" is, by definition, incorrect.
While you're correct about "buggy" (which describes a deviation between specification and implementation), you're way wrong about "broken". Things most certainly can be "broken by design", which refers to the state of things when a specification says something that just can't be argued to be correct without the application of hallucinogens.
Whether or not JS fits that bill is a matter of debate. (I'm not too fussed either way there TBH; I just prefer to use other things.)
Re: (Score:2)
Re: (Score:2)
The good news is that nobody's forcing you to program in it.
Re: (Score:2)
Javascript ... The good news is that nobody's forcing you to program in it.
If you want to write software for the web, this is not so; you have to know and use some javascript. The good news, some of that code is now jQuery's problem.
Re: (Score:2, Interesting)
<historyLesson>
This was a bug. The original implementation used tagged pointers and the tag bits for objects were zeroes. Null was also represented by zero. The typeof method forgot to treat null as a special case so, coincidentally, the type came out as object. Netscape tried to change this (and various other bugs) when ECMA standardized the language, but MS (who'd done an almost perfect job of reverse engineering the language) insisted on backwards compatibility.
</
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
null.typeof returns 'object'. So does Array.typeof. That's just ... dumb.
So's your face.
And I realized that you're just being a dick. Call me back if you want to have a real discussion on the merits of Javascript as a language. Until then, go to hell.
Re: (Score:2)
Re: (Score:2)
Prone to being abused? Which language isn't?
Javascript?