Geeks With Blogs



Add to Technorati Favorites

An Archived Managed World This blog has moved to

Okay, I need to come out and admit something. I'm a rebellious youth. Yes, I admit it. And I'm currently in the process of rebelling against my parent, Microsoft.

I'm jealous of all my development friends. They've dealt with a lot of non-Microsoft technologies in their history as a techno-geek and they can justify exactly what they like about <insert Microsoft technology here>. Well, I'm not one of these people. Believe it or not, I'm a very young techno-weenie. The first language that I did serious development with was actually C#. My whole development life has been .NET basically (some classic ASP and SQL, too, but still Microsoft technologies nonetheless).

Lately I've been branching out and discovering other technologies like Python, Ruby on Rails, etc. And what have I found? I've found that I'm becoming more passionate for these non-Microsoft technologies than I am for .NET. Lately, I have been really digging into Ruby on Rails, for example. It may be just me, but I personally think that other communities (let's say the Java community, for instance) is more “open”. I guess the best way for me to express what I mean is this. If you find a really cool technology for .NET, the odds are that you will have to fork over some money to use it. On the other side, I have found that there are a ton of really cool technologies in other technologies that tend to be open. Granted, the .NET community is a young community and is still growing, but I have simply been falling in love with stuff I'm finding in other communities.

I understand that some of this is due to the “the grass is always green on the other side” syndrome. But I think some it is based on fact. For example, two technologies that I have come across lately: Ruby Gems, and Ivy. Why do we not have the equivalent of Ruby Gems in the .NET world? It isn't because of time, considering how young and fresh the Ruby community is. I really like the fact that if I want to install Ruby on Rails, all I have to do is execute the statement “gem install rails”. How cool is that? It will even install all the dependencies for me. Let's say that I wanted to install NAnt, how could would it be if I could just execute “opal install NAnt”? As for Ivy, why is there a severe lack of dependency management packages for .NET? Cruise Control and Draco don't handle dependencies (directly at least). I haven't found a suitable package to handle dependencies as a plug-in to NAnt (like Ivy is for Ant), either.

So, why is this? I really don't know. A really good friend of mine has a thought on this though. Let's not kid ourselves, Microsoft does quite a bit of innovating. While this is generally “A Good Thing”, what is the effect on the community? For example, NAnt was a great technology that emerged (albeit based on a technology already established in the Java world). How does Microsoft react (at least partially, I understand there are different reasons)? MSBuild. Granted, MSBuild and NAnt can exist happily together. But it's no secret that if a great technology exists, Microsoft likes to integrate it into their platform. Another example, refactoring support in the IDE. With this trend developing, how many community members feel that they don't need to innovate because Microsoft will do it anyways?

Perhaps the problem is that Microsoft provides both the technology framework and the majority of tools used. Similar to everything else about the OS, when everything is directly integrated, where does that leave 3rd parties? Well, while it may not take them out of the equation, it certainly makes the road to success/adoption a lot steeper than it could be otherwise. And I don't buy the argument that this is just the case because Visual Studio is just a superior IDE. In my opinion, look back at the Java world. One of the best IDEs in the Java world is IntelliJ. And, although it may seem blasphemous, I personally believe that IntelliJ is a superior IDE when compared to Visual Studio. There are exceptions to the rule, but by far it seems that the Microsoft community is much more aligned with Capitalism, and Java/Ruby/Python is, well, not. Both approaches have there place. After all, we do live in a capitalist country, so you have to make money somehow.

Well, this turned out to be a bit more long-winded that I hope. Just be aware, I'm not turning my back on Microsoft technologies. I feel that getting all this experience outside of the Microsoft world will only make me into a better .NET developer/evangelist. So, back on the long road I embark, out into my darkness, rebelling against my development birth parent, Microsoft. Hopefully, I'll see you around (don't worry, I still won't stop blogging or anything like that; although it does bring into question my game development articles).

All of you who have more experience in this world than me, the techno-virgin, what are your opinions/thoughts/conclusions that you have arrived at in your journeys?

Posted on Saturday, April 9, 2005 3:13 PM | Back to top

Comments on this post: Yes, I'm a rebellious youth, dang it!

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
*Best Vader voice*
Give in to the Darkside Jason
*End Vader voice*

Glad to see you are finally coming towards the light.
Left by Andy on Apr 09, 2005 9:54 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Jason, I'm appaled! You shouldn't have missed the last Nerd Dinner. We need to reinfect you.

Next time, Be There and Be Square!

signed, Your Nerd Herding Overlord
Left by Rich C on Apr 10, 2005 12:55 AM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...

There is nothing wrong with a rebellion from time to time ... however, in your "youthful indiscretion" maybe you've just forgot to look over JetBrains' (maker of IntelliJ IDEA) ReSharper for VS .NET 2003? Have you given it a try? If not, I highly recommend you give the 30-day free trial a go:

It will restore your faith in C# development again (at least, that's the word on the street) ...

Ooh, we at JetBrains are also working on our own ReSharper IDE ... so, hang in there bro, C# bliss is on its away -- in the meantime, the plugin vide VS .NET 2003 will at least get you to heaven's gates .... ;-)


