Monday, October 15, 2007
Technically its more like a few hours spread over a week but so for so good.  I've come to begin to understand functional concepts.  Currying and partial application now seem to be rather easy to understand but hard to explain to someone else. 

However, what I really love is not necessarily the functional aspects, rather the terseness of the language.  I especially like type inference.  I'm not sure why we couldn't have had that sooner in C#.  In languages like C# you expect an IDE to be present so it works really well in situations where you have a toolset to back you up.  It also works really well in scripting languages (Ruby, Python, etc).  However, with F# (and OCaml) you get the benefits of strong static typing with the benefits of less typing.  I really like it.

It seems that many concepts are just simpler in F# rather than C#.  I also see cases where it is easier to define a smaller single use type (like when you query a small set of data from a database) than to declare a full blown class.  I think many times I've found it a pain to create a whole class when I really don't need to reuse it.

Again, these are just first impressions.  Things may change as I get farther into the tutorials and learning processes.  I find F#/OCaml very easy to learn.  As I was working on Scheme/Lisp it syntax always felt alien.  I was learning a lot but it didn't fell quite right.  F# just seems to feel good.  Probably because it is close to C# in some ways.

I really need to get into a small project with it to see if I really like it.  Once I have a real world application under my belt I can usually tell if I'm going to keep a language in my toolbelt or put it back on the shelf for another time.

I also think I have a solution for the ASP.NET development.  I'm going to use ASP.NET without ASP.NET...  (I'll explain more in the future, but if you read some of my previous posts, you can probably figure out what I'm going to use.)

Monday, October 15, 2007 7:39:46 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):