ServiceStack eclipses jquip!

This weekend I’m happy to find we passed an important internal milestone:

Where for the first time since its release, the 4+ year ServiceStack has finally surpassed my 3 week hobby js project jquip in followers!

What’s jquip?

For those that don’t know, jquip is a modularized version of jQuery optimized to have the lightest footprint possible whilst retaining the most useful parts of jQuery. It’s useful for bandwidth constrained environments where you don’t want an external jQuery reference (e.g. widgets, offline stand-alone web app) but still want to code against a pleasant jQuery-like API. We use it in the Careers 2.0 Apply Button widget that can be hosted on external sites and provides faster start times by being able to execute straight after the in-lined jquip. Another area jquip has proven useful is to power ServiceStack’s built-in MiniProfiler Web UI allowing it to work in offline environments without internet access. Embedding the full version of jQuery would’ve significantly increased the size of ServiceStack.dll by more than 100kb. This lets you develop your own lightweight offline single page apps that have access /ssr-jquip.all.js using nothing other than a ServiceStack.dll 🙂

Why is this important?

This is a major milestone for us as one of the reasons to get into Open Source is for your creations have a positive impact on the world and the number of downloads and watchers your project has are tangible metrics that can be used to measure the reach your software has. These metrics re-affirms that contributions continue to be useful to a wide audience motivating the continued dev efforts.

I’ve always thought going Open Source immortalizes your code and as a developer provides the best chance for your creations to go on living long after you’ve left this planet. It’s also immune from Market threats where not even your commercial competitors can kill it. Although both projects now have an equal number of followers, ServiceStack has received an order of magnitude more effort with more than 2,000+ commits since first moving to GitHub. The unfortunate reality is the OSS culture is relatively weak in .NET whose market share is primarily ruled by commercial entities. I attribute this to the deep roots the .NET culture has in the enterprise and the fear and stigma attached from straying from the prescribed default .NET stack into the many quality OSS alternatives. Unless we see a significant shift in .NET culture I expect the adoption for .NET OSS projects to continue to remain lack-lustre and see the top leading talent of web developers and start-ups continue to erode to the more popular JavaScript, Ruby and Python platforms and their thriving OSS ecosystems. Which is justifiable at this stage, if your motivation for contributing to Open Source is to make an impact and maximize reach and utility of your software, it’s hard to ignore the leading platforms which sees a considerable more OSS activity and code-sharing of OSS libraries and frameworks.

.NET is a quality platform, and C# / F# are semantically world-class designed languages with the fewest warts and a rich balance of intuitive features. They’re not always the most productive option (e.g. slow iteration times of ASP.NET) but they do have the richest IDE and tooling experience. I see the biggest threat to the platform is its waning adoption and network community effects of the strengthening alternative web platforms. The outlook is not all grim, e.g. is bucking the trend and pushing C# in uncharted territories as a growing platform for use in cross-platform mobile development allowing the same shared C# code-base and libraries to run on the leading iOS / Android mobile platforms.

How can you help?

Essentially the goal is to increase .NET OSS activity and anything you can contribute to this effort will have a net-positive effect, some examples of this might include:

  • Create more .NET OSS projects: Consider Open Sourcing your in-house internal libraries and frameworks (which if you think of the benefits of OSS makes more sense to be OSS). One of the few benefits of having a weak ecosystem is the opportunity to fill in the missing features! 🙂 .NET could do with more love around NoSQL solutions, MQ’s, web tooling and libraries for alternative cloud providers, etc. These are great places to start.
  • Contribute to existing .NET OSS projects: Start with the ones you’re already using otherwise here’s the leading list of C# projects on GitHub you can work through.
  • Evaluate if .NET existing projects are a better fit: If you have the opportunity for your next project, consider spending some time to evaluate if more viable OSS alternatives exist that may provide a better fit for your current default closed-source stack.
  • Increase the collective knowledge around existing projects: i.e. blog, submit talks, help out on Stack Overflow, participate in mailing lists or JabbR. If you or your team has spent a lot of time implementing a solution for a popular use-case consider blogging about it, providing insight to others following in a similar path.
Currently C# stands as the 12th and F# the 43rd most popular languages on GitHub (the home of OSS), it would be great to see if we can all beat these numbers next year!

Write a Comment