The whole notion that something is inherently stateless, strictly enforcing contracts and tries to guarantee there's no side effects is a little strange to me. I'm used to things being a little more flexible (not necessarily good or bad, just different). I definitely can see some major advantages to the whole functional thing. And I agree with Rav in that this stuff could be very important in the years to come. Especially with C# moving in that direction (anonymous delegates, lambda functions and so on). And frankly I hope this kills off Visual Basic in a gruesome blood bath. I spent all day dealing with broken shit in broken Visual Basic, so if that hurts your feelings you need to fuck off. Seriously. When your shitty ass compiler stops bringing down the IDE, I'll start learning to like it. Background compilation... what a stupid idea... But I digress... I'm simply amazed at how different it is. At the same time it's very overwhelming because I basically had to teach myself (with the help of Rav) how to code all over again. And I've not yet begun to scratch the surface of what can be done, what's optimal, and so on.
I do have two complaints:
1. The quality of information about F# is horrible in my opinion. Some very basic shit is missing. And because it is a different mode of thinking, you don't just expect all people to just intuitively get it. I had to go to a lot of OCAML sites to fill in the gaps (and even then the info wasn't spectacular).
2. The integration with Visual Studio, while rock-solid, needs to be finished. It is VERY annoying to specify my assemblies by hand (i.e. -R/-I @"drive:\Path\Assembly.dll") Especially when I have NO idea what dependencies are required (oddly enough compiling my crap required the Microsoft.JScript.DLL be referenced... what the fuck is that all about? I don't even use it, nor have I referenced it in my other stuff). And really, what if I don't know where a specific assembly is located, what then? Search through 300,000 files? No thanks. And as silly as it sounds, I'd like to be able to put an icon in my applications, and embed other resources in the forms/apps. Naturally, the Winforms designer stuff, etc... Basically what C# already has. I'm sure this will happen sooner or later. But if this stuff were fixed, I'd love to see it come with visual studio as a full fledged product.
Regardless, I think it's an interesting way of doing things. And I will attemp to continue my studies. Who knows, it might keep me employable and I do so love money.