nimskull VS .NET Runtime

Compare nimskull vs .NET Runtime and see what are their differences.

nimskull

An in development statically typed systems programming language; with sustainability at its core. We, the community of users, maintain it. (by nim-works)

.NET Runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps. (by dotnet)
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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
nimskull .NET Runtime
13 608
253 14,139
2.0% 1.6%
9.9 10.0
10 days ago 3 days ago
Nim C#
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

nimskull

Posts with mentions or reviews of nimskull. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-24.
  • V Language Review (2023)
    6 projects | news.ycombinator.com | 24 Feb 2024
    > Unfortunately there seems to be a big "civil war" happening right now in Nim land

    I believe the war is already over, the other side forked the language and seems to move in their own direction to create something new - https://github.com/nim-works/nimskull . That's probably for the better.

    I've been around Nim communtiy around a year and I haven't seen any major conflicts break out since these people left. Nim is still actively developed and a jou to use.

  • OpenD, a D language fork that is open to your contributions
    9 projects | news.ycombinator.com | 13 Jan 2024
    FYI, some members of the Nim community are working on a fork, for apparently similar reasons as OpenD (community-led development). https://github.com/nim-works/nimskull under active development and not ready for general consumption though, from my understanding.
  • A Tour of C++, 3rd edition (covering C++20 plus a few likely features of C++23)
    3 projects | news.ycombinator.com | 30 Oct 2022
    There's a looming feeling that C++17 is really going to be the last version of C++ (practically, in production). The Vasa is now half-sunk [0][1], but the alternatives are yet to be truly born. The current issues surrounding the language standards:

    - The important but half-baked features of C++20 that has never really been polished enough for actual production usage (modules, coroutines)

    - Unnecessary "hyper-modern" C++ features which are dead on arrival (ranges)

    - The dramatic increase in build times due to the STL library (which are accelerated by those hyper-modern C++ features) [2]

    - The fleeing of LLVM/Clang engineers to other projects (as you've said, Apple engineers shifting work to Swift, and Google abandoning Clang and moving to Carbon).

    - Implosions in the ISO committee (notably the controversy surrounding the rape convict)

    It's really not looking good, but there aren't that much alternatives so I think people will just stick to C++17 for the moment. Listing the worthwhile competitors:

    - Rust is a bit too awkward to use in many cases where C++ is used (particularly with unsafe Rust), and inherits some of the hyper-modern complexities/insanities of C++.

    - Zig is still too unstable, they just finished reworking the compiler

    - Jai is not even released to the public

    - D might be a candidate but IMO they should really commit 100% fully for GC-less betterC mode...

    - Nim still has many warts and unbaked features, and also the dev community was split into half recently [3]

    [0] https://www.aristeia.com/TalkNotes/C++vstheVasa2-ups.pdf

    [1] https://www.stroustrup.com/P0977-remember-the-vasa.pdf

    [2] https://old.reddit.com/r/cpp/comments/o94gvz/what_happened_w...

    [3] https://github.com/nim-works/nimskull

  • NimSkull: A Hard Fork of Nim
    1 project | /r/patient_hackernews | 8 Jul 2022
    1 project | /r/hackernews | 8 Jul 2022
    1 project | /r/hypeurls | 7 Jul 2022
    6 projects | news.ycombinator.com | 7 Jul 2022
  • Nim Version 1.6.6 Released
    9 projects | news.ycombinator.com | 5 May 2022
    I started programming in Nim around 2015 and still write code in it from time to time. At this point I would have a tough time suggesting the language to anyone for much. While you can certainly accomplish almost any programming task with Nim, how much frustration you will encounter fighting the compiler and broken / under-specified language features and semantics might be a turn-off. There are other major warts with Nim, which I'll outline briefly below.

    1) Nim's leadership is awful and has always been historically. Those in charge of managing the community are more interested in their personal reputation's and resumes than they are actually contributing working software to the language's ecosystem. Even the BDFL treats Nim like their own personal compiler R&D playground. There are so many broken features in Nim which never see the light of day or never get removed.

    2) Continuing to expand on the point above, the Nim compiler has become insanely difficult to work on. As more and more half-baked features have been added to the language, the situation has only worsened. There are many would-be contributors who have come into the community only to leave completely frustrated or appalled by the lack of interest in improving the situation from those leading the community.

    3) The development path is driven by leadership and not the community, and leadership has no plan. This was extremely evident last year when Araq and others were asked for a roadmap for Nim and they admitted to not having one, and basically wrote one up in a forum thread. Araq and dom96 and a few others, especially those who have been brave enough to actually deploy Nim code in production (looking at you status.im) tend to dictate what gets worked on or fixed. There is no coordination amongst folks working on initiatives. You can look at the `fusion` project, which was started by Nim's leadership, drew contributors in, and then was abandoned by leadership while maintainers were left on the hook to keep things afloat until they too dumped the project.

    Things have gotten so bad, that a hard fork has been in development since last year, and many of the more senior community members or those who have been around for a bit have migrated there: https://github.com/nim-works/nimskull

    Nim's community now consists of mostly new members or folks who weren't really active in it before, but maybe used Nim. Of course, the leadership remains in place, but there are only a handful of folks remaining that have been around for more than a year or two. Mostly those who bit the bullet on using Nim in production or built large projects with Nim and are stuck maintaining them.

    My advice would be to look elsewhere.

  • NimSkull - A reimagining of Nim
    1 project | /r/nim | 27 Feb 2022
  • Computer Programming with Nim
    13 projects | news.ycombinator.com | 27 Feb 2022
    A lot of previous contributors to Nim are currently working on an experimental fork due to disagreements with the development of the official compiler: https://github.com/nim-works/nimskull

.NET Runtime

Posts with mentions or reviews of .NET Runtime. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-22.
  • Airline keeps mistaking 101-year-old woman for baby
    1 project | news.ycombinator.com | 28 Apr 2024
    It's an interesting "time is a circle" problem given that a century only has 100 years and then we loop around again. 2-digit years is convenient for people in many situations but they are very lossy, and horrible for machines.

    It reminds me of this breaking change to .Net from last year.[1][2] Maybe AA just needs to update .Net which would pad them out until the 2050's when someone born in the 1950s would be having...exactly the same problem in the article. (It is configurable now so you could just keep pushing it each decade, until it wraps again).

    Or they could use 4-digit years.

    [1] https://github.com/dotnet/runtime/issues/75148

  • The software industry rapidly convergng on 3 languages: Go, Rust, and JavaScript
    1 project | news.ycombinator.com | 24 Apr 2024
    These can also be passed as arguments to `dotnet publish` if necessary.

    Reference:

    - https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...

    - https://github.com/dotnet/runtime/blob/main/src/coreclr/nati...

    - https://github.com/dotnet/runtime/blob/5b4e770daa190ce69f402... (full list of recognized keys for IlcInstructionSet)

  • The Performance Impact of C++'s `final` Keyword
    6 projects | news.ycombinator.com | 22 Apr 2024
    Yes, that is true. I'm not sure about JVM implementation details but the reason the comment says "virtual and interface" calls is to outline the difference. Virtual calls in .NET are sufficiently close[0] to virtual calls in C++. Interface calls, however, are coded differently[1].

    Also you are correct - virtual calls are not terribly expensive, but they encroach on ever limited* CPU resources like indirect jump and load predictors and, as noted in parent comments, block inlining, which is highly undesirable for small and frequently called methods, particularly when they are in a loop.

    * through great effort of our industry to take back whatever performance wins each generation brings with even more abstractions that fail to improve our productivity

    [0] https://github.com/dotnet/coreclr/blob/4895a06c/src/vm/amd64...

    [1] https://github.com/dotnet/runtime/blob/main/docs/design/core... (mind you, the text was initially written 18 ago, wow)

  • Java 23: The New Features Are Officially Announced
    5 projects | news.ycombinator.com | 17 Apr 2024
    If you care about portable SIMD and performance, you may want to save yourself trouble and skip to C# instead, it also has an extensive guide to using it: https://github.com/dotnet/runtime/blob/69110bfdcf5590db1d32c...

    CoreLib and many new libraries are using it heavily to match performance of manually intensified C++ code.

  • Locally test and validate your Renovate configuration files
    4 projects | dev.to | 9 Apr 2024
    DEBUG: packageFiles with updates (repository=local) "config": { "nuget": [ { "deps": [ { "datasource": "nuget", "depType": "nuget", "depName": "Microsoft.Extensions.Hosting", "currentValue": "7.0.0", "updates": [ { "bucket": "non-major", "newVersion": "7.0.1", "newValue": "7.0.1", "releaseTimestamp": "2023-02-14T13:21:52.713Z", "newMajor": 7, "newMinor": 0, "updateType": "patch", "branchName": "renovate/dotnet-monorepo" }, { "bucket": "major", "newVersion": "8.0.0", "newValue": "8.0.0", "releaseTimestamp": "2023-11-14T13:23:17.653Z", "newMajor": 8, "newMinor": 0, "updateType": "major", "branchName": "renovate/major-dotnet-monorepo" } ], "packageName": "Microsoft.Extensions.Hosting", "versioning": "nuget", "warnings": [], "sourceUrl": "https://github.com/dotnet/runtime", "registryUrl": "https://api.nuget.org/v3/index.json", "homepage": "https://dot.net/", "currentVersion": "7.0.0", "isSingleVersion": true, "fixedVersion": "7.0.0" } ], "packageFile": "RenovateDemo.csproj" } ] }
  • Chrome Feature: ZSTD Content-Encoding
    10 projects | news.ycombinator.com | 1 Apr 2024
    https://github.com/dotnet/runtime/issues/59591

    Support zstd Content-Encoding:

  • Writing x86 SIMD using x86inc.asm (2017)
    3 projects | news.ycombinator.com | 26 Mar 2024
  • Why choose async/await over threads?
    11 projects | news.ycombinator.com | 25 Mar 2024
    We might not be that far away already. There is this issue[1] on Github, where Microsoft and the community discuss some significant changes.

    There is still a lot of questions unanswered, but initial tests look promising.

    Ref: https://github.com/dotnet/runtime/issues/94620

  • Redis License Changed
    11 projects | news.ycombinator.com | 20 Mar 2024
    https://github.com/dotnet/dotnet exists for source build that stitches together SDK, Roslyn, runtime and other dependencies. A lot of them can be built and used individually, which is what contributors usually do. For example, you can clone and build https://github.com/dotnet/runtime and use the produced artifacts to execute .NET assemblies or build .NET binaries.
  • Garnet – A new remote cache-store from Microsoft Research
    6 projects | news.ycombinator.com | 18 Mar 2024
    Yeah, it kind of is. There are quite a few of experiments that are conducted to see if they show promise in the prototype form and then are taken further for proper integration if they do.

    Unfortunately, object stack allocation was not one of them even though DOTNET_JitObjectStackAllocation configuration knob exists today, enabling it makes zero impact as it almost never kicks in. By the end of the experiment[0], it was concluded that before investing effort in this kind of feature becomes profitable given how a lot of C# code is written, there are many other lower hanging fruits.

    To contrast this, in continuation to green threads experiment, a runtime handled tasks experiment[1] which moves async state machine handling from IL emitted by Roslyn to special-cased methods and then handling purely in runtime code has been a massive success and is now being worked on to be integrated in one of the future version of .NET (hopefully 10?)

    [0] https://github.com/dotnet/runtime/issues/11192

    [1] https://github.com/dotnet/runtimelab/blob/feature/async2-exp...

What are some alternatives?

When comparing nimskull and .NET Runtime you can also consider the following projects:

Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

Ryujinx - Experimental Nintendo Switch Emulator written in C#

NimProgrammingBook - Computer Programming with the Nim Programming Language -- A gentle Introduction

ASP.NET Core - ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

nimpy - Nim - Python bridge

actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Arraymancer - A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends

WASI - WebAssembly System Interface

matrix.to - A simple stateless privacy-protecting URL redirecting service for Matrix

CoreCLR - CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.

nimblas - BLAS for Nim

vgpu_unlock - Unlock vGPU functionality for consumer grade GPUs.