David Stennett
JetBrains, Inc.
Left by David Stenntet on Apr 11, 2005 11:00 AM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Hi Jason,

as a member of jayasoft team, i am pleased to see that you took a look at our work on Ivy ( and that you enjoyed its features.
I just wanted to underline the fact that even if your are using .NET you can still use Ivy in your build process. Indeed, Ivy is fully runnable from the command line, so you have just to call it throw a simple java call (you still need a JVM installed, arghhhh a JVM ;-) ). This feature will be fully documented in the 1.0RC1 release that will come very soon.
If you are interrested in this feature immediately, do not hesitate to contact us.
Regarding the integration into CruiseControl, we already have in the box a fully functionnal plugin dealing with projects' dependencies, this plugin will only be available with the 1.0 release.

I hope you will find a solution to your needs.

Left by Matthieu BROUILLARD on Apr 11, 2005 12:31 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Hey David. I actually use ReSharper at work. One this is for sure, when I work with C# now I can't live WITHOUT ReSharper. And from what I've seen of the refactoring features in VS 2005, I'll still be using ReSharper in the future to come.

I can't wait to see what you have in the works for your C# IDE. Perhaps then my faith will be restored (at least a little bit :p).

I'm still hooked on learning truly dynamic languages in the meantime though :).
Left by Jason Olson on Apr 11, 2005 12:32 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Hey Matthieu, is that plug-in for Cruise Control just for Cruise Control, or Cruise Control .NET also? I'm not so worried about our Java-development side of the shop because of the tools available to us from the community (Ivy being a prime example). It is more the .NET side of the shop that I'm thinking about.

I forgot that Ivy is callable from the command-line. Another issue though that I'm dealing with at work is that we use code-level sharing, instead of binary dependencies, in order to achieve a full refactoring space. I'm still wrestling with how to handle that situation. I like having all the code open in the IDE since we can easily refactor, but it's a nightmare when it comes to dependency management in regards to continuous integration (especially the running of unit tests).
Left by Jason Olson on Apr 11, 2005 1:11 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Sure you can say "I can appreciate <INSERT COOL .NET FEATURE HERE> because I lived through <X> "

Didn't you do any DirectX programming before Managed DirectX? This is one of the areas where I like .NET the most. They took an API that is not entirely intuitive (OpenGL was much easier for me to learn than DirectX 4 or so years ago). Now I am all-about-Managed-DirectX.

I think that your "experimentation" with the other side of the fence will reinforce and strengthen your faith and appreciation of .NET .

Do this as an excercise. Without opening any book or visiting any websites, write a simple client that will access a webservice using .NET, then one in Java. Time yourself. Though it's not that hard in Java really, it's definitely more work. :)

What did you learn in college if you started your real development on C#? Didn't you do any ASM programming?
Left by Ben Scheirman on Apr 11, 2005 6:16 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Actually, I'm all self-taught. I didn't even start to learn programming until the last Beta of .NET came out (my sophomore year in college, I believe). I didn't take a single computing class in college (except for a crappy VB class which doesn't count).

All experience I have in ASM is assembly programming that I've done for the XGameStation.

The funny part about your example is that I'm feeling the opposite about Ruby on Rails and ASP.NET. I learn stuff in Ruby on Rails, and I find that to do the same stuff in .NET would take quite a bit longer (and more code). I also feel that Ruby on Rails is more intuitive.

I do agree with you though. I feel that learning these dynamic languages and other non-Microsoft technologies will only make me a better C# developer/evangelist (if I come back to like it). One thing is for sure though (and it may just be because I still don't have any practical Java experience), and that is that I would choose C# first if I had to choose a static language to develop in. If I chose a dynamic language, it would probably be a toss-up between Python and Ruby (mostly because I don't have enough experience in either yet to recommend one over the other).

With that said though, the community and 3rd party support in the Java arena is pretty impressive. Find me an equivalent to projects like Ivy, Maven, etc. in the .NET world (let alone be available for free).

Time will tell. One thing is for sure, it will be an interesting journey nonetheless!!!
Left by Jason Olson on Apr 11, 2005 7:01 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Sorry Jason but actually our plugin only works on CruiseControl, not on the .Net version.

Left by Matthieu BROUILLARD on Apr 12, 2005 3:18 AM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Since you mention Ruby....have you checked out the Ruby / .Net bridge ?
Left by Daniele on Apr 12, 2005 9:36 AM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Mono: You can still love C#.
Left by Rev_Fry on Apr 14, 2005 1:28 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
.NET: You can still love C#.

(OK - I'm biased :) )
Left by Rory on Apr 18, 2005 4:12 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Mono + .Net: You finally use C# as it was intended. Multi-platform. =P

(OK - I'm open minded) =)
Left by Rev_Fry on Apr 18, 2005 4:23 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
C# sucks. hehehe
Left by Jason Olson on Apr 18, 2005 5:02 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...
Ruby rul3z0rz
Left by Jason Olson on Apr 18, 2005 5:02 PM

# re: Yes, I'm a rebellious youth, dang it!
Requesting Gravatar...

Left by 8=D on Jun 09, 2007 9:25 AM

Your comment:
 (will show your gravatar)

Copyright © Jason Olson | Powered by: