
Microsoft unveils the F# programming language - 0_o
http://blogs.techrepublic.com.com/programming-and-development/?p=734
======
henning
"You can get F# to do what you want, but it seems to be more relevant for
number crunching activities like financial/data analysis, modeling, and
academic work — at least, this is what Microsoft is saying."

I don't understand this -- .NET-oriented podcasts and other people discussing
the language have described F# this way as well. It would be a mistake to
think F# is some kind of niche language like APL or Prolog just because it
supports functional programming. They also bring up Lisp (which they all seem
to spell as LISP), which shows that they have a hard time separating
functional programing support from Lisp which is multi-paradigm.

My limited experience with it tells me F# would be a good general-purpose
replacement for C#.

~~~
cosmo7
> My limited experience with it tells me F# would be a good general-purpose
> replacement for C#.

Yes, in the same way that a hairdresser would be a good general-purpose
replacement for a pizza.

~~~
cosmo7
The point I was trying to make, before a horde of retards modded me down, was
that C# and F# address different challenges and are not designed to replace
each other.

------
scott_s
"That is, you don’t have to write object-oriented code with F#; you can think
in more procedural terms to solve a problem."

Ouch. I don't think the author knows the difference between procedural and
functional.

~~~
gregwebs
I doubt we do either. Procedural isn't very well defined term. Usually people
mean imperative when they say procedural, and it doesn't seem like the author
understands the difference between imperative and functional, other than not
being able to re-assign a variable.

------
jodrellblank
If this is the September CTP rather than, say, a v1.0 release, then it's not
really an unveiling - there have been previous CTPs for months / year(s).

I thought my download/install/say oooh/delete was cursory, but whoo, he really
does kick the tyres, doesn't he?

"One of the first things I noticed is the use of the let keyword to assign
variables"

No no no! They're not _variables_ because _they don't vary_!

(and the shell doesn't work without compilation, it does on-the-fly
compilation - or it wouldn't work. And you don't need to wait to find out
about it's efficiency, it's been benchmarked loads, it runs on the .Net VM
taking advantage of all that it provides. Pattern matching lends itself to
data analysis? How vague and useless is that claim? And you don't need to
force it on a client, _it's a .net language_ , hello? It runs _on the .net
framework_! "The previous sample demonstrates output via the printfn function"
hello redundant commenting that tells you exactly what the code tells you!
Gah!)

;_;

------
trezor
While not really "news", it's interesting to see how Microsoft actually puts
time and effort into non-mainstream projects like this.

As for the linked article, it raises one question which had me thinking:

 _I also pondered why another .NET language (from Microsoft) is necessary. Are
C#, VB.NET, and the available third-party languages not enough?_

I'm not complaining about getting more options, but with .NET compiler
implementations for a dozen languages, functional languages like Python
included, this seems like a valid question.

~~~
mrkurt
First class MS languages fit into the entire "environment" in a way that the
less important ones can't even begin to approach. There are a bunch of super
interesting languages that are extremely tedious to use in a mixed language
.NET environment. Things like MS Build support, VS integration, and everything
else are really nice to have.

Even F# suffered before MS really bought into it. It had basic VS integration,
but no MS Build support, and other quirks that just became a headache to deal
with every day. With the CTP, I can add an F# project to an existing .NET
solution and use it like I would C# or VB. It's saved me a ton of time
already.

As to why you want more: I want more because it's good for my brain. :) I also
want more because I can attack problems with a tool that may be better for the
job without breaking out of my applications.

