8 ms·
nim is memory safe, python syntax, emits c/c++/js. It really deserves more love and publicity. more mature than zig, much easier than rust.
by synergy20 1y ago
nim is memory safe, python syntax, emits c/c++/js. It really deserves more love and publicity.
more mature than zig, much easier than rust.
- netbioserror 1y agoIt doesn't seem as exciting as those because it doesn't have a whiz-bang-pow killer feature (other than very robust metaprogramming), but it's very mature, and breezy to write high-performance software.
- almostgotcaught 1y ago> other than very robust metaprogramming lol then i guess zig's comptime isn't a "whiz-bang-pow killer feature" either
- netbioserror 1y agoMetaprogramming isn't exactly new. I guess the novelty is that its history in the systems language space is spotty, and has only recently become usable in the way a Lisper might want to use it.
- QQ00 1y agowhat programming languages have the metaprogramming capabilities that a lisper would want to look at to learn/use it?
- netbioserror 1y agoNim, for one. It has an incredibly powerful macro and template system. But other languages with similar macro power include Elixir and Julia. D has a generic system similar to Nim's, and a mixin system similar to Nim's templates, but doesn't have a powerful AST-manipulating macro system like the above languages.
- almostgotcaught 1y agothis is like asking which restaurants have mom's cooking - none but there are plenty that are close enough and don't require you to travel all the way back to wherever your moms lives.
- almostgotcaught 1y ago> Metaprogramming isn't exactly new My guy what exactly do you think comptime is? More to the point: what exactly do you think metaprogramming is...?
- netbioserror 1y agoMetaprogramming is writing programs that generate programs. It's been around since the beginning of programming languages. I'm still not sure what you're trying to dunk on me with here.
- elcritch 1y agoIt’s not really. Zig emphasis on it to replace generics is somewhat unique, but ultimately it’s not different than what Nim (and D) have also done for many years. Nim has a full compile time VM. You can even compile it into a program to run Nim scripts.
- metaltyphoon 1y ago> python syntax I don't mind but many do so I don't see this as a plus.
- tinfoilhatter 1y agoIt's too bad that the BDFL of Nim (Araq / Andreas) treats the language like his personal compiler development playground. This has led to a hard fork of the compiler, many experienced and frustrated developers leaving the community and language behind, and an extremely fragmented ecosystem. He is also very difficult to work with and isn't very welcoming to newcomers. The community "leaders" / moderation team is also full of abrasive individuals with fragile egos.
- cenamus 1y agoWith hard fork do you mean the 2.x.x version?
- tinfoilhatter 1y agoApologies for not providing a link! https://github.com/nim-works/nimskull https://github.com/nim-works/nimskull is the hard fork I was referring to.
- vintagedave 1y ago> The project was started as a fork of Nim … The overall language will be evolved into something entirely different and incompatible. A hard fork with a goal of being incompatible _sounds_ more strong behaviour on the part of those who forked, than on the original language owner. I’m sure there’s a lot of context I’m missing. But what is the story behind this?
- tinfoilhatter 1y ago> I’m sure there’s a lot of context I’m missing. But what is the story behind this? There was a falling out between the Nim core development team and several volunteer compiler developers. The former seemed to be paying more attention to their personal projects, while still desiring to maintain their positions of control and authority over Nim and its direction. The latter group grew increasingly frustrated, the situation became extremely toxic, and ultimately Nim lost several talented compiler developers to the hard fork. I believe the goal of being incompatible with Nim resulted from the developers involved in the hard fork feeling like the Nim development team had done a poor job of designing certain portions of the language and compiler. I'm pretty sure they ditched the C++ backend, and made some substantial changes to the langauge to bring it more inline with their ideals. I'm not involved in the development of either project, so a much better source of information would be the Nimskull project's developers themselves and the core Nim development team.
- postepowanieadm 1y agoHow does it compare with Crystal?
- michaelcampbell 1y agoSyntactically, like Python compares to Ruby.
- xigoi 1y agoOne of the main differences is that Nim is not object-oriented.
- stefantalpalaru 1y ago[dead]