The thing to realize is that the destination is never the most important part of the journey. It’s the journey itself.
When you start a journey, you are never fully sure where it is going to end up. We started the journey down package management for .NET three times with Nu[bular] (we in this context means the nu team, not me in particular, I was only involved in the last reboot) before we decided to try an existing infrastructure with Ruby Gems. I have always said that I would use the best tool out there, even if it is not one that I’ve been involved in building.
Personally I’ve always felt that competition is important to drive out the best features and make all products involved better. The community benefits with competition. If you’ve spent any time with me or listened to me on twitter, you can see that I support the idea of Noodle (Bundler/gems for .NET), Horn and OpenWrap. Each of them solves a similar problem in a different way. Each of them has great things about them. Having choices is good. Not everyone likes things the same way. I like my eggs over easy. I’m not going to force the way I like my eggs when I cook for you, but I’m going to cook them that way for me.
It’s important to realize that the destination is never the most important part of the journey. It’s the journey itself. Two months ago we decided to make Nu with Ruby and use the gems infrastructure. It was like the stars aligned – Ruby Midwest Conference was next door in KC, so we got to spend some time with Nick Quaranto, one of the guys behind GemCutter, also known as RubyGems.org. At that time we discussed at length what our plans were and got a blessing to park gems on their server while running the Nu experiment. Many of our friends and colleagues had also been pining for some sort of package management so everyone was quick to jump onto a proven infrastructure that is super easy to use. When we introduced it, it’s amazing how many people brought the awesome to Nu/Gems.
Nu Is Awesome! Being part of the last two reboots I have learned quite a bit about package management and that knowledge and the knowledge that everyone else has learned can be applied to any package management tool. There have been so many great ideas from those in the community and lots of great questions from everyone. Those questions and answers apply to other package management tools.
Having something that builds on an existing infrastructure helped us bootstrap so fast that we were allowed to start working on the interesting features immediately. This has been helpful in getting us to the .NET intricacies and finding ways to solve them. I’ve been blessed to be part of this project.
Microsoft Introduces Package Management – NuPack
From the front page of CodePlex “NuPack is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development.” NuPack is a collaborative project in the Outercurve Foundation. It is an Open Source Project, and truly the first of it’s type, with Microsoft Employees working full time on it and open source developers contributing at the same time. The core team is not just Microsoft and that means the tool will have the influence of the community at large. This means that like the Orchard Project, you or I can contribute. Unlike the Orchard Project, you and I have an opportunity to contribute core features (given that the right conditions are met).
This is NOT the same Microsoft
No one had any idea that Nu was going to be so explosively popular when it came out two months ago. After all, we started it as an experiment to see if we could even do it. Years ago, Microsoft would have ignored what was happening in the community and just introduced what they were working on without seeming to try to really understand the needs of the community. They have been criticized again and again for appearing to follow a “not invented here” model. When they saw how successful our last reboot of Nubular was, they pulled us in to show us what they had been working on for four months prior to our last reboot and started asking for input on how they could ensure it meets the needs of the community.
But then Microsoft did something different. They made the project OSS and pulled in a few open source developers (including the Nu team) to both give feedback and contribute to the same codebase the full time MS employees are working with.
Make no mistake on the name. Microsoft renamed their tool from the codename NPack to NuPack to signify a merging of the community and what they were working on. Microsoft reached out to members of the community that have been involved with package management for feedback and support, including some that may be up in arms about Microsoft entering the arena.
Why is This Good For the Community?
Listen up Mr/Ms Open Source Provider, this is important for you.
Now let me take off my Nu/NuPack hat(s) for a minute and don my OSS (Open Source Software) provider hat. Let’s say you or I have a tool that we think is awesome and we want to get it into the hands of the community at large. In the .NET community, there is a largely untapped set of people that program in .NET that use Microsoft tools only. Most of them program at work using MS tools and go home and never look at Open Source alternatives (or even things OSS that have no Microsoft equivalent).
Most of this largely untapped audience only sees what Microsoft is doing and thus has never heard of your OSS tools. It’s like the iPhone4 vs HTC Evo video with the “I don’t care.” segment where one person is blind to better features of an alternative product.
Go ahead and watch, I’ll wait. I suggest headphones at work. And it’s funny. Really funny. So is the opposite take on HTC Evo vs. iPhone4.
So, back to the .NET community, you have these people that are blind to this whole community of open source tools for some reason or another. Package management itself is geared toward free/OSS tools and libraries, and having Microsoft behind it will start to open the eyes of this largely untapped community.
This means that you and I, working on these free/OSS tools that are great have more of an opportunity to fall into the hands of the full .NET community. That means that a larger user base could happen. That means more feedback and better tools as a result. That means… …and this is me REALLY dreaming at the moment, Alt.NET could become the mainstream .NET.
What is the Future of Nu?
If you’re still with me, the big pink elephant is in the room and I have not yet addressed it.
So, NuPack is out, what is the future of Nu? What a great question! Nu will co-exist with NuPack for awhile. When NuPack reaches a certain point, it’s ultimately going to be Nu version 2. I personally will continue to be involved with both projects until I see that NuPack does bring at least the same level of awesome as Nu like it promises it will. I don’t know what the date of the awesome is, but I can tell you that we will all realize when it is.
My support lies with the community and when the community is ready to shift, it will make sense to sunset Nubular. But it’s open source, so others could pick it up and take it in whole new directions. :D
Thanks to everyone for the support! You have proven that the .NET-o-sphere needs package management and you have been willing to step up and give your time and efforts to help bootstrap the community. I am blessed to have been part of this thus far and am excited to see where the journey goes next.
On a side note, the herding code podcast was done a few hours after Microsoft first showed us NuPack and started asking for feedback. That was August 11th. We’ve continued to bring the awesome in Nu and have had help from quite a few people including Bil Simser (@bsimser), MIchael Carter (@kiliman) and Brendan Erwin (@brendanjerwin).
Over the next few months we are going to see a transition in the community. Certain people out there are not going to be happy about Microsoft entering the package management market, but most people I have spoken to think it will ultimately make the community better. I think most of us have the same opinion. It’s about frickin’ time. And with Microsoft behind it, the possibility for you and I to get our open source tools into the hands of the .NET community at large will make the community better!
Related Posts / More Information
NuPack – http://nupack.codeplex.com
Scott Guthrie - http://weblogs.asp.net/scottgu/archive/2010/10/06/announcing-nupack-asp-net-mvc-3-beta-and-webmatrix-beta-2.aspx
Bil Simser - http://weblogs.asp.net/bsimser/archive/2010/10/06/unicorns-triple-rainbows-package-management-and-lasers.aspx
Phil Haack - http://haacked.com/archive/2010/10/06/introducing-nupack-package-manager.aspx
Scott Hanselman - http://www.hanselman.com/blog/IntroducingNuPackPackageManagementForNETAnotherPieceOfTheWebStack.aspx
David Ebbo - http://blogs.msdn.com/b/davidebb/archive/2010/10/05/introducing-nupack-the-smart-way-to-bring-bits-into-your-projects.aspx
Phil Haack on Channel9 - http://channel9.msdn.com/Shows/Web+Camps+TV/Web-Camps-TV-8-NuPack-with-Phil-Haack