Mort on C#
Rockford Lhotka has a post about developers with Mort's persona conquering C#.
- Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed.
- Elvis, the pragmatic programmer, likes to create long-lasting solutions addressing the problem domain, and learn while working on the solution.
- Einstein, the paranoid programmer, likes to create the most efficient solution to a given problem, and typically learn in advance before working on the solution.
Rockford warns that as many developers moved from VB 6 to C#, there is going to be pressure on C# to become a Mort friendly language, and that the Elvis & Einstein types will have to move to C++ again. I don't think that this is going to happen. Or rather, I agree that C# will get more rapid productivity features, but that is not a bad thing.
Here is a pet peeves about C#:
The above can (and should, in my opinion) be written like this:
You lose no type safety and the code doesn't repeat itself. You should still be able to use the previous version if you want to do something like:
(Anders Hejlsberg talked about something similar in a talk about C# 2.0, but apperantly it is something planned for later.)
Or things that we have today (okay, tomorrow, but you know what I mean), like Edit & Continue, anonymous delegates, generics, etc... They are going to help the Mort persona, sure. But they also allows for very powerful conecpts that most Morts will never find interesting or at all (functional programming, or the nearest thing to that, for instance). I think that it is good to have a language that will cover anything from the very basic to the very sophisticated natively and easily. I don't think that there is a danger of dumbing down C# to make it easier (nor do I think that it's needed).
C++ certainly has its place, and I find it great that the C++/CLI team decided to make it the language that will allow you to use all features of the CLR from the language, without needing to drop to IL; but that is not the reason that I rather program in C#. Put simply, C# doesn't surprise me {it sometimes frustrate me, but that is another thing} as much as C++ does. Then there is the Oh, So Wonderful ReSharper*, which should be enough of a reason by itself.
Beyond that, I don't neccecarily agree with the devide between those personas, I want easier ways to do stuff. Becuase if it's easier, I can often use it to do things that were simply impractical to do before. I often work in different modes during the same project, and I find that most often, I'll use the productivity tools no matter what mode I'm working at.
The funniest quote from his post is (paraphrased):
* I understand that the C++ sytnax make it much harder to write a similar tool to ReSharper.
Comments
Comment preview