April 29, 2014 2 Comments
I am getting ready for my presentations at Charlotte Code Camp next Saturday. My F# session is a business-case driven one: reasons why the average C# developer might want to take a look at F#. I break the session down into 5 sections: F# is integrated, fast, expressive, bug-resistant, and analytical. In the fast piece, I am going to make the analogy of Visual Studio to a garage.
Consider a man who lives in a nice house in a suburban neighborhood with a three car garage. Every morning when he gets ready for his morning commute to work, he opens the door that goes from their house into the their garage and there sitting in the 1st bay is a minivan.
Now there is nothing wrong with the minivan – it is dependable, all of the neighbors drive it, it does many things pretty well. However, consider that right next to the minivan, never been used, is a Ferrari. Our suburban programmer has heard about a Ferrari, and has perhaps even glanced at it curiously when he pulls out in the morning , but he:
- Doesn’t see the point of driving it because the minivan suits him just fine
- Is afraid to try driving it because he doesn’t drive stick and taking the time to learn would slow him down
- Don’t want to drive it because then he would have to explain to his
project managerwife why he are driving around town in such a car
So the Ferrari sits unused. To round out the analogy, in the 3rd bay is a helicopter that no one in their right mind will touch. Finally, there is a junked car around back that no one uses anymore that he has to keep around because it is too expensive to haul it to the junkyard.
So this is what happens to a majority of .NET developers when they open their garage called visual studio. The go with the comfortable language of the C# minivan, ignoring the power and expressiveness of the F# Ferrari and certainly not touching the C++ helicopter. I picked helicopter for C++ b/c helicopters can go places cars can not, is notoriously difficult to pilot, and when they crash, it is often spectacular and brings down others with them. The junked car is VB.NET, which makes me sad on certain days….
Also, since C# 2.0, the minivan has tried to becomes more Ferrari-like. It has added turbo engine called linq, added the var keyword, anonymous types, the dynamic keyword, all in the attempt to become the one minivan that shall rule all.
I don’t know much about Roslyn but what I have seen, I think I can take and remove language syntax and it will still compile. If so, I will try and write a C# program that removes all curly-braces and semi-colons and replaces the var keyword with let. Is it still C# then?
OT: can you tell which session I am doing at the Hartford Code Camp in 2 weeks?
(And no, I did not submit in all caps. I guess the organizer is very excited about the topic?)