If there was one I could believe in"
– U2 Acrobat
In the early days of .NET, around 2002, I attended a Java user group meeting, to find out how the other side ran their user group meetings. I still recall one illuminating conversation during that evening that resulted from my pointing out to the Java community that now was the time for them to try and attract MS developers, particularly VB.NET developers, who, having been disrupted by the switch to VB.NET, were ripe for conversion from the MS platform. "Oh no, " came the reply "we don’t want any ex-VB developers in the Java community."
I knew that day that Java had lost. History obliterates elites, the future belongs to the masses.
So I view the idea of ALT.NET with some concern. Now I actively espouse practices like TDD and DDD at work and in the community; I have contributed to OSS projects; however, it worries me when people stop espousing these ideas simply as practices and try to turn them into an ideology, and moreover use it to separate them and us. We need to attract people to these practices if we are to be advocates of them. We do not need to separate ourselves. Sure it can be tough to push new ideas sometimes, but the retreat into a self-identifying elite is rife with risk. I would like to see a .NET community that appreciates these ideas, not just an ALT.NET community. I want to see these ideas be understood, if not accepted, by the mainstream.
The adoption of agile practices should not become a religion; religions create zealots and zealots create suffering.
When Martin Fowler recently posted about RubyMicrosoft, the message was one of inclusion: a willingness on behalf of the Ruby community to work with the MS community, not a knee-jerk M$ one. That attitude of inclusiveness is positive, and says more about why Ruby may succeed than many technical discussions. Members of the Ruby community like Chad Fowler regularly attack the possibility that the Ruby community has "for being arrogant and self-congratulatory" and try to persuade the community that its future remains in being inclusive. I think Martin really gets it when he says that the success of Ruby is an attitude as much as a technology. C#3.0, LINQ, VB10, DLR, IronRuby and other technologies in the pipe all look to deliver the infrastructure of the Ruby world to the .NET world, but it is the attitude of that community towards development that underlies much of their achievement. It is in that attitude that MS and people in the MS community need to look as much as to the specifics of a given technology platform. It is an attitude of inclusiveness and simplicity. It is about being open-minded, it is about embracing change. Accept that and the .NET community could ‘change the world’ just as easily.
It will be interesting to see whether the Ruby community can sustain its attitude as it grows or whether it will descend, like much of geekdom, into a world of ‘haters’.
In the meantime we could all bear in mind that the simplest way for all of us become better developers tomorrow is to be open-minded, to embrace change, and to reach out to others with a helping hand.
"I can see too many mouths open
Too many eyes closed, ears closed
Not enough minds open"
Sinead O’Conner, Just Like U Said It Would B