2 ms·
So, I've been making a slightly more concerted effort to pick up F# because I've always liked F# and .Net core and Fable means that I might actually get to run
by grayrest 10y ago
So, I've been making a slightly more concerted effort to pick up F# because I've always liked F# and .Net core and Fable means that I might actually get to run it at work without the non-starter of switching stuff over to windows servers. Excellent.
The main holdup is that the build/packaging situation is disastrous.
Most stuff still relies on Mono, which is fine, but trying to get things running on core quickly runs you into articles that assume you know exactly what you're doing and how all the pieces fit together, which is also fine.
What's not fine is that the base task of wanting to download existing packages and run the result doesn't have a simple solution. The base .net core install comes with a project.json solution, which seems completely sane to me, but apparently that's deprecated and not how to do things. Then there's Nuget which is a package repo but apparently not a package manager because it's supposed to be a VS extension but maybe it is in the next version because there's a shell. There's also msbuild and some variant of it for fsharp which is mostly opaque XML but can be managed using a project called forge, which seemed to kind of work for me but also seems very opaque. There's also paket which manages dependencies from nuget, there's also Fake which seems to be a Rake-like build system.
I know I'm not the only one who's run into this. I've seen at least 4 other requests for help in various F# forums and everybody seems to pretty much shrug and say that they use VS.
If one of the F# cognoscenti could write up simple instructions on how to set up a project and run it using VSCode and .Net core, I'd be grateful.
- phillipcarter 10y agoAwkward person in the video here... Let me see if I can clarify the landscape a bit here: .NET Core tooling support is still in absolute Preview. The runtime and libraries are stable, but the .NET Core SDK, MSBuild support for .NET Core, the project system in Visual Studio, etc. are all Preview support. Much of the F# community is waiting on .NET Core tooling stability to act, which they have every right to do. .NET Core tooling is still in Preview, and still changing rapidly. Using any cross-platform community tooling or libraries on .NET Core is likely going to be rough right now, and that's because the underlying tooling that the community needs to rely on is in Preview. F# support is still officially in alpha for .NET Core, a moniker we're pretty deliberate about because we don't want to "flip the switch" until everything is stable and compatible with existing code. Honestly, if the churn is painful for you, the best advice I can give at this point is to wait until the tooling for .NET Core stabilizes and becomes release-quality. Up until that point, there will still be churn.
- grayrest 10y agoI don't have anything pressing and I don't know the ecosystem so I'll be waiting it out. My frustration is mainly that I think F# with Fable and Kestrel in VSCode is very compelling for JS shops and the only reason I can't recommend it is the build situation. An explanation of how to make a project, add a dependency, and run it that would make sense to someone used to npm would really help people who aren't on windows and running visual studio. I do appreciate the efforts of the F# team has always made in maintaining an open source community and I do recognize that there are lots of complications involved. Thanks for your efforts.
- k_cieslak 10y ago> I do appreciate the efforts of the F# team has always made in maintaining an open source community I do appreciate the efforts of the F# open source community has always made in maintaining an VF# team.
- zem 10y agoi recently started dabbling in f#, and i've made a small collection of shell scripts that walk through the stages of setting up and compiling different kinds of program. the basic idea is that forge and paket do most of what you want; they're just hard to figure out; reading through the shell script will take you step by step through the various incantations you need. thus far i have command-line "hello world", eto.forms gui and gtk# gui (they mostly differ in what libraries they install). if you're playing with fable, i'd love if you contributed a script. https://github.com/martindemello/fsharp-quickstart https://github.com/martindemello/fsharp-quickstart