Skip to main content

How I got involved in Open Source

Uh oh, its almost the end of 2015 so I'd better put at least one blog post here for posterity!

About ten years ago, I was at a startup I co-owned and searching for a way to easily create a nice-looking UI for a Windows-based utility. Since this was a Windows app, most people at the time would have chosen C or C++ as the language or used C# and a framework like .NET. Or perhaps they would have gone old-school with something like MFC. Instead, we hosted the Windows HTML rendering engine in our own executable and built 80 percent of the app (including 99 percent of the user interface) in JavaScript and HTML. Basically, this would be a Cordova app today, but we coded it uphill both ways back then.

A short time into development, it was becoming clear that there had to be a better way to organize all the DOM manipulation that had to be done. I looked around and tried a few libraries available at the time, but they seemed a bit ugly and weren't helping that much. Then, almost ten years ago, I found this thing called jQuery. I can't even recall how I stumbled upon it, probably Slashdot. (Yeah, that long ago.)

jQuery was just what I was looking for. I didn't even need any of its cross-browser goodness, our app would only ever run on the IE6-like HTML engine inside Windows. The expressiveness of jQuery was its attraction to me, because it greatly simplified the way our app was written. Later on we started using it on our web site as well, where the cross-browser benefits were definitely appreciated.

But this story is mainly about how I made my first contribution to open source. It's hard to remember the days before we had excellent project collaboration via GitHub. All I had was a copy of jQuery and John Resig's email address. So when I found some problems I sent him an email with suggestions. John replied, thanking me for the contributions and offering to put me on a newly-formed mailing list of people who were interested in jQuery. You can still find some of those early posts scattered around the Internet.

If you want a course on how to build a successful open source project, take a look at what John Resig did during those early years of jQuery. It's not always about the codebase. You need an enthusiastic group of volunteers to help with all the organizational things that will allow others to use the project. Sure that includes code, but it also takes good documentation, devops, and user support. John was great at getting others to help, and listening to what they said. If you look at those old posts from nearly a decade ago, you'll see a lot of people who are still very active in open source.


Comments

Jenson M John said…
Great Indeed..It was in 2006! I got to know about jQuery in 2008 only..:)

Popular posts from this blog

Tragedy of the WebKit Commons

With Opera announcing that their future products will be based on WebKit, the Internet is abuzz with discussion about what that means and whether it's a good thing. Looking at it as a jQuery developer, it's a good thing if it gets WebKit participants to fix bugs and update older implementations. I can't be optimistic without some evidence that things are really going to change.

We don't know how many of Opera's core developers will move to WebKit development, but the press release isn't encouraging: "The shift to WebKit means more of our resources can be dedicated to developing new features and the user-friendly solutions." I suspect they want some cost savings by eliminating Presto technical staff, or -- in the most optimistic case for their employees -- refocusing existing staff on the parts outside WebKit core that make browsers different.

Opera did land their first WebKit patch so they wanted to make a statement that they weren't getting out o…

Please Stop the jsPerf.com Abuse!

According to many of the tests on jsperf.com, jQuery is slow. Really slow. The jQuery team gets bug reports from web citizens who've discovered these egregious flaws via jsperf and want them fixed. Now, jsperf.com can be a great tool when used knowledgeably, but its results can also be misinterpreted and abused. For example:

Why doesn't jQuery use DOM classList for methods like .addClass()?

There are at least three good reasons.
It doesn't make any practical performance difference given its frequency of use.It complicates code paths, since classList isn't supported everywhere.It makes jQuery bigger, which makes it load slower for everyone, every time.But this jsperf shows classList is much faster! How can you say that?

Well it's possible that test is running afoul of microbenchmark issues, and not measuring what it is supposed to measure due to the increased sophistication of today's JavaScript compilers. This is a big problem with a lot of the jsperf tests out …

You Might Not Need Babel

Babel is great, and by all means use it if it makes it easier to develop your application.

If you're developing a library on the other hand, please take a moment to consider whether you actually need Babel. Maybe you can write a few more lines of utility code and forego the need to pre-process. If you're only targeting some platforms, you may not need anything more than plain old ES6.

At the very least, make sure you know what Babel is doing for you, and what it's not. Some developers believe that Babel is protecting us from a great demon of code complexity when, in truth, browsers and node are pretty easy to deal with on their own. Let's take a look at some of the strategies for not needing Babel.

ES5 is pretty okay: In the days when we used tables for layout and the debugger was named alert(), we would have been so grateful if JavaScript had the features that ES5 has today. If you truly need Babel you are not only a weak programmer, but also an ingrate. Face it, you …