kpremote 5 years ago

I'll just throw a random comment here:

F#, to me, has the most beautiful syntax. Reading F# code is such an eye pleasing experience!

I actually don't know much about the language, but always dream about being an expert in it and using it every day.

Edit: to give some context, the others I find especially beautiful syntax-wise are Ruby, Lisp, Haskell, Ocaml(very similar to F#). Still I think F# is the best.

spanxx 5 years ago

Hijacking the thread (bear with me).

Is f# a good language to work with in Linux servers? Is possible? Would you recommend it?

  • dustinmoris 5 years ago

    Absolutely. F# is just one of 3 languages which you can use to develop .NET Core applications. .NET Core itself is cross platform and really well supported on Linux and macOS. The other two languages are C# and VB.NET, but personally I think that F# is just the nicer of the three.

    It's also worth noting that .NET Core is not only cross platform, but an extremely performant runtime which really hits the ceiling in various benchmarks https://www.techempower.com/benchmarks/#section=data-r17&hw=...

    • libria 5 years ago

      I'm trying to imagine that one tortured soul out there doing VB.NET on macOS.

    • merb 5 years ago

      to be fair most tests in this benchmark are not real world. most stuff above 150.000 is basically cheating. .NET Core including. Which sane person would would write a whole app with

      app.Run(async context => { await context.Response.WriteAsync("Hello, World!"); });

  • nulagrithom 5 years ago

    While we're hijacked...

    Is F# still the red-headed step-child of Core?

    Last I fiddled with it F# was looking pretty unloved, but to be fair C# was still having a hard time with Core itself.

    • phillipcarter 5 years ago

      Sounds like you popped in before mid-2017 when things were rough all around. F# is fully supported on .NET Core and, including tooling in VS. Give it a shot!

    • McWobbleston 5 years ago

      > Is F# still the red-headed step-child of Core?

      Yup. Although this doesn't really come into play with server code in my experience. I don't imagine I'd want to deal with it writing WPF / UWP things though where language support is more important

      Even then I might just write the business logic in F# and glue things together with C#

      • wyoung2 5 years ago

        > I don't imagine I'd want to deal with it writing WPF / UWP things though where language support is more important

        As the article points out, there never has been any visual forms designer type stuff for F#, so if you're writing a GUI app with F#, it's best to wrap it in a C# shell anyway.

        Which is fine, because you wanted to separate your core application logic from the GUI anyway, right?

        > I might just write the business logic in F# and glue things together with C#

        It's a perfectly reasonable way to go.

        The only difficulty is that it simplifies things if you don't try to do all the fancy FP stuff at the boundary between the F# and C# parts of the app. While there are ways to pass, say, a tuple from F# to C# and cope with it on the C# side, it's better to limit types at this interface to things both languages support as first-class citizens: arrays, objects, simple scalars, etc.

  • infiniteseeker 5 years ago

    I asked the same question and basically my findings are that unless you need .Net, stick to Ocaml for *nix systems

  • manojlds 5 years ago

    With .NET core in place, definitely yeah.

  • Nelkins 5 years ago

    Yup. I said so in another comment on this thread, but I've got a decent amount of code (30K LOC) running in a combination of AWS Lambda and Docker containers. Been doing it for just over a year now, it's working very well for us.

  • adgasf 5 years ago

    .Net Core makes this work very well.

joshsyn 5 years ago

I wouldn't recommend F# on other platforms yet, specially because .net core isn't supported very well.

  • Nelkins 5 years ago

    Can't say that I agree, I've got a little over 30K LOC app running in AWS Lambda and Docker containers. I do all of my development on a Mac. Haven't touched Windows in over a year.

  • wyoung2 5 years ago

    I've got a headless UDP multicast networking app in F# that runs just fine on Windows, macOS, and Linux. If that's not miles from Microsoft's traditional core app market, I don't know what is.

  • phillipcarter 5 years ago

    Can you clarify what you mean by not being supported very well? F# has been fully supported on .NET Core for a while: it's a part of the .NET SDK, FSI support is in, it's fully tooled in Visual Studio, etc. Would love to know what you feel is missing here.

    • joshsyn 5 years ago

      I suppose language wise the support is there but there are lack of libraries. A while ago I was consider considering F# for the backend. While looking for database client I found most third party like SQLprovider, rezoom.sql didnt support .net core very well.

      • akra 5 years ago

        SQLProvider has been ported to .NET Core - I've used it no problem when scripting/prototyping across a variety of different data sources at once. Admittedly I tend to just use straight ADO.NET anyway - its simple enough to use and with F# your not saving all that much code/if at all moving to Dapper since the language tends to be more succinct.