I'm Going Functional

   You may have noticed that I did not post any programming related articles lately. The main reason for this is that after I played with C# 3.0 and LINQ I have not learned anything really interesting. That is why I am beginning to study F#. To quote the "Expert F#" book review:

   "Expert F# is about practical programming in a beautiful language that puts the power and elegance of functional programming into the hands of .NET developers."

   Why learning F#? First of all I believe learning a language with paradigm much different from the language you usually use makes you more productive and gives you better understanding of the features that your main language has. For example learning Perl will force you to solve many problems with regular expressions. This is not always good but when you go back to your main language you will be able to come up with regex-based solutions of problems that you have never thought could be solved using regex and sometimes these solutions will be better. I started looking for a modern non-trivial language with scripting features. Also I wanted the language to have an implementation on the .NET Framework so I would not need to learn the underlying libraries which is boring and not that useful. At first I was going for Python and its .NET implementation IronPython. I was reading information for Python and was quite happy with the concepts and the usage of the language. Also it seemed like the .NET implementation was really good. Microsoft had bought the guy that created Jython (Python for JVM) and had him create IronPython. I was just about to download the necessary stuff when I read an article on a very controversial Python feature. It turns out that Python uses indentation to define scope. There are some serious flames going around if that is good or bad. I personally find it disastrous.

   I have great disrespect for Ruby because of all the hype around and the constant boasting that it is open source. What is more I do not think Ruby will keep that hype without a serious company behind it. That is why IronRuby was not an option.

   Then I started researching F#. I have always been fascinated with functional programming. LISP is the greatest language ever. However no one truly groks LISP so I picked something more practical with .NET implementation coming from Microsoft Reasearch. The development has been moved to Microsoft Development division and as I understand the language will be included in the next version of Visual Studio out of the box together with IronPython and IronRuby (I may be wrong on that). Functional programming is making its way into general purpose imperative/OOP languages including Java and C# and as it seems it is the next big think. Note that no one thinks functional programming will replace imperative programming but see how well they play together in LINQ?

   The author of the language Don Syme is really cool. He answered my e-mail regarding beginner resources. Frankly, the initial e-mail was quite arrogant so I was a bit surprised that he took the time to answer me. Somehow he managed to convince me to buy his book (the aforementioned "Expert F#") despite my long-time hate for books on programming. He also promised to buy me the price of the book worth in beer if I did not have the patience to go through the book or I found it too much above my level.

   While looking for a way to install F# on Visual Studio Express Edition (no you cannot install it) I came across this very interesting version of Visual Studio called Visual Studio Shell. It is best described as the missing parts of the express editions. While the Express editions ship with languages but no plugin support the Shell ships without languages but full plugin and tools support. This is quite good for architects that use some strange plugin for diagrams and programmers that want to use some add-in language and do not need C#, VB.NET or C++. F# works as a plugin and gets full debugger support and intellisense in VS Shell. It is free and installs side by side with the express editions without any problems. As it seems Microsoft are not that bad* after all.

   I hope I can gather some non-copy/paste material while studying F# and post it here. I also hope that I can keep my enthusiasm long enough. Expect something on F# (positive or negative) soon.

More F# resources

*bad – charging absurd fees for everything they can potentially charge for
Tags:   english programming tech 
Posted by:   Stilgar
16:54 29.07.2008

Comments:

First Previous 1 Next Last 

Posted by   JOKe (Unregistered)   on   16:07 30.07.2008

good luck :D

Posted by   JOKe (Unregistered)   on   18:10 30.07.2008

Im Going FX why ? WHy NoT :D

First Previous 1 Next Last 


Post as:



Post a comment: