Update: Olmo and I have been in contact recently, off public-facing sites, but here’s a public response that he made, and here’s a private one that I gave to him:
Thank you for doing this. I want to, personally, apologize for
everything that I did during the past couple days. It was out of line
– both for myself and in general. I should’ve done a much-more even
tempered response, I got caught up, it turned into a flame – ugh,
sorry again.I fully accept your apology and will be adding your comment and
modifying my post to give people more details and apologizing
publicly.
Watch first: [Video]
I learned some things about jQuery today…
jQuery Steals Code
In fact, not only do we steal code, but we’re incompetent at it too! Durrrr, let’s swap some variables and pray it works! How does animation work? Who knows! It’s one of the mysteries of the Intertubes! I mean, it’s obvious that we never could’ve completely rewritten a popular animation library back in 2005 because we just “tweaked some variables” and prayed everyday that it would work.
jQuery hates developers, love companies
We love that sweet, sweet, money that corporations send our way. Forget developers. As far as we’re concerned, they can stay in the ditch that we threw them in to drive on the way to moneytown.
jQuery hates prototyped code
I mean really hate. Like, so much so that we wouldn’t even think of contributing to their code bases or invite them to be on a panel with us.
File size is the only thing jQuery considers when adding a feature
It doesn’t matter how useful it is, or what performance benefits we get. It’s file size, over everything else. Carefully balancing facts and weighing advantages is ludicrous and highly overrated.
File size is irrelevant
Making code modular makes file size irrelevant, since you can just pick and choose what you want to use. Nevermind that the sum of the parts is larger, all that matters is that you write code for developers. Developers who don’t care about file size.
jQuery code isn’t modular
I mean, I think the code base would have to be broken into, at MINIMUM, over 250 modules before we even talked.
Ternary Operators!
Seriously, need I say more? Obviously the mark of incompetence.
jQuery claims that it’s the fastest library
Every blog post, there we are, thumping our chests, showing our superiority…. against ourselves!
jQuery has problems with closures
My head, literally, just exploded. I’m dead, lying on the floor. Can someone please put “he had a lot of problems because of the closures” on my tombstone? Thanks! (I wish I was making this up, 16:20, check it out.)
Olmo: You seem immensely proud of your ignorance concerning other libraries but love to speak on authority concerning them. Maybe you should take some time to sit down and actually try to use and work with other libraries, because while you were out bashing and slandering us we were writing rock solid code, sharing, collaborating, and discussing the future of the web.
Let us know when you’re ready to see the Open Web succeed, we’ll be here, getting things done.
Updated: Valerio (head of the Mootools project) has posted a reply on the Mootools blog.
Steven Bristol (December 13, 2007 at 12:08 am)
Wow John, I am convinced. I am leaving jQuery and joining the Moo Revolution!
Had I know all along that jQuery was only interested in corporations and not developers, and that jQuery’s primary concern was internet users who still use modems, I never would have tried it in the first place.
I feel completely betrayed by jQuery…..I always thought it was really good, but now I see that I was mistaken. I loved jQuery, but obviously jQuery never really loved me.
Please accept this notice as my official resignation from the jQuery fan club. My membership card and secret selector decoder ring will be returned to you. :P
Ara Pehlivanian (December 13, 2007 at 12:09 am)
I don’t get it. Why spend large chunks of your presentation time putting down other frameworks? Just talk about your own product. It’s just silly and comes off as very unprofessional.
Simon Brüchner (December 13, 2007 at 12:33 am)
Hi John,
I think, that each JS framework has its own strengths, so don’t be shy! jQuery has its own special approach.
Simon
John Resig (December 13, 2007 at 12:37 am)
@Simon: Absolutely! Mootools is a great codebase, never said it wasn’t. In fact, I’ve given presentations promoting them, in the past. It’s just the slander by one of their team members that bothers me, especially.
Justin Meyer (December 13, 2007 at 12:39 am)
What was the context of this presentation?
Eric Miraglia (December 13, 2007 at 12:43 am)
John — Very sorry to learn about all your problems “because of the closures.” Sounds painful and daunting. This is a shocking expose. It’s a wonder anyone is using jQuery at all. But the rivers of corporate money must ease the blow some? Alas. -Eric (and all your friends at YUI; we have “problems with the closures” too!)
pd (December 13, 2007 at 12:48 am)
if jQuery didn’t exit, I’d probably write most of my JS hand coded.
I thought I was alone in bashing YUI for it’s monolothic size. Then jQuery came along and I realized I was correct all along. Other libraries are similarly bloated and hence were overlooked when I sat back during Yet Another Web Trend around 2005 and waited for my own judgement to be satisfied.
As for modularised, when looking at Dojo, and I’m struggling to remember the last time I did, it was pretty much too modularised. Every block seemed to be a extension of the primary object which might be a very disciplined approach to code structure, but it also results in extra code to get simple things achieved, if I recall correctly. There is no beating the jQuery “nano-syntax” of
$("#pickElement").applyMethod(blah, blah);
The one thing moo has got over jQuery is animation. jQuery animation sucks in that it queues up so a smartarse user can run their mouse over a series of elements, that all have associated animations, really fast and stop, then watch it all ‘dance’ until the queue empties. This is, in not very nice terms, crap. For me this means all the jQuery animation functions available are useless because they produce embarrassing results. Once people discover this, they tend to ‘play’ with a site like it’s a toy. I expect jQuery to fix this and make “It Just Work” like moo seems to (apparently). This jQuery deficiency in no way means that jQuery is an inferior library. It’s merely a flaw that hopefully can be fixed.
Keep up the great work John. Fuck what nasty shitheads say about you. I don’t see too many developers of other libraries getting the kudos of being employed by the same organisation as Brendan Eich.
John Resig (December 13, 2007 at 12:57 am)
@Justin: It sounds like it was a technical user group meeting of some sort in Los Angeles. There was some more information on the Mootools site.
@Eric: Someday we’ll figure out this closure thing – and when we do, I’m sure it’ll be great!
@pd: You may want to check out the animation queue control code that was put in jQuery 1.2. Also, check out this plugin that I wrote that gives you incredibly-in-depth animation queueing control (on par with Scriptaculous, but done in a completely jQuery way). I hope this helps you out!
pd (December 13, 2007 at 1:14 am)
Hi John
Thanks for the tips! I suppose ultimately I’d like to be able to apply an animation method and just forget about it. Hopefully though, until that may happen, I’ll try your workarounds. Now for some reading :)
Oh yeah that reminds me one of the superb things about jQuery. I’ve got no idea how much work you have on your plate John, I assume there is a a lot with MoFoCo alone, but the way you communicate with *developers* is excellent. That moo clown may think they “code for developers” but jQuery has nothing to be worried about in this respect. Communication with implementors through mailing list, blogs, documentation etc. … that stuff is equally, if not more important, than writing code in a style that apparently developers will like.
To be honest I’ve never read the jQuery code and that must be a good thing because it means I’m getting on with *using* it, not interrogating it’s design.
Thanks again to you John, and all the jQuery coders, for your excellent work. My life as a web developer has been greatly improved by your efforts. If only browser developers were able to write code that was as universal / compatible as jQuery then life would get much easier.
Speaking of browsers, I notice mooman (didn’t catch his name) was demonstrating with Opera. Probably the most well-known yet irrelevant browsers available? Has it even reached 1% market share yet? I wonder if that Flash-like game he demonstrates works so well in IE6?
David Hurth (December 13, 2007 at 1:38 am)
Wow John,
That is quite a presentation bashing jQuery. I saw this posted even on a blog that I write for (we are going to be removing the post after we watched the full video as we had just posted it as a it was told to us that it was a MooTools tutorial) and I hadn’t watched the full video. That is just incredible and I think uncalled for. I think both jQuery and MooTools are great libraries, but I can’t understand why jQuery would be bashed (I personally don’t see that what was being said is true). All I can say is that this is unbeleavable!
Mark G (December 13, 2007 at 1:56 am)
John,
I’ve only ever heard [well deserved] praise of jQuery before, any bashing is unfounded. Keep up the great work and don’t let this get you down – you’re still under 3.4 bashings per million which is good enough to pass Six Sigma quality standards. It’s good to see you haven’t lost your sense of humor – with all that sweet sweet corporate money piling into your bank account, maybe you can ship out future releases of jQuery with a free iPod? All in favor for the $Pod?
Nikola (December 13, 2007 at 3:15 am)
A free iPod shipping with future releases will be a nice compensation for all the headaches you brought us with those closures … ;-)
Olmo Maldonado (December 13, 2007 at 3:32 am)
Thanks for reading our blog! Even as I was presenting I was hesitant about saying anything about other frameworks. I knew this would stir up some emotions, but I never expected this much calamity.
I’ll address each point:
‘jQuery Steals Code’
Sure… I could of qualified. The point was not to bash that you’ve literally copied moo.fx into the source code and forgot to mention it in the credits (not just a few lines above the actual code). That wasn’t my point. My point is that jQuery.fn.* is in efficient. You guys provide jQuery.fn.animate, someone else can write jQuery.fn.animate = something else; and waste all the previous code in jQuery.fn.animate. I had done prior research in this, even though it’s self evident from the source code. Here’s the thread from your own mailing list. In the same thread you agree that there was not a prior way to “stop animation without modifying jQuery core.” (Aug. 18, 1:04pm same page) Therefore, someone had to make a ifx.js, from the Interface elements for jQuery site, (for instance) to overwrite the jQuery.fn.animate.
I even applauded that you guys had revamped your fx :( in the recent release.
‘jQuery hates developers, love companies’
This is plain inflammatory and nowhere did I mention that you guys hate developers. In fact, I should apologize to Prototype since I claimed that their demographic is mostly commercial (or is that a bad thing?) Here’s my direct quote where I assume you misinterpreted what I said. I do realize the sound is gibberish at time.
06:17, “… the communities are a little of a taboo for us. Since like I said, “we focus on the developers.” Some of the community is considered as unfriendly for us. But the other ones — the other frameworks — are understood as being friendly. The demographics, however, we tend to have more developers — not as much as commercial .. uh.. as prototype but we have a variance.”
‘jQuery hates prototyped code’
First here’s what I actually said.
07:15, “The prototypes. jQuery doesn’t play with it. In fact, they look down on anybody that plays with the Native prototypes. Prototype and us, however, we do play with it …”
I didn’t say “hate”. Second I could have qualified “in fact”. But nonetheless it seems self evident from your past presentation that you look down on anyone that plays with the Prototypes. In
your video on “Building a JavaScript Library” you clearly state that you “don’t like [extending the Native Objects].†I took the liberty and wrote down what you said:
25:40, “And again I’ve alluded to this before.. but you should never extend Native Objects — ever. And uh.. and ah this is.. eh eh.. it’s almost a philosophical point. You know. The Prototype library. It’s fantastic library absolutely fantastic. The developers are really stand off. They enjoy extending native objects. That’s just how they roll. So. I don’t like it … ”
‘File size is the only thing jQuery considers when adding a feature’
Here’s what I said:
06:40, “Feature set… this is the thing that bothers me about jQuery. They try to reduce as much as possible so that they can keep their size down. That’s their objective. So what they do — when they have any considerations — they evaluate them for their size and no so much for their speed and stuff like that … ”
First, let’s assume I over simplified your evaluation method. That’s fine. From my perspective you guys always are panic-ing over size. It’s certainly my deduction from all your advertisement on the website that your biggest claim to fame is that you’re the smallest library. In my defense, I did try to qualify a bit. I did say, “not so much†to the other aspects in your evaluation. If your priorities are different that’s fine. I think I’m not too far from the truth, however. Otherwise jQuery would be much bigger in size. Considering that 1.x kb is not that big you seemed to turn this plugin down a while back, for instance: “Move JSON into jQuery’s Core?â€. Obviously this could be an isolated instance, but I’m sure you’ll clarify jQuery’s stand on the evaluation process.
‘File size is irrelevant’
Again.. I didn’t say that file size was irrelevant. You did get it right in that “you can just pick and choose what you want to use.†I would comment on the “sum of the parts is larger†but then I think that might ensue more anger. I think you owe some people – the “[d]evelopers who don’t care about file size[,]†an apology, however.
‘jQuery code isn’t modular’
I’m confused with your statement. For some reason you included the plugins with jQuery. My remark was that you can’t select specific things from jQuery core when you’re downloading. Again this was just a direct comparison of how we provide extensibility in the core of MooTools. Not just extensibility in the framework with a plugin architecture.
‘Ternary Operators!’
Thanks for the unnecessary remark. I didn’t bash the ternary, however. In fact, I use them all the time. I just said:
09:38, “Let’s look at jQuery. jQuery looks pretty nice, but the only thing that you notice is that they’re not too … uhh .. they enjoy playing with the ternary a lot because it saves them a lot of space. So, if you’re a coder and you’re really evangelical about how code looks like this is important to you.â€
Clearly I am not criticizing your use – I was about to but I stopped. I personally find the use of ternary very useful. The way you guys play with the whitespace, however, is horrendous – at least to me! I didn’t mention it in the presentation but obviously one can suspect my feelings on the subject. I left it to the audience, however, to decide what is “aestheticâ€.
‘jQuery claims that it’s the fastest library’
I’m having a hard time finding this – it’s 12am and I’ve been writing this rebuttable for a while now. If you can find the direct quote I’d appreciate it. If I did allude to this or said it, it was probably because there have been others voicing this opinion about jQuery. They’re not pretty sentiments as you’d like them to be.
Here’s some evidence from someone who spoke about your “thumping our chests, showing our superiority.†I still believe I didn’t mention this, but clearly there are some people who happen to agree on your statement. I personally don’t care. :\
‘Olmo’
I’ll ignore this part. It’s not in my interest to throw more fuel in the mixture.
Now my time to put my $0.02. My intention has never been to hurt anyone. Nor has it been to raise suspicion, cause panic, or mayhem. I personally have no vested interest in hurting you or jQuery. As I mentioned in the presentation I’m a full-time student at UCLA. I’m an Engineer – not a Web Developer! I happened to stumble on a gold mine called MooTools and I fell for the gold. No apologies here. Furthermore, I don’t need to prove myself to you – or anyone. I help MooTools because it is fun and I happen to be good at what I do.
Now with that said, I would appreciate that you would please tone down your responses. You clearly took things out of proportion and in the process have publicly tried to humiliate me. I understand how you could feel if I was in your place so no worries.
Anyway… need to run. Thanks for watching the video!
Olmo Maldonado (December 13, 2007 at 3:37 am)
@Justin and Ara
Right I suppose I should have covered that a bit more. So this is called a Meetup — group of people meet and just present to each other or talk about common interest. This particular Meetup has presentations and I happened to be one of them. The audience of the Meetup group is also a technical audience. In fact, Will Jessup had requested that I’d go in as much technical detail as I could — which is why you saw a lot of code and a lot of specific references.
I didn’t want to spend the majority of the time talking about the other frameworks, but as I was making the presentation it’s hard to talk about MooTools to an audience that are web developers who use other frameworks without comparing. If you noticed, all of the questions talked about other frameworks!
In retrospect I could have dealt with it a little better, but in the heat of the moment I thought I handled myself considering that my audience was mostly Prototype and jQuery users.
Eduardo (December 13, 2007 at 4:17 am)
John,
jQuery rocks, Olmo may have his arguments, but every people that I present jQuery down here in Brazil gets amazed and say things like, “how could I have been programming javascript without it”
It can’t be simpler, development can’t be faster and cleaner
RossC0 (December 13, 2007 at 4:38 am)
I can see you feel strongly about the presentation John. Some of the responses to questions by Olmo were inaccurate, however, this post is equally as flamebaiting than the presentation was.
It would have been better to say there was a presentation about MooTools and some points about other frameworks were wrong / out of date because a,b,c. Rather than out of context headlines and sarcastic retorts (or do you really think everyone will watch the presentation first).
Your right Open Web is not a competition and I would urge all developers that work with open source tools help the Open Web succeed. But its a two way street, people are allowed different opinions and it human nature to make mistakes.
However, adding fuel to the fire isn’t a productive way to help the Open Web succeed either John.
Hopefully, this can be turned into a positive and developers from both libraries can start to communicate better, share, collaborate and discussing the future of the web. After all you both love javascript!
Joe (December 13, 2007 at 6:52 am)
Funny he claimed Prototype/JQuery people etc aren’t as geared towards developers as much as companies, and then he shows a Microsoft page using MooTools :)
Steven Bristol (December 13, 2007 at 8:04 am)
@Olmo,
I think your comments show that you are unaware of how people are listening to the subtle cues of inflection and timing that make it clear to us, the viewer, that you are very defensive and upset in your talk. My impression is that you feel that you have been attacked in other venues and this is your chance to retaliate in a an effort to prove that Moo is better.
“I am not criticizing your use – I was about to but I stopped.” — This tone of ‘about to criticize’ came through loud and clear. Your talk was inflammatory and I don’t think it’s inappropriate that John responded in kind.
Perhaps one can understand that you are a young individual (I assume this because you are still in school) and that you don’t have a lot of practice in giving talks, and forgive the naive approach. My take from your comments above is that you did not intend to call John’s (and our) baby ugly. Maybe next time you could practice your talk before hand and ask you peers if it seems harsh or mean spirited before posting it on the internet — just a thought.
In the immortal words of Dr. Reverend Rodney King, “Can’t we all just get along?”
Rey Bango (December 13, 2007 at 8:22 am)
@Olmo: Actually, I think you handled it poorly. Instead of simply focusing on the technical merits of MooTools, which is a good library, you chose to make inflammatory remarks to prop yourself up. You’re not part of the jQuery project so I’m not quite sure how you can stand up there and profess to know what our focus is and state it as a matter of fact.
In the future, I think it’d be best if you focused on the technical merits of your project instead of attempting to minimize or discredit the efforts of two established and well received libraries like jQuery or Prototype.
John Resig (December 13, 2007 at 8:49 am)
@Olmo: Thanks for your reply.
‘jQuery Steals Code’
I’m sorry, but casually mentioning that “jQuery steals code” in a public venue (especially one that’s being recorded and put online) is unacceptable at any level. We’ve never “copied and stolen” code and it’s insulting to the work that we’ve done. We’ve always cited from where we’ve gotten our inspiration from right in the source code: Including people or projects like Dean Edwards, Simon Willison, Sam Stephenson, and moo.fx. The fact that you still insinuate that this is the case in your comment says that you’re not ready to discuss this. This is, by far, the worst thing that you could’ve said.
Additionally, you discuss having a single large function being inefficient (Interface overwrote it in ifx – last year), but then you go on to admit that the code has since been updated – but you still thought it was worthwhile to mention that point, even though it was irrelevant.
‘jQuery hates developers, love companies’
Ok, so considering that you thought that Prototype was “corporate” (for whatever reason), you did set up the argument that Mootools “tends to have more developers,” unlike the other frameworks; which is pretty much nonsense. You were making insinuations about other frameworks – which you admit to knowing nothing about – for no apparent reason.
‘jQuery hates prototyped code’
I, personally, don’t care for extending native objects, because it can lead to broken and inconsistent APIs when they don’t work properly. However, that has nothing to do with “looking down” on the libraries that use them. Prototype is a fantastic piece of code and I would use it in a heartbeat if I didn’t have jQuery.
‘File size is the only thing jQuery considers when adding a feature’
“First, let’s assume I over simplified your evaluation method. That’s fine.” How? How is this ok? Do I make broad generalizations and sweeping simplifications when talking about Mootools during a jQuery talk – NO – that’s because I don’t talk about other libraries and simply discuss jQuery code based upon its merits.
I think the fact that we actually take code size into consideration and balance carefully with the other factors (like performance and developer benefit) is rather commendable, I tend to think that our users agree.
“It’s certainly my deduction from all your advertisement on the website that your biggest claim to fame is that you’re the smallest library.”
That’s pure nonsense.
‘File size is irrelevant’
‘jQuery code isn’t modular’
The important distinction is that jQuery is modular – via it’s hundreds of plugins, but with an incredibly small core (14kb). The core itself is highly extensible – we provide documented plugin points throughout the library (not just ‘jQuery.fn’).
We don’t have a download builder for the core (14kb) code because any further reduction beyond that point seems ridiculous. That being said, we still provide the ability to build your own custom versions of jQuery (e.g. without Ajax or Animations) through our server-side build process.
‘Ternary Operators!’
The fact that you were even doing a code comparison – in a talk about Mootools – in the first place is incredibly strange. Code style of the internal library code is a huge matter of preference and making that a point of public comparison seems quite inappropriate.
‘jQuery claims that it’s the fastest library’
I’m not really sure what you’re referring to, exactly – your link is broken. In all recent speed comparisons we’ve been very particular about only comparing against our own code base – showing the improvements that we’ve made in speed. However, the Mootools team seems positively excited by the opportunity to show their speed in relation to the other libraries. Before pointing the finger anywhere, you guys may want to consider your own “speed discussion” strategy.
—
Truly the most effective way to promote a JavaScript library is to simply discuss it on its merits. I’ve given a number of talks now, at a number of conferences, on JavaScript libraries (comparing all of the most popular ones). Discussing libraries on their literal merits has always proved to be the most productive way to discuss them in a public setting; and is a big reason why I continue to get asked back to give that talk.
In future talks, you may want to focus purely on the merits of Mootools (ignoring such an easily-misconstrued topic as an other library).
John Resig (December 13, 2007 at 9:00 am)
@RossC0: “Some of the responses to questions by Olmo were inaccurate, however, this post is equally as flamebaiting than the presentation was.”
How so? Did I ever imply that Mootools stole code, didn’t care about its developers, ignored file size, or critique its code quality? No, because that would be silly. I have no place doing something like that. I’m sorry, but I don’t think there’s anything worse than insinuating that a library has only gotten to where it is by stealing code.
“do you really think everyone will watch the presentation first” – They really should. The criticisms brought forth in the video weren’t just leveled at jQuery but at Prototype as well (granted, we did appear to field the brunt of it).
“But its a two way street, people are allowed different opinions and it human nature to make mistakes.”
This is a whole lot of non-stop mistake making; it’s pretty easy to construe it as an attack. I’m sorry, but you never see other library developers discussing other library syntax or insinuating that they contain stolen code. There’s no difference of opinion about it – the contents of the talk were very inappropriate to the subject matter.
Juan (December 13, 2007 at 9:54 am)
@John and @Olmo
Both of you have the right to defend your work, nobody likes to hear that the work you have done for a lot of days (and nights for sure) has been done in a bad way.
Olmo should had a little bit of caution when talking to an audience and knowing that Internet is that fast and global, well you know that more than me.
Anyway, I hope you both (moo and jquery) keep working on making this web world better
Karl Swedberg (December 13, 2007 at 11:06 am)
“Hopefully, this can be turned into a positive and developers from both libraries can start to communicate better, share, collaborate and discussing the future of the web. After all you both love javascript!”
@RossC0:
Unfortunately, Olmo’s presentation is not an isolated incident. I imagine John just got sick of hearing the same FUD about jQuery. And we shouldn’t hold our breath for any kind of collaboration with mootools. From their FAQs page:
But that’s just not true — at least when it comes to using mootools with jQuery.
Also, read through the forum topics here,
here, and
here, and you’ll get a sense of how willing they are to “communicate better, share, collaborate” and so on.
Now, take a look at these threads from the jQuery discussion list, and you’ll see that, historically, the flame-baiting rhetoric has been largely one-sided, especially from core developers.
It’s disappointing, because I think mootools has a lot going for it — with a lot of great developers/designers doing really cool stuff with it and providing excellent tutorials and documentation.
Full disclosure: I’m a member of the jQuery Project Team. My comments here, however, don’t necessarily represent the views of John Resig or any other project member (or the corporations who are funneling millions of dollars into our coffers ;-) ).
Andrew Dupont (December 13, 2007 at 11:57 am)
“The point was not to bash that you’ve literally copied moo.fx into the source code and forgot to mention it in the credits (not just a few lines above the actual code). That wasn’t my point. My point is that jQuery.fn.* is in efficient.”
Olmo, this isn’t an explanation. Do you understand why? You still seem to be asserting as fact something that John disputes and is offended by. He won’t be placated to know that, yes, you still think he’s a code thief, but that this allegation was only incidental to a different, unrelated point you were trying to make.
You still want it both ways; you say you’re not an expert on the other frameworks, as if this somehow gives you license to say things that are both inflammatory and untrue. If you feel like moo.fx deserves a credit in the jQuery source code, say so. Writing a half-assed, non-apology–apology is not the way to resolve disputes.
Valerio (December 13, 2007 at 1:24 pm)
@John, Andrew, jQuery and Prototype teams: I’m really sorry about all this.
I’m sorry I overlooked the mootools blog, letting bad content in, I’m sorry about how poorly Olmo handled the situation.
I wrote an entry in the mootools blog to publicly apologize:
http://blog.mootools.net/2007/12/13/an-open-apology-to-the-authors-of-jquery-prototype-and-others
Marc (December 13, 2007 at 1:52 pm)
This is crazy – we all need to check our attitudes to make sure we never slam other peoples’ work. Discussing strengths is ALWAYS the better choice.
John Resig (December 13, 2007 at 2:47 pm)
@Valerio: Thank you for your apology and your response, I can only imagine how difficult and challenging this must have been, but it has shown an incredible amount of leadership and I respect that.
I, too, know the challenges of trying to foster healthy competition and good-spirited debate; there’s an invisible line that’s difficult to gauge and even harder to enforce. Seeing your desire for change has been very refreshing and makes me excited for the future.
I hope that this exchange will help foster collaboration between our communities and to continue to make the Open Web a better place for JavaScript developers.
Looking forward to working together.
Justin Meyer (December 13, 2007 at 4:20 pm)
I’ve been working on a JS framework for about a year now. I wish I could get 5% of the attention jQuery has gotten. John, you are a great developer and pretty darn successful. And you can get some satisfaction from this talk as it demonstrates how important jQuery has become. No one compares themselves to the little guys.
I would expect more of this as jQuery gets bigger.
A JavaScript Fan (December 13, 2007 at 5:01 pm)
John,
I’m surprised you took so much offense to this video. Shouldn’t you already be confident about jQuery’s acceptance and impact on web development? Not a day goes by that jQuery isn’t mentioned on a blog and you certainly make efforts to promote it. Why not ignore this supposed attack on jQuery? Are the words of this obviously inexperienced presenter that important to you?
Your post is far more inflammatory than Olmo’s video presentation. Not to excuse the accusations he made, but your response was quite sarcastic and offered no value other than to rally support from your fans. Is your ego so easily bruised? Or do you perceive MooTools as a threat and feared that negative comments about jQuery may affect your user base?
People who like jQuery’s style and vision, which does clearly focus on a small file size, will continue to use it until something better comes along or it no longer serves their needs, so I doubt you needed to make such an a loud response to protect it’s honor.
As to Olmo being dropped from the MooTools team, well that sucks for him if he cares. It’s a bit ridiculous if his inexperienced and perhaps misguided opinions cost him that membership, because it’s really not that serious.
MooTools didn’t need to apologize as profusely as they did, yes a member who should’ve recognized that he would be seen as the face should’ve known better but sheesh get over it.
Andrew Dupont (December 13, 2007 at 5:27 pm)
@A JavaScript Fan:
I know I wouldn’t take it so lightly if someone implied I was a code plagiarist. Uninformed attacks on jQuery itself probably slide off John’s back at this point — I know I’ve learned to ignore nonsensical assertions about Prototype — but to say that parts of jQuery are plagiarized is to insult John himself, not the framework.
John Resig (December 13, 2007 at 5:30 pm)
@A JavaScript Fan: If it was anyone else (e.g. a non-JavaScript-library-dev), this would’ve been a complete non-issue. The fact that we’re all trying to get along, collaborate, and share our progress (Dojo, Yahoo UI, Prototype, Scriptaculous, jQuery) it does us no favors to have a JavaScript library developer coming out accusing us of stealing code and criticizing the quality of our code base.
Overwhelming, more than anything else he said, the claim that we have stolen code was the most inflammatory thing – and that is what I took so much offense to. This has nothing to do with my ego and is completely about the negative perception that it would generate. (“Hey, did you hear that jQuery has stolen code in it? You might not wanna use it in your site – you’ll get sued!”) It’s silly, but that’s how it happens. Perception is an easy thing to influence, especially if you’re in a place of particular importance.
I didn’t think this was a particularly loud response – just a response on my personal blog to him – I could’ve, certainly, have done it on the jQuery blog which would’ve caused all sorts of mayhem, but yes, this is just my personal opinion on the matter.
It’s hard enough, as it is, trying to work with browser vendors, corporate policies, moving standards, and licensing issues that we don’t need to be infighting with each other, which is why I called Olmo out on it, in particular (this was definitely not his first time, either). Valerio and the MooTools team seemed to agree and they moved in a manner that they thought appropriate.
I know that I, certainly, wasn’t excepting the conclusion that we’re at now, last night when I made this post. But here we are. I tend to think that the renewed respect that the libraries have for each other at this point is especially important in helping the web move forward. I’m looking forward to the fantastic results that we’ll all be producing together in the months and years to come.
Michael Geary (December 13, 2007 at 7:18 pm)
John, old friend, wait a day or two and re-read the comments from A JavaScript Fan and RossC0. Their insights are right on the money.
Sure, you had very good reason to take offense, but your post *was* flamebait. The rapier-like wit, the insults – if “Olmo: You seem immensely proud of your ignorance…” isn’t inflammatory, what is?
And did Olmo *really* say all of those “things you learned about jQuery”? It sounds like he didn’t. A list of misquotes with sarcastic replies is flamebait for sure.
Sorry, John, but as it sits right now, Olmo looks like the sympathetic character in this saga.
But it’s not too late – you can still forgive him for the stupid things he said, and apologize for your overreaction.
Still friends, I hope… :-)
John Resig (December 13, 2007 at 8:19 pm)
@Michael: Sure, my post was sarcastic by nature – I was rather upset at how he talked about jQuery – mixing opinions and flat out fabrications. I didn’t expect this to escalate far beyond just him, I, and my immediate blog readers. I was quite surprised that Valerio stepped in and even more surprised at the steps that were taken – again, I just expected it to remain between us.
I would be more than happy to forgive him if he stops insinuating that jQuery contains stolen code. Which he has now done twice. This is the reason why I was upset when I saw the video, why I made the blog post, and why I still even have this post up. Claiming that jQuery contains stolen code is not a laugable mistake that we can brush under the rug – especially when it’s done multiple times.
For the record, Olmo is claiming that we stole moo.fx and wholesale brought it in to jQuery, simply renaming variables. This couldn’t be farther from the truth.
In 2005 I wrote a complete moo.fx (MIT licensed) clone, from the ground up, called mini.fx. It was never released. Instead, it was later integrated into the release of jQuery (MIT Licensed) which was released Jan. 2006. Over the years I tweaked and massaged that code – going through several, major, rewrites. During this entire time there’s been a note at the top of the animation code mentioning the original moo.fx inspiration.
At no time has there been moo.fx code in the jQuery library – only clean, original, code – and even then, nicely cited for inspiration. We even included an extra link on the main jQuery site citing Valerio for his excellent work on the library.
I don’t know, Michael, my response still feels appropriate. Has anyone ever publicly accused you of being a thief? Andrew (of Prototype) definitely agrees with me here, as you can see above. I still feel that this is a very poor accusation and is done in very bad taste.
Michael Geary (December 13, 2007 at 9:04 pm)
Oh yeah, I’ve been there too. Back in the late 80’s, I was enjoying a taste of the kind of fame and success you’ve achieved. I was one of the best-known Windows programmers in the world. I wrote regularly for Microsoft Systems Journal – Bill Gates was a fan of mine – and I never had any trouble finding interesting work.
Then, when I was working on Adobe Type Manager (the program that brought scalable fonts to Windows for the first time), Microsoft’s legal department wrote a letter to John Warnock, cofounder of Adobe, that accused me of stealing the Windows source code and using that information to figure out how to code the Adobe product.
You can read about The Geary Incident in some of the early Windows programming books.
I hadn’t stolen the code, of course – the hacks I was using were something that any competent Windows system programmer could have figured out – and we got it resolved after only a month or so – I guess that’s fairly quick when you have lawyers involved.
But as you can imagine, it dampened my enthusiasm for all things Microsoft. There went my gravy train, and I didn’t switch gears into something new fast enough, so I went through a real dry spell for a few years. Still got plenty of work, but I didn’t get to pick and choose like I had before.
So yes, I know what it’s like to be accused of being a thief. It’s an attack on your honor, and it can eat away at you.
But so what? Paraphrasing what someone said or implied and then arguing against the paraphrase, and calling them “proud of their ignorance”, are attacks on their honor too.
Maybe time to call it even? If you read his latest message, I think Olmo wants to make amends.
John Resig (December 13, 2007 at 9:09 pm)
@Michael: Thanks a bunch for the story, it fits quite well with the situation.
I’m quite tired now, so I think it’s time to close the comments and call it a day; and remember to always twice (and thrice) before posting in my blog. If anyone has any concerns, please feel free to drop me an email.
John Resig (December 16, 2007 at 2:57 pm)
An update by Olmo, posted over here.