Hacker News new | past | comments | ask | show | jobs | submit login

But then you have to be capable of stomaching Dotnet. Modern C++ is the best tool for this job, currently.



I started using F# late last year in a *nix environment and it is really well done. There's .NET Interactive which allows for F# in a Jupyter Notebook. You can create .fsx scripts that are interpreted at runtime and handle inline dependencies from NuGet. There's the Fable which compiles F# to JS, TS, Python and Rust.

And of course it's a full on functional language with some great syntactic sugar, especially computation expressions.

The stomaching of .NET basically means getting a much larger set of third-party libraries than OCaml or Haskell can offer.

It is well worth checking out!


The part about C++ is true, when you need to use a combination of SIMD/CUDA/MPI there is no game in town but C++. The ecosystem is so vast, we rely on too many scientific/numerical libraries that took tiny armies of grad students to create.

But for new projects in the future, I am looking towards Mojo and Chapel.


Mojo has its foot in the door through compatibility with Python.

Otherwise, there is no reason to pick either when you can do `dotnet add package System.Numerics.Tensors` and access pure C# BLAS that runs at optimal hardware speed that lets you easily implement inference without ever reaching for C or C++. And for GPU-related scenarios there is ILGPU. Now, either is extremely niche compared to Python, but the overall choice will give you great support everywhere, unlike with Chapel or Mojo.


You mean...not suffering through cmake and co and having your project build the first time you type dotnet build -c Release?

(I suppose a valid excuse for suffering from C++ tooling would be getting to use something like ISPC)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: