Functional languages have existed for a long time, but they lack a practical ecosystem to make them relevant for everyone except a very specialized business developer (for example, a large investment bank that can be used to be able to throw some resources into functional programming for complex algorithms) .
Microsoft's effort is different from the purity of the F # language, but rather its planned debut as a first-class citizen of the main programming platform (.NET) and the likely very low friction that the host programmer will meet when he / she adds it to his existing infrastructure.
In .NET, you can already reference a VB project from a C # project (or vice versa) in one solution. But since the final intermediate language C # or VB is almost identical to 1 , .NET programmers today prefer to stick to one language (C # or VB) and participate in a chat conversation with those programmers who come from another (almost identical) dark side.
F #, on the other hand, will present a clearly different language tool. Therefore, you can continue programming in your preferred .NET environment (C # or VB), but when a separate functional subproject occurs, you can program this subproject in F # while still using all existing C # VB Assets.
As for the future, many people think that this is not so much the same size as it is suitable for the entire language, but rather a reduction in friction when choosing the right tool for a subproject / task at hand.
In terms of product release, Microsoft stated that it intends to deliver F # as part of the .NET family, but currently has only released a couple of CTPs (not in beta status yet), so I’d say there’s no rush to drop everything so that learn F # right now. (Ask me when I see the beta.)
1 XML literals in VB 2008 are most likely the most varied differences between VB and C #.
source share