> F# is not the language I would write an entire app in today.  Instead
> use it for robust processes.  Such as multi threading processes.

I suppose if you don't want to write robust multi-threaded
applications, F# might not be the best language.

 ;)

>
> I have spoken with a few hard core F# developers over the past few
> years and they really love it's flexibility and bend ability.  They
> also see more internal code that M$ writes to be done in F# replacing
> C++ based modules over time.  They guys all had M$ employment at the
> time.

If you think about how F# evolved, it's really remarkable that it's
got such traction, even internally at MS.

It started out life as a research project, just to see if it was even
possible to port a language like Ocaml to the CLR.

It proved to be so good in practice as it was supposed to be in theory
that many eyebrows were raised. Unlike DLR (dynamic language runtime)
language like IronPython and IronRuby et al., it compromises
performance not at all for a syntax that feels totally dynamically
typed (but is in fact totally and strictly type safe). F# generated
code benchmarks remarkably well against "pure C#" at a fraction of the
cost in code.

But the real power of the language is in the ability to take very
complex concepts and extend the language with custom syntax to
eliminate most of the boiler plate code to express those concepts, in
such a form that it can even be treated as pure data and passed over
the wire to remote locations for computation. This somewhat
mind-bending idea is essential to taking distributed processing to a
new level.

I actually have one thing about it's current implementation I totally
hate, however. It is not possible in F#, for a reason that I frankly
do not fathom, to implement a generic interface more than once with
different generic parameters.

I discovered this to my dismay the hard way by merely subclassing a
class from an ORM library I love (DataObjects.NET), which happens to
be written in C# and does in fact implement a generic interface twice,
each implementation with different concrete type parameters. F# chokes
on that with an error message stating that this is verbotten at this
time in F#, even though this was done by the superclass and not the F#
code I wrote.

I can see Don Syme and the team, sitting around a table, looking at
the timeline for the next release and saying, "Oh, we can cut this
corner; no one will notice."

Well, "no one" noticed. And I was none to happy about it. ;)

But I still think, despite this edge case EPIC FAIL, F# is a fantastic
language and I enjoy exploring all the nifty things I can build with
it that would be difficult even to think about in other .NET
languages. :)

- Bob

>
>
>
> --
> Stephen Russell
>
> Sr. Production Systems Programmer
> CIMSgts
>
> 901.246-0159 cell
>
[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to