Add F# support for .NET Native
I had a conversation with @xyziemba and @dotnet on Twitter recently about the .NET Native toolset and features. I understand the F# is not supported at the moment and that support is unlikely to come in the VS 2015 RTM timeframe. I'd like to suggest that you consider adding this support as soon as possible - even if it means some time after the RTM of VS 2015.
Since I couldn't find a UserVoice request for this - I wanted to put this in.
Support for F# in the .NET Native compiler is in progress. The F# team, in collaboration with the .NET Native team, has posted an update on their GitHub which can be found here: https://github.com/Microsoft/visualfsharp/issues/1096.
Stacey Haffner | .NET Program Manager
Et le bleu noir et attire les mouches tsé-tsé piqueurs manteaux femme zara petits suceurs de sang.
Le concours se déroulera à partir d'aujourd'hui à travers octobre 18, et en entrant est facile: tout ce que vous zara soldes en ligne devez faire est de poster votre version de poneys brillants avec les hashtags #shinyponies et #jcrewcontest.
Mais en réalité, soldes zara en ligne je ne acheter des choses sur la vente et souvent à la fin de la saison.
doudoune femme zara
Stefano Pian commented
Two months have passed since the last comment from Microsoft (Clint Rutkas on the Dev uservoice).
Could we please hear any news on the progress for F# UWP (or lack thereof)?
My company will be starting a UWP project pretty soon and I'd love to *at least* be able to include some F# library.
James Urry commented
Please see comment by Clint over on Dev uservoice. The team are on it!
Microsoft's lacking support of F# as a first class language is quite uncomprehensive and even more so the lack of good explanations of the cold shoulder. .Net needs a good functional alternative and C# is not going to be a real functional language no matter how much F# lipstick they smear onto it. Microsoft needs some bald moves to catch up and betting on VB and C# isn't the right direction. VB today is basically just an odd dialect of C# anyways. Sure there are more VB.Net developers than F# developers but when was the last time you saw a VB.net talk on a conference? Microsoft has had the chance to properly support F# since 2005 but now even Apple has gotten the upperhand in the functional space. This is not representative of the "new" Microsoft.
Here is the text from an article I wrote -
As an F# power user, I have no doubt whatsoever that F# users, both the present minority and the future adopters.
For instance, I’m attempting to rebuild the future of game programming with functional technology, and I have chosen F# as the tool with which to do it. However, the first objection I receive from people (at least, those who don’t know the details of my work) is that functional programming is too slow for soft real-time programming such as games.
Fortunately, I have already done a tremendous amount of work to falsify these objections. But if every time I advocate for game programming with F# I have to respond to the legitimate criticism of no .NET Native support, I am going to find the monumental task I’ve undertaken even more taxing.
More generally, the wider community has also put in incredible effort to demonstrate the possibility and desirability of soft real-time programming with F# -
It works, it’s desirable, so let us proceed.
Native Compilation — Extra Necessary for Functional Programming
If you’re familiar with the specialized optimizations that compilers like OCaml and SML can do for functional code, such as whole program optimization to deforest allocations and elide lambda chains (esp. with respect to F#’s computation expressions —
- you quickly realize the extra benefit that functional code can (and often must) achieve with compilation more specialized than RyuJIT will have the latency allowances to provide.
Additionally, by using F# and functional programming, we’ve already taken some risks as far as performance goes. To deprive us of native execution would compound that cost in a very painful way. While my code is mostly fast enough, sub-optimal code generation due to JIT pragmatics is not a reasonable bottleneck for games — be they pure functional or not!
And lastly, what would be the work-around for not having F# Native?
Do we build an F# to C# compiler? Being the language / hacker geeks we are, this frightful scenario could actually happen!
Do not tempt us, for we are language geeks with time on our hands!
Or do we just go back to C# and try to forget all we’ve recently learned about computer science and writing truly modular programs? How ironic would it be if we have to return to C# just to write performant functional programs?
So, I would say that we, the F# community, effectively need .NET Native support. And just because our new language and projects don’t have an over-abundance of users doesn’t mean we’re unimportant. For there will be many more programmers who come after us than there ever has been of us, and they will not want to speak in our collapsing languages or live in our indecipherable imperative code bases.
Adrian Salceanu commented
Boooo... I think Microsoft should make up their mind in regards to F#. Is it or is it not a first class citizen of .NET? Are they supporting it or not? This half baked approach is confusing and time consuming for developers.
I'm very disappointed that .NET native is not language agnostic. What is the point of bytecode if it's not the basis for things like this???
Geeze... so confusing. ;) Done.
Krishna Nadiminti commented
Everyone who voted for this - please note there is a feature request for the same thing on a different uservoice site: https://wpdev.uservoice.com/forums/110705-dev-platform/suggestions/9110134-f-support-in-net-native-for-uwp
It may be that the request on wpdev is the right place for this.
Please vote for the request there as well!
Alex Hardwicke commented
This feels really important. It's not just a performance thing - as all UWP apps are compiled by .NET Native, no F# libraries can be used in UWP apps if F# isn't supported by .NET Native.
We have business logic written in F# and we can't write a UWP until this is fixed - we'll have to stick with a Windows 8.1 Universal App. Disappointed.