4 ms·
But then you have to be capable of stomaching Dotnet. Modern C++ is the best tool for this job, currently.
by Conscat 2y ago
But then you have to be capable of stomaching Dotnet. Modern C++ is the best tool for this job, currently.
- WeatherBrier 2y agoThe 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.
- neonsunset 2y agoMojo 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.
- neonsunset 2y agoYou 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)
- williamcotton 2y agoI 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!