C# as you know it but with Go-like tooling (small, selfcontained, native exes)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • zerosharp

    Demo of the potential of C# for systems programming with the .NET native ahead-of-time compilation technology.

  • Background: I touched C# a little over 5 years ago writing ASP.NET MVC + jQuery apps and decided I hated it then.

    About 6 months ago I had a side project where I took a C++ library and decided I'd try to translate it into every language that supports C/C++ Interop, to have a canonical "C Interop reference + comparison" repo for anyone interested

    I found out that C# could do this, and started looking into how.

    Long story short, it's now possible to use C# and .NET to directly interop with C/C++. Function Pointers, structs and all. You can publish a binary or static/dynamic library for any platform that's natively compiled -- zero dependencies.

    It allows you to manually allocate memory and provide allocation strategies. Shit, you can even turn the GC off entirely (at this point the language is very barebones).

    See ZeroSharp by same author:

    https://github.com/MichalStrehovsky/zerosharp

    So on top of this surprising viability for fairly low-level or native programming, it's also:

    - Just generally good at everything/bad at nothing

    - Blazingly performant, and getting faster consistently. Both at a language/computation level, and for things like web servers. ASP .NET Core Kestrel webserver has throughput only topped by a handful of Rust/C++ libs, and most recent preview included a new functional router API that increased throughout by +100,000rps.

    - C# as a language is evolving rapidly and has already become a solid multi paradigm lang. Adopting features like pattern matching and lambdas. It has LINQ. It's actually pleasant to write now and doesn't always feel like verbose enterprise garbage.

    - The tooling and ecosystem and C# and .NET are rivaled only by the JVM

    There's more but that's off the top of my head.

    Needless to say the last few months visiting C# and .NET land have changed my former opinion.

  • bflat

    C# as you know it but with Go-inspired tooling (small, selfcontained, and native executables)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Bitwarden

    The core infrastructure backend (API, database, Docker, etc). (by bitwarden)

  • Ryujinx

    Experimental Nintendo Switch Emulator written in C#

  • The author’s ZeroSharp project is also interesting. It shows how you can compile C# without any runtime. No garbage collection, no exceptions. You can perform stunts like make a 5KB Hello World or a EFI application that runs with no operating system:

    https://github.com/MichalStrehovsky/zerosharp

    I did a survey recently of binary sizes for .NET apps and comparisons to other languages. Things like NativeAOT (on which Bflat is built) and Graal Native Image let these languages get down to a binary size , startup speed, and deployment model similar that enjoyed by Go and Rust developers.

    https://github.com/AustinWise/SmallestDotnetHelloWorlds

  • Jellyfin

    The Free Software Media System

  • Also jellyfin, and I guess Emby which it was forked from

    https://github.com/jellyfin/jellyfin

  • vscodium

    binary releases of VS Code without MS branding/telemetry/licensing

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • core

    .NET news, announcements, release notes, and more! (by dotnet)

  • I believe license for the VScode C# plug-in prohibits using it with VScodium.

    I didn’t know this until recently when someone pointed it out.

    https://github.com/dotnet/core/issues/505

  • asdf-dotnet-core

    ✨ .Net Core plugin for asdf version manager

  • Of all the possible ways to handle toolchains on Linux, I'm quite happy with asdf[1]. I've successfully built stand-alone fsharp/csharp "Hello worlds" off of dotnet via asdf - but I've not used dot.net in anger.

    I chiefly like asdf because I typically need at least two toolchains (with various versions for various projects) - eg ruby and nodejs, or python and nodejs.

    https://asdf-vm.com/

    https://github.com/emersonsoares/asdf-dotnet-core

  • asdf

    Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

  • Of all the possible ways to handle toolchains on Linux, I'm quite happy with asdf[1]. I've successfully built stand-alone fsharp/csharp "Hello worlds" off of dotnet via asdf - but I've not used dot.net in anger.

    I chiefly like asdf because I typically need at least two toolchains (with various versions for various projects) - eg ruby and nodejs, or python and nodejs.

    https://asdf-vm.com/

    https://github.com/emersonsoares/asdf-dotnet-core

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts