Friday, October 3rd, 2008

Thinking about the difference between frameworks

Category: JavaScript, Library

I got to meet Aaron Newton at The Ajax Experience, and he is a thinker. He was really taking in the various talks, and interactions, and you could tell that he was trying to work out various angles on the frameworks. What makes them different? What makes them popular? Where are they going?

He wrote a really nice post on some of these thoughts that goes into detail on different patterns for JavaScript programing. The meme at the show was definitely “the frameworks all do the same thing, just with a different looking API” which makes it even harder to put your finger on differences sometimes. Aaron does a good job.

John Resig himself gave a talk comparing the frameworks. Considering that he is Mr. jQuery, I thought he was very unbiased and had some good thoughts:

Posted by Dion Almaer at 10:20 am
71 Comments

+++--
3.6 rating from 77 votes

71 Comments »

Comments feed TrackBack URI

Jack,
“viper2k, the post you quoted above was from before Ext JS 1.0 when we had an open licensing discussion with the community. ”

Oh really, so there was an open licensing discussion way back from the Ext 1.0 days. So great, you came up with a license that was based on user feedback in the early days of Ext. So why then change the license from Ext 1.0 to 2.0 and then again from 2.0 to 2.1 making the license more restrictive each time. That sure sounds like bait ‘n switch.

Conceptually, you’re full of it.

Comment by viper2k — October 7, 2008

viper2K, the post you quoted was regarding Ext 1.0 from 2007. Jack addressed my concerns and resolved that issue within hours. We still use Ext JS to this day and are very happy with the framework.

Comment by justheatingup — October 7, 2008

@viper2k – “stop making stupid arguments”, “say whatever nonsense”, “It means Jack-sheet”, “a mancrush”, “rescue of your idol”, “Ext sleazeness” – wow, what can I say? How old are you, really? I think it is you that looks extremely silly. Those comments sure gave me a good laugh. :)

As for my post that you are referencing back in March of 07, Jack Slocum contacted me directly and we discussed my concerns offline and all was/is good. In fact, that conversation lead to myself and Rich Waters starting Ext.nd. This is just another example where people like yourself just don’t have all of the facts and then start spreading FUD like this.

Comment by jratcliff — October 7, 2008

@jratcliff Your accusation of “troll” is baseless: I did not raise the topic of Ext or why John excluded them, coryn1 did – he/she asked a question that I answered accurately with a correct link to the source.

Re: bait and switch: hundreds of people with no financial connection to any competing product have called Ext’s licensing moves a bait and switch or used equivalent terms. Here’s 400+ pages worth:

http://www.google.com/search?q=extjs+bait+and+switch

The fact that Ext pulled a “bait and switch” is a broadly held, consensus opinion (see above), and it was neither FUD nor even a contentious point for me to mention it.
I am amazed to see you label this outcry – hundreds of people with legitimate grievances – as “FUD”. Nice.
You also make the nonsensical claim that it’s not a bait and switch when the perpetrator says it’s not? Shall we also ask the thief if it’s theft? If you’re going to start insulting people, start by being coherant.

Comment by ckendrick — October 8, 2008

It’s quite amusing how Jack is getting his minions to chime in. Some of them that have a vocabulary that is limited to “FUD”.

Comment by viper2k — October 8, 2008

@ckendrick – the issue I had with you is that the question coryn1 asked was directed at John and you then decided to answer it yourself and in fact, in a later post, you say to rextasy: “..you have just profoundly misrepresented Resig’s reasons for omitting Ext from slides, panels, etc. This is not about quibbles over SVN access, but instead about the LGPL -> GPL bait and switch.”. Here, you are now putting words into John’s mouth on why he really omitted Ext from his slides at the conference. You shouldn’t be asserting this and if this is truly the reason why John left Ext out then let him say so. Are we to believe that you know what John’s real intent was when he didn’t include Ext in his slides or that you know what Ext/Jack Slocum’s real intent was when they changed their license. You have the right to to say what YOU believe but don’t go around putting words into other people’s mouth to help validate what you believe. Let them speak for themselves.
As for the “bait and switch” being a consensus. You are totally omitting all of those who are perfectly fine with the license. Besides, just because someone is *accussed* of something doesn’t make them guilty. You and I disagree with the facts and neither of us, despite what you think, can really know the true intentions of what Ext/Jack did since we can’t read minds.
Now, where can we go from here? I propose we stop hi-jacking this thread since we are way off-topic now. Nothing good is coming of this. Just think how people reading this thread will think. Charles (ckendrick), you are the CTO and Chief Architect of Isomorphic Software and the architect behind the SmartClient Ajax platform and ExtJS is your competitor. To jump into this thread and start speaking for John Resig and and Jack Slocum expressing what their intentions on for slides in a conference and a license change to their product just doesn’t look good. Let these guys speak for themselves.

Comment by jratcliff — October 8, 2008

@viper2k – you’re a very funny guy/gal. This is twice now that you have made me laugh. But, to answer your accusation: “No one is getting me to chime in”. I’m just defending what I perceive to be a wrong. Is there something wrong with that? It’s really a no win situation if you think about it. If no one speaks out against the accusations made against Ext then everyone will just say “see, their guilty, they don’t even bother defending themselves”. But if someone does go on the defense then they’re just accused as being a “minion”. Nice.

Comment by jratcliff — October 8, 2008

jratcliff – Aren’t you doing the the same thing. Jumping in and speaking for Ext, when someone from their company should be answering these.

Oh and by the way Jack never replied explaining what he means by “conceptually there was no license change” when it did change. Moving from LGPL -> GPL is not a license change?? Which world does he live in? Just goes to show how the company feels about licensing issues.

Comment by andrewwell — October 8, 2008

@andrewwell – good point. I too shouldn’t speak for someone else so my apologies on the posts that I did. I will say, however, that as far as I know and understand the situation, there was never an intentional “bait and switch” and I’ll go on record as to also say that I (that’s just me talking) don’t see the license change as a bait and switch at all. I think everyone should just agree to disagree and leave it at that.

Comment by jratcliff — October 8, 2008

andrewwell, your quote is incorrect and the change you made completely changes the meaning. What I said was “there was no conceptual license change” – meaning the concept of how we license Ext never changed. Since version 1.0 we had commercial and open source licenses. The open source license changes have ben explained several times, including a long winded explanation on my blog. If you choose to not believe or to ignore those reasons, that is your choice but your ongoing efforts to convince others there was an insidious motive is where you cross the line and become a troll in my book.

As for “bait and switch” being the consensus, that is ridiculous. 10 (or even 100) out of 50,000 registered users (and over 200,000 daily visitors) is not a consensus. And the most vociferous people speaking out against Ext aren’t the people who use it – it is people like you who are our competitors and who hope to spread FUD to benefit themselves.

Comment by jackslocum — October 8, 2008

@jratcliff
You rant at length about putting words in John’s mouth or in Jack’s mouth, which would be a great point, except that what I actually did was link to John’s exact words posted elsewhere, making your screed completely irrelevant.
You talk again about innocent before proven guilty, but you don’t seem to understand that this is a wholly unrelated concept that comes from criminal law. People are free to have an opinion and to express it, and they have, using the term “bait and switch” to refer to Ext, all over the web. That’s what I claimed, and it’s true.
What we have here are 3 people – you, me and Jack – with “skin in the game”. I’ve been completely forthright about who I am, referring to “my company” and “my product”, because it’s important that people have a chance to evaluate my possible bias for themselves. For the same reason, I answered direct questions only, with links to sources backing up everything I’ve said.
In contrast, Jack tried to mislead people about SmartClient’s license, and you both inserted name calling into a rational discussion.
Please don’t try to pretend that by merely answering you I have somehow sunk to your level. I’m the guy with his signature on an open letter committing to a consistent LGPL license.
Wow, there’s Jack again. There’s no need to take Jack’s word, my word, or anyone’s word as far as the general opinion on the Ext license change. Do a few quick searches, be aware of people’s affiliations, look for neutral parties, and draw your own conclusion.

Comment by ckendrick — October 8, 2008

@ckendrick – dude, relax already. I never said that the link you linked to wasn’t John’s exact words. The problem is that you are taking these words from John that happened months ago to assert that is why Ext was left off of his slides for his presentation at The Ajax Experience. So that’s the problem I had with your post to rextasy where you say:

By the way, you should really read what Resig and others have said about Ext, because you have just profoundly misrepresented Resig’s reasons for omitting Ext from slides, panels, etc. This is not about quibbles over SVN access, but instead about the LGPL -> GPL bait and switch.

it just comes off as though *John’s* quibbles of not including Ext on his slides are really over a perceived LGPL – GPL bait and switch. But that’s not what John said. That’s what you just said. Also, John, in an earlier post to you, coryn1 and rextasy doesn’t mention anything about a “bait and switch”. So no where in this discussion thread or the responses to the user who had the question of why Ext wasn’t included in the slides does John say that. Only you say that but in a way where someone could take it that John did. So do you get where I’m coming from and why it sounds like you are speaking for John? Now there’s no question that you have a fantastic Ajax/RIA framework and so does Ext. I just prefer Ext and took issue with what sounded like FUD being spread. Understand? If you didn’t mean it as FUD then say so and let everyone know that the comment is your opinion and not John’s. If it’s John’s opinion then let him say so, ok?

Comment by jratcliff — October 8, 2008

@jratcliff You’re right on one thing – John did not actually use the phrase “bait and switch”. What John said is much, much, much harsher.

ExtJS is a giant licensing fail pile masquerading as an open source project in a thinly-veiled attempt to force more people to buy their corporate licenses.

They’re using ‘open source’ as a buzzword selling point to lure companies in, befuddle them with confusing viral licensing, and obligate them (through the obvious balking that the corporate lawyers will do) to get them to buy a full, corporate, license. It’s very sneaky, quite disingenuous, and paints a bad picture for open source development as a whole.

From:
http://www.reddit.com/comments/6gli8/ext_21_released_license_changed_from_lgpl_to_gpl/

Compared to this, “bait and switch” sounds downright mild, so please don’t tell me I’m misrepresenting what he said, I actually toned it down, if anything.
John’s statements of the past, are, to put it midly, a very plausible reason for him to exclude Ext from slides, and it was valid and informative to refer people to them.
Here now, in this thread, John points to the GPL license as a sufficient reason for Ext to be excluded. But that is not in conflict with, and does not change, what he said in the past, nor does it make it invalid to point to John’s former words, especially as John had not explained himself yet, and I didn’t think he was going to.
This is a perfectly ordinary thing to do. Discussions about technologies and people happen all the time, all over the internet, in which the principals being discussed are unlikely to step in directly, and so people link to their official statements.
You stepped in with a baseless accusation of trolling, clearly false by your own definition, as I did not raise the topic. I do appreciate that you are no longer slinging such terms around, and that you now instead trying to dig into whatever nuance it was you didn’t like. But as a baseline of respect, you should retract your “troll” comment, which just isn’t true.
Side note to John: if your intent was to distance yourself from your more heated comments of the past, then sorry for bringing those up again.

Comment by ckendrick — October 8, 2008

ckendrick, trolling would be every mention of Ext JS on the internet, you are there bashing us. Trolling would be using a licensing discussion of the past (that is no longer valid) and trying to apply it to the present. Trolling would be creating a fake blog attempting to defame Ext JS.
Even more important though, you have nothing to do with Ext JS – you are neither a commercial or an open source developer using Ext JS.
You do not know the history behind Ext JS and you do not know me. I am requesting you stop trying to act like you do and stop trying to make me out to be some villainous character out to rob everyone. If you knew me or even the history of Ext JS in the slightest you would realize you claims are not true. Ext JS never did anything to you other than give you ideas for how to improve your product.
As for us being a closed source company pretending to be open source, Ext JS has been an open source company since day 1. Whether you think so or not, the GPL license is the #1 open source license in use. We are a member of the FSF. We have spent countless hours and resources speaking with open source legal experts (the same guys who consult with open source giants like MySQL) to create an open source offering that is flexible (see our exceptions) while still meeting our quid pro quo philosophy.
On the other side, your company has been a closed source company since 2000. You just recently switched the client-side portion of your product to LGPL (the server is still proprietary) and now you think that makes you an open source expert. Considering history, if anyone is trying to use “open source” as a buzzword to sell a product, it would be your company.
As for continuing this discussion, I am done with it. If you want to continue it further, please let me know of any upcoming conference you will be attending and I would be happy to meet you there.

Comment by jackslocum — October 8, 2008

well well, someone is getting defensive. Jack, your actions past and current paint a pretty clear picture of your character so don’t flatter yourself.

If GPL is the #1 license, why do you have exceptions to allow extensions to be liberally licensed? Worried that Ext will come to a grinding half if all the extensions were also licensed under GPL. Ext is as hypocritical and two-faced as it gets.

And you don’t control who gets to voice an opinion on the Ext shenanigans . It is not limited to Ext users. In your high and mighty mind it may be, but most don’t care a rat about what you think or want.

The facts are plain and simple. Let me jog your memory

Grails founder Graeme Rocher wrote here http://java.dzone.com/news/if-your-open-source-provider-a :

“The news that Ext-JS has, from one release to the next, changed from a modified LGPL to a GPL based license nearly made me fall off my chair. There have been many poor judged, and ill advised decisions made by software companies over the last few years, but this has got to be up there with the stupidist I’ve seen and I’m not even personally an Ext-JS user.

What they have effectively done is built up a community, taking full advantage of the open source model by accepting user contributions and patches and then turned around and kicked their own community up the backside. It is projects like Ext-JS that give open source a bad name.”

John Resig also wrote here : http://www.reddit.com/r/programming/comments/6jhhs/dont_use_extjs/c040qhr

“Actually, it is (Ext is Slimy) – since the explicit “if this is a piece of JavaScript code, don’t virally infect the server-side code” clause of GPLv3 wasn’t included. This means that if you ever use server-side code to write out a JavaScript method (e.g. “ext.showModal” or some such) then you immediately have to take on the GPL there, as well. This isn’t just my interpretation, it’s Jack Slocum’s (creator of ExtJS) as well. This is being done very intentionally to keep the appearance of being ‘open’ while, at the same time, making it impossible to actually ever use in a non-Open-Source capacity.”

And even Dion expressed his opinions here :
http://almaer.com/blog/ext-js-a-reminder-that-you-are-not-alone

There is no conspiracy theory here. It is not a select group of competitors who are out to get you. Prominent personalities from different spectrums of OSS have all made the same conclusion that you resorted to dirty business. I hope you sleep well with the money you’ve made. The Ext empire is not going to last too long.

Comment by viper2k — October 8, 2008

correction : The link to Greame Rocher’s blog post is http://graemerocher.blogspot.com/2008/04/choosing-and-oss-license-and-ext-js.html

Enjoy the Fall :)

Comment by viper2k — October 8, 2008

What was this post about again?

Comment by anewton — October 8, 2008

@Jack Claiming to be “done with” a conversation after taking several parting shots is a child’s game. Sure, meet me at AjaxWorld if you have something to say, I’m speaking right after day 2’s keynote. In the meantime, I will correct your public lies.
I have not “created a fake blog to defame Ext JS”. I assume you are referring to the ExtIsEvil blog that I linked to earlier, started by “Ext Whistleblower”. Jack, when you see 400+ hits for a search for “ExtJS bait and switch”, don’t you realize there are hundreds if not thousands of people angry enough to create such a blog? If I wanted to speak out against you, I could follow the example of many open source luminaries and prominent bloggers and simply speak my mind, publicly condemning your actions as so many others have, without fear of any backlash.
Now who would bother to instead, conceal their identity? Connect the dots Jack. It’s one of your own users. Like many Ext users caught midway through a project by the Ext license switch, he may strongly deplore your actions, but he has no choice but to continue with Ext for now. And while he does, obviously he wants the benefit of the support he paid for.
If I ever criticize you or your actions, you will see my name on it, I promise you. To decide this blog was mine was simply foolish; to accuse me of it, inexcusable.
The rest of your post was a confused mixture of responding to John Resig’s words as though I had said them; strange attempts to claim that the history of Ext is unknowable when in fact you personally explain it right here (albeit in an unsatisfactory manner); along with an amusing and vague attempt to have the credibility of Linux rub off on Ext because you both use the GPL.
The reality is very simple: SmartClient is real open source, free for use inside commercial, closed source applications, products and frameworks, no special cases.
Ext is not.
See you at AjaxWorld.

Comment by ckendrick — October 9, 2008

ckendrick FTW.

Comment by ericnguyen — October 9, 2008

Just like any other library-type software that provides reusable components to developers, frameworks that have overlapping functionality each have their strengths and weaknesses. So at the end of the day, it all boils down to a business decision. When choosing between, say, jQuery and Prototype, it all boils down to a business decision. However, the current situation in the world of JavaScript development reminds me of C++, where each library has its own set of collection classes, and sometimes even a string class… But this is inevitable when the language runtime is not bundled with an extensive set of APIs like Java or .NET. Even then, there will be replacements for standard libraries that are better at something specific.

What I find a little interesting is using (and developing) libraries that provide specific functionality without imposing a set of design decisions on the developer with regards to any functionality not provided by the library. For example, Lightbox (http://www.lokeshdhakar.com/projects/lightbox2/) provides pop-ups and only pop-ups, without having its own Ajax library and DOM traversal helpers. Scriptaculous (http://script.aculo.us) provides a layer of animation, and while it uses Prototype, you don’t have to… However, the presence of Prototype might cause problems with the “$” function.

Comment by MapDot — October 18, 2008

I recently developed a library called DiXon / JavaScript Client Pages (http://www.codeplex.com/JSClientPages), which allows you to code client-side pages using the paradigm used on the server side; namely with XHTML markup intertwined with embedded code and/or custom tags.

Example (I don’t know if Ajaxian is going to escape my entities – sorry if this comes out unreadable):

PHP-style:
<ul>
<?js for (var i=0;i<employees.length;i++) { ?>
<li><span class=”name”><?js text(employee.firstName + ‘ ‘ + employee.lastName + ‘ (‘ + employee.title + ‘)’); ?> </span> </li>
<?js } ?>
</ul>

ASP.NET-syle:
This can also be done with custom XML tags
<ul>
<js:forEach collection=”items” item=”item”>
<li>
<span class=”name”&gt<js:output value=”employee.firstName + ‘ ‘ + employee.lastName” /<</span>
<js:output value=”employee.title” /<
</li>
</js:forEach”>
</ul>

The library can be grafted onto any framework. What do y’all think of the concept?

Comment by MapDot — October 18, 2008

Leave a comment

You must be logged in to post a comment.