Musings On Software Community

code 0 comments suggest edit

While attending Oredev 2011, I had an interesting conversation with Corey Haines about his perception of the Ruby community as compared to the .NET community.

One thing he suggested is that the .NET community is seems a bit insular and self-isolating. He noted that when he attended .NET user groups, he only saw folks he knew to be .NET developers. But when he attends Ruby, Scala, NodeJS, Erlang, etc. user groups, he sees many of the same people at these meet ups.

While I’m not completely against identifying oneself as a .NET developer to indicate your primary focus, I do see what Corey is getting at. Rather than only seeing ourselves as .NET developers, it’s just as important to also see ourselves as software developers.

We should recognize that we’re part of this larger cosmopolitan software community. We have a lot to learn from this greater community. Just as importantly, our community also has much to offer to the larger community!

As a good friend once told me, a rising tide lifts all boats. The interchange of ideas between these disparate technology communities can only result in good things for everyone.

I’ve been grateful that folks such as Nick Quaranto have this view. Although he’s one of those hippie Ruby folks and runs (which some might see as a competitor to NuGet), he’s been extremely helpful and generous with advice for the NuGet team. To me, that’s what community is about. Not isolating oneself from ideas simply because they come from someone who’s eschewed curly braces.

The good news is that I think the .NET community is actually further along in this than it gets credit for. Podcasts such as Herding Code have a very polyglot bent to it. Even .NET Rocks, seen as the bastion of .NET, has expanded its archive with topics such as node.js and Modernizr recently.

So if you identify yourself as a .NET developer, well you’re in good company. There’s a lot of interesting .NET developers around. At the same time, I encourage you to reach across the aisle and learn a thing or two about a different technology. Maybe even hoist a beer with one of those hippie rubyists or smug clojure developers!

After all, someday we’re all going to end up as JavaScript developers anyways.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.



35 responses

  1. Avatar for Rasmus Christensen
    Rasmus Christensen November 25th, 2011

    So true, Its becoming a religion for some people, "The Holy .net Grail" :). But I also think that the .NET community at least in Denmark is aware of this, and tries to make som e cracks in this believe. Its always time to get inspired my other technologies to be able to make great solutions. Just look at the mongodb vs. RavenDb. The latter one is more .NET friendly, but at the moment there are no hosting providers, so people are forced to look outside the one "Circle of Truth" :) if the want to use a document db.

  2. Avatar for Jon Galloway
    Jon Galloway November 25th, 2011

    Couldn't agree more. I've always found this unfortunate. Ultimately, as developers, we're all motivated - and professionally obligated, really - by whatever technology is working best for us in each project and circumstance. The whole us vs. them thing isn't just silly, it's self defeating. Great post.

  3. Avatar for Keyvan Nayyeri
    Keyvan Nayyeri November 25th, 2011

    I would have an upcoming post related to this, but the question is what is the outcome of community for a .NET developer to be active on it? To be honest, I haven't received anything for my community contributions and feel that it's been like a one-way highway from me to the so-called *community*. Recently, I had a very bad experience that totally turned me cold about any engagement on this community. The .NET community is mostly built on top of some small networks of people based on geo-location and I didn't find it very open to new names and faces. I would say other communities are really different and it's not about the variety of skills but also about the nature of the community, the communications, and the outcome, and I believe that they have been more successful than the Microsoft/.NET community.

  4. Avatar for Demis Bellot
    Demis Bellot November 25th, 2011

    "We should recognize that we’re part of this larger cosmopolitan software community. We have a lot to learn from this greater community."
    This is very true, and reflection should start at home and come from within. You failed to point out the most obvious ingredient of platforms with thriving communities have a thriving OSS ecosystem which all have a good showing on:
    If you want .NET developers to be less of a MonoCulture .NET stewards should be focused on facilitating and improving its OSS community. When everyone is looking to a single mothership for advice its ability to thrive is hindered.

  5. Avatar for Riza Marhaban
    Riza Marhaban November 25th, 2011

    Somehow, it looks like .NET developers become exclusive to themselves. But if other community can be proud of themselves, why not .NET developers too. The pride is still there. And I love to be .NET developer. Although most of us, probably, also develop using other than .NET as well, like JavaScript. But, it's true.

  6. Avatar for Keyvan Nayyeri
    Keyvan Nayyeri November 25th, 2011

    A very good point. I totally agree.

  7. Avatar for MotoWilliams
    MotoWilliams November 25th, 2011

    To me .NET just feels like enterprise con$umption and not so much community. It appears to be changing a little bit but still firmly planted in that arena.

  8. Avatar for Charlie Kindel
    Charlie Kindel November 25th, 2011

    Great post Phil.
    As a member of the IIS and ASP team in the late '90s and someone who worked on the CLR in the very earliest days I have always been a ".NET guy".
    As I was leaving Microsoft this last year I devoted a bunch of time to learning the "other stuff". I taught myself Python, played with Node.js, and really dug into Ruby. I've now written enough Ruby on both Rails and Sinatra/Padrino to be dangerous.
    When I first got started learning Ruby I found the community, somehow, more accessible than the .NET community. It certainly is a more vibrant and broad community, and it certainly has more traction within the startup space.
    So I've enjoyed it and learned a ton.
    However, I recently embarked on a new project (mostly for fun) and decided that the domain required me to learn a huge amount (online calendaring systems) and I would not be as productive in Ruby because I'm still pretty much a Ruby-noob. So I went all in with ASP.NET MVC 3.
    As I did this, and experienced the .NET community again, I really came to see the following:
    - The Ruby community IS more open minded, but they don't see .NET as relevant so don't pay attention. They will quickly build a new framework or library and move on (within Ruby) and they will use things like Node.js without hesitation, but they simply don't even really know .NET exists.
    - The .NET community is more closed minded and simply focused on .NET. They will copy ideas from Ruby etc..., but the idea of actually building something 'over there' somehow feels 'dirty' to them.
    I think both of these perspectives are wrong. I'd like to see people focus more on the problems they are trying to solve and just use the tools that allow them to be the most productive. Folks should quit giving people shit for what stack they use and instead focus on what they produce.

  9. Avatar for Rob Conery
    Rob Conery November 25th, 2011

    I always had this feeling, but I think it was more concept than reality. It was only after I left Microsoft that I felt as if "The Great Decompression" began. It was always IIS, ASP.NET, SQL Server - everything else was a nod to "yeah I know that's out there.
    I remember the precise time and place: I was in Portland, as I am this very second, and I had just given my notice. I went to Powell's Books and bought a Linux Admin book, Ruby for SysAdmins, and an annual subscription to PeepCode - that's when it hit me just how much I didn't know. And it was really scary. And absurd. And I did it to myself.
    The good news: the learning process is fun, and I'm not as dumb as I first thought :). And there are a number of talented, helpful people there who are are ready to help with The Great Decompression.
    I've never had so much fun in my career.

  10. Avatar for John Ludlow
    John Ludlow November 25th, 2011

    It shouldn't be too surprising that people who like cool open source projects (such as Ruby or node.js) attend sessions about cool open source projects. It might also be a factor that some of these projects don't work too well on Windows, and .NET is primarily focused on Windows (though I really do love Mono).
    I think a lot of .NET user groups would welcome people from non-.NET fields, but a lot of people in the FOSS world follow Stallman's view that .NET == evil, just because it was originated by Microsoft.

  11. Avatar for Demis Bellot
    Demis Bellot November 25th, 2011

    @John FYI clarification FSF's anti-stance on .NET has got to do with the Patent FUD around C#/.NET, they also suggest what it would take to alter their recommendation (TL;DR A Comprehensive Patent License):
    The MS stigma is based on historical experience and their recommendation is to ensure there is legally no way possible for history to repeat itself.

  12. Avatar for John Ludlow
    John Ludlow November 25th, 2011

    @Demis Yep MS has a chequered history, but seems to have turned over a new leaf post-2005. Not perfect by any means, but better.
    Also, FYI, MS already have a license that protects the FOSS community from patent claims :
    For the record, I like Ruby (though Rake broke badly on Windows x64 on a minor version upgrade) and Node.js and the NoSQL technologies. My point wasn't that the FOSS community are "wrong" - it was that as much as we are saying that .NET groups should welcome Rubyists etc, those guys should also want to engage the .NET community because there's cool stuff happening there as well.

  13. Avatar for John Ludlow
    John Ludlow November 25th, 2011

    Doh, wrong link. For general .NET programming, this is the one:

  14. Avatar for Demis Bellot
    Demis Bellot November 25th, 2011

    Well I agree that they're a lot more tolerant towards OSS (i.e. its no longer a cancer). Unfortunately "Turning over a new leaf" is as temporary as a "change of heart" and FSF places their trust in absolutes, i.e. they want to ensure the software that they endorse will always be free of patent limitations.
    Given Microsoft's recent foray into actively seeking patent negotiations even on software they didn't make or own (i.e. android, linux licencing fees) isn't giving anyone any confidence.
    Note: FSF's "Microsoft Empty Promise" is in direct response to Microsoft's Community Promise, they don't believe it goes far enough which the article goes into detail about.

  15. Avatar for Freddy
    Freddy November 25th, 2011

    The following 2 quotes from previous comments is the way I see it here on the developers in my group (usa, mexico, venezuela and russia):
    "But I also think that the .NET community at least in Denmark is aware of this, and tries to make som e cracks in this believe. Its always time to get inspired my other technologies to be able to make great solutions."
    "I think a lot of .NET user groups would welcome people from non-.NET fields, but a lot of people in the FOSS world follow Stallman's view that .NET == evil, just because it was originated by Microsoft."
    I think things aren't as black-white like many people like to believe. There is a lot of trying new things, not everybody is vocal about it. Those who love to preach their side as the one and only solution, are usually very vocal about it. Some people feel uncomfortable when that happens, personally I love the discussion and all that comes out of it.

  16. Avatar for xivSolutions
    xivSolutions November 25th, 2011

    I recently moved from Portland, OR to St. Louis, MO where I immediately connected with the user group here. The first meetup I will be able to attend will not be for a bit, but I am interested in learning more about this community of .net focused devs who consider embracing other ( technologies a key part of their ethos. Your point about considering oneself a "software developer" first is right on the money. Diversity of know-how can only add to your ability!
    Nice post!

  17. Avatar for Mark Rendle
    Mark Rendle November 25th, 2011

    I think the widespread enterprise adoption of .NET hurts the open side of things. Corporates love it because it's easy to integrate with their MS infrastructure, and because "nobody ever lost their job for buying Microsoft."
    This means that there are a lot of crappy workaday programmers on the platform, which tarnishes its image. (Java suffers from the same problem.) The fact is that there's a large community out there who are using .NET OSS, and who regularly dabble in other languages and platforms and in many cases bring the things they find there back (e.g. Nancy, inspired by Sinatra).
    Of course, Microsoft could do more to encourage this kind of thing. Open up more of the framework source. Start investing in the Iron languages again. Oh, and stop cross-bundling frameworks: why does an "empty" MVC3 application have a reference to EntityFramework?

  18. Avatar for Steve Fenton
    Steve Fenton November 25th, 2011

    I think history has a lot to do with this, but Microsoft is definitely pushing in the right direction today. We have Tech Days talks with representatives from other companies (some might even say competitors) and we have lots of .NET source code in the OSS world.

  19. Avatar for Nick Portelli
    Nick Portelli November 25th, 2011

    I find it rather amusing that the .NET community is perceived like this, usually from people who deem themselves 'Rubyists' That term is rather elitist and insulating in my opinion. I agree with Mr. Haack we all are software developers, no matter what language we mainly dabble in.

  20. Avatar for Scott Koon
    Scott Koon November 25th, 2011

    Maybe it's because developers in other communities mainly promote OSS projects and themselves either out of generosity or to gain the acceptance of their peers. .NET developers seem to just be looking for acceptance from Microsoft. (MVP, RD, listed on ASP.NET, etc ...)
    Not saying that there aren't some .NET devs who do things out of generosity, just saying that most of the other communities don't have a central authority that doles out praise and acceptance.
    I guess what I'm really saying is that the .NET community has daddy issues. One step away from stripping.

  21. Avatar for haacked
    haacked November 26th, 2011
    Of course, Microsoft could do more to encourage this kind of thing.

    In part, this was the goal of setting up the Outercurve Foundation and of projects like NuGet. My hope with NuGet is that it makes it trivially easy for developers who might not try open source software to try it out.
    I think parts of Microsoft have come to the realization (well at least I did) that with millions of Windows and .NET developers, there's absolutely no way that Microsoft can meet every need. There's too many niche libraries, niche requirements, that no monolithic company could ever meet all needs.
    Rather, it requires the community to scratch its own itch. To meet its own needs. That's the goal of NuGet, to provide a community based catalog of open source in such a way that it's one click to start using such libraries.
    I think large companies such as Microsoft are good for providing foundational elements that such community projects can build upon. For example, Kinect would have been hard to develop as a broad community effort. But now that Microsoft has done it and open up the SDK, I'm excited about the prodigious output of the community building on top of it.

  22. Avatar for Demis Bellot
    Demis Bellot November 26th, 2011

    A problem with Outercurve (I'm actually surprised to learn of its purpose) is it has close to 0 mind-share, it was(is?) a project that didn't seem to hold any authoritative/qualitative voice and IMO no one took any notice of. Running on the side, not amounting to much.
    What has significant mind-share is what I like to call the '.NET PR machine' VS.NET hooks/sugar, MSDN announcements/releases/blogs & other high-profile .NET blogs, MVP awards, Channel 9, Mix, etc.
    This is stuff that gets the most attention, if it's not mentioned on any of these channels it has a rare chance of gaining any noticeable popularity or community around it and very seldom is (non-affiliated/competitive) .NET Tech/OSS projects ever featured.
    In a lot of ways .NET has been chasing other platforms for years, i.e. MVC, jQuery, package manager, ORMs, NoSQL/Caching, HTML5/JS/SPA's, REST, etc. Even when these technologies had existed in some form for years in .NET OSS variants - they aren't considered until either MS releases a product (MVC,NuGet) or popularizes one (jQuery). This repetitive cycle brings .NET late into the game and has shown not to ignite much of a community outside of MS.
    For better or worse, Microsoft has the influence to point .NET mind-share into directions that would otherwise not be considered. I believe a decently marketed 'featured spotlight section' show-casing alternate/OSS .NET projects on NuGet could help.
    Although I do believe NuGet has helped OSS projects to some degree by providing a gateway into VS.NET.

  23. Avatar for George
    George November 26th, 2011

    The problem is the MS even today regards OSS with fear - I worked inside a MS team, and every time sometimes tries to use an OSS library, if it's not MS-PL on Codeplex, the first word is "OSS alert" :) and the proposal is dismissed because it would take too long for the lawyers to review that license (even if it's Apache or LGPL license).
    About .NET communities, in some countries at least, MS tries to control them insted of encouraging those small communities to be independant. If one community becomes too independant, the MS branch quickly tries to create an "altenative" community under their influence. This, combined with the low credibility of some MVPs in some countries, have erroded the .NET communities that were strong at the beggining.

  24. Avatar for Spikeh
    Spikeh November 27th, 2011

    I totally understand this point of view, but some of us have lives to lead as well as code to write! I'm more of a systems architect these days; I know T-SQL, C#, VB, JS, CSS and HTML... but I still very much consider myself a .Net developer. To be honest, my primary focus are design patterns, but even those are implemented differently between languages / platforms. I've dabbled in Java, PHP, C++, Oracle and Flash, but unless I spend a lot more time on them, I wouldn't proclaim myself competent at all...
    The problem is that there are so many aspects to .Net, I don't have time to look in to many other languages / platforms. With Entity Framework, MVC, Winforms, Webforms, WCF, WPF, WWF, LINQ, plus all of the extensions, plugins and nuget libraries available for Visual Studio, it's very hard not to become consumed in .Net and blinker everything else.
    Besides, what do these other technologies offer us that .Net doesn't? From what I can see; just a "preferred" way of getting a similar end result. If I speak to a developer who writes in different languages, I'll always try to relate what they're saying to what I know... some things are lost in translation, but that's why they're called "languages" :)
    I've seen a lot of developers move from older technologies (such as VB6, for example) and try to use .Net in the same way, without even trying to understand the differences. It makes me a bit sad, if I'm honest. I'm still learning, and always will be, but those who are unwilling to accept the change that newer technology provides us with are unlikely to learn much more, regardless of the language they're developing in.
    I say, if you have time, learn as many platforms as possible... but I don't think those of us who don't have time are missing out all that much?

  25. Avatar for Justin
    Justin November 27th, 2011

    Great post and it is correct. I identify myself as a software developer. I recently started learning Ruby and CoffeeScript and there are great language features and ways of doing things that we all can learn from.

    I do primarily .NET work and I love what Microsoft is doing with C#, ASP.NET MVC and other projects that are groundbreaking such as Rosyln. Still, at the end of the day, a language or platform is simply a tool to do our job, which is creating software that will create value for a business. Construction workers don't identify themselves based on what kind of hammer they use. They can use any hammer to get the job done.

  26. Avatar for Joe
    Joe November 27th, 2011

    Man o man, so many good things in this thread, from so many people: Haacked, Galloway, Belot, Conery.
    It seems to me, that the underlying problems and solutions have already been covered. There's not one single cause, and the day to day followers of Stallman and (enterprise only) Microsoft aren't helping the situation.
    I had a nice story to tell about why I prefer C#/.NET, yet still use OSS libraries whenever I can, but the more I wrote it, the more it went off topic. Maybe some other time.

  27. Avatar for haacked
    haacked November 27th, 2011

    @George I think that's changed a lot in the past three years.
    @Spikeh I'm not suggesting becoming an expert in every technology. But at least know what they're about.

  28. Avatar for Joe Brinkman
    Joe Brinkman November 28th, 2011

    Everyone has a different view of this "elephant". My experience with DotNetNuke has been much different than other views expressed here. I worked for many years in both the Java community and the Delphi community. They were not much different than the .Net community. If you think MS is controlling, you should have seen all the fireworks in the Java community when Eclipse was first released. Sun (and subsequently Oracle) weren't exactly altruistic when it came to community engagement. Likewise I found exactly the same thing when dealing with Borland and the Delphi community.
    Comparing Ruby, python or php communities to .Net community is a little bit of apples to oranges comparison. None of those communities have an 800lb gorilla in them and that fact alone changes the landscape quite considerably.
    MS certainly had an adverse view of the OSS community for a long time based in part on their experience with Linux, Java and Firefox (amongst others). But I have certainly seen a large thawing in the last 8 years in how MS interacts with and supports OSS. MS was very supportive of the DotNetNuke project very early on and they have only become more OSS friendly during our project lifetime. While everyone may not share that view, it has certainly been my experience.

  29. Avatar for Demis Bellot
    Demis Bellot November 28th, 2011

    DotNetNuke is a classic example of a non-strategic, verticalal-targeted OSS project that Microsoft has no interest in competing with but actively supports. It's used as an example project used to show-case the ASP.NET platform and as such is featured in '.NET PR Machine' channels, e.g. a supported install option in the Web Platform Installer.
    It's a classic example of the success a .NET OSS project could get if it was given MS support.
    Other .NET OSS projects do not share this same fortune.
    Java and .NET is not Apple/Oranges, for a long time Java was the #1 choice for .NET OSS projects, it's has recently losing mind-share to other JVM languages (e.g. Scala/Closure/etc) simply because the language has remained stagnant and shares a strong resemblance to Java 1.1 (and IMO the oppressive and less OSS-friendly Oracle is now governing it).

  30. Avatar for Paul Litwin
    Paul Litwin November 28th, 2011

    I am primarily a .NET person but recently got to know people outside my community in organizing Seattle GiveCamp. It was great because I got to attend other meetings and meet people outside of the .NET/SQL Server mindset.
    We can all learn from each other. Personally, I think there's too much focus on technology for technology sake out there. There's a real benefit to sticking with one technology or family of technologies--you don't spend all your waking hours constantly learning new stuff and can actually get productive. OTOH, sometimes, looking outside your comfort zone is good for you.
    In general, though, I have found most communities are filled with people who want to help each other which is great for all!

  31. Avatar for jrbirdman
    jrbirdman November 29th, 2011

    Could it be that 1) .Net folks are also better supported given the MS and non-MS resources available, 2) there is more of a possibility of a critical mass of MS-knowledgeable folks at work that you can network with than for some of these other tools, 3) we're too busy to attend multiple user group meetings -- I know I am, or 4) we're all so specialized in our tools that you may be only interested one LUG?
    Making the blanket statement that .Net people are isolated simply because they don't go to multiple LUG meetings is a bit of a stretch, imo.
    Plus, there's the argument that monthly LUG meetings are antiquated and only useful for those looking for jobs, looking for new employees, or consultants looking for new business.
    Personally, I only go to a monthly meeting if the presentation seems useful (and I leave immediately if it's not) or as part of the cheering section if one of my co-workers is making the presentation. Otherwise, going home to have dinner and a drink seems a lot more productive to me.

  32. Avatar for Jake
    Jake November 29th, 2011

    @jbirdman - or the more likely 4) there is a comparatively smaller .NET community outside MS, fewer .NET conferences (virtually smaller attendances), few active OSS projects with very few active members in each, very few new start-ups built using .NET, etc.
    Everyone else's day jobs don't seem to inhibit their respective communities. At the same time convincing ourselves .NET doesn't have a community problem works too.

  33. Avatar for tad
    tad November 29th, 2011

    Didn't Corey notice that coders from other communities weren't attending .Net events, while .Net had a good presence at FOSS events? I don't see how that's a problem with the .Net community.

  34. Avatar for Jake
    Jake November 29th, 2011

    @tad .NET devs going to FOSS is not a surprise - they're more ...better... First time I've heard about non .NET devs attending .NET devs conferences - fact requires citation. Can't imagine it'd be statistically relevant or that it would balance out.

  35. Avatar for jrbirdman
    jrbirdman November 29th, 2011

    @jake. Point taken, though local annual code camps and "% Saturdays" seem to get booked up quickly. So, there's a strong interest if the content is worth while. Othewise...