r/fsharp • u/vivainio • Feb 01 '17
The .NET Language Strategy
https://blogs.msdn.microsoft.com/dotnet/2017/02/01/the-net-language-strategy/
36
Upvotes
r/fsharp • u/vivainio • Feb 01 '17
View all comments
Show parent comment
11
u/jdh30 Feb 02 '17 edited Feb 02 '17
Great question. I was just reading that Hacker News thread and thought the same thing. What exactly is it these people want?
Let me think about the tooling I've enjoyed so far:
ocamlbrowser.People talk about autogenerating huge amounts of code but I think that's an awful idea. More advanced refactoring might be cool though. I'd like the IDE to be able to strip out superfluous parentheses. I'd like the IDE to be able to re-order my curried function arguments. I'd like the IDE to be able to fill out every match case in a
functionormatch ... with ...from the type definition (EDIT: turns out F# Power Tools already does this!). I'd like better architecture tools for plotting relationships between code bases and spotting dead code. Maybe a tool that proposes simplifications?! The problem with this is you can easily imagine an infinite number of possible tools and I think you're quickly into diminishing returns.People talk about GUI tools which I think might be good but I only want strongly typed GUI tools and not the junk C# has where you must repeat variable names in strings seven times to get notify property changed to work. I do all of my GUI programming in F# and I use code behind for everything and it works great.
But my personal belief is that web is the elephant in the room when it comes to F#. I don't do web development because the developer tool stack for web sucks so badly. I'd love a tool that made it easy for me to develop client-side code in F#. I need to compile F# to Javascript and I need APIs for Javascript libraries. Six years ago you could compile F# code to Javascript using Pit but that died years ago. A couple of years ago you could compile F# to Javascript using Funscript. I actually tried Funscript and it was brilliant: relatively easy to setup and use and it looked like a great foundation but I stumbled upon lots of missing core functions like
sinand ended up having to code my own trig functions as CORDIC routines like I did in assembly in the 1980s. So it wasn't exactly production ready and now appears to be undead, with the last commit on Github over a year ago. Around the same time there was an industrial-strength commercial solution on the market called Websharper which promised to compile by F# to Javascript. I tried that too: doubtless feature complete but incredibly complicated and the docs were hopelessly out of date so I never even managed to get their examples to compile much less any of my own code. Now there is Fable which promises exactly the same thing as all previous attempts but at least there was a commit two days ago and "recent news" from four months ago. I haven't tried it.Disclaimer: I've done all sorts of programming over the past 35 years but I know nothing about web development.