This weekend I’m happy to find we passed an important internal milestone:
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.
.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. xamarin.com 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.