It 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.
It’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.
Metaprogramming 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.
Nim, 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.
this 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.
Metaprogramming 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.
It'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.
> language like his personal compiler development playground
re personal compiler development playground: I don't see this for Nim 2. Nimony/Nim3 is more of a "playground", but rightfully so: he is creating a new major version of the language and aiming to improve the architecture of the compiler.
> He is also very difficult to work with and isn't very welcoming to newcomers
I don't have full context on the drama behind the fork, but I don't see Araq not being very "welcoming". Araq replies on the forums very consistently, replying to new-comer questions, which one might consider as "simple questions". Araq will state his personal & honest opinions, which may come off as abrasive or "un-welcoming" in your opinion. I don't agree with everything he says but that's OK.
From what I can tell the fork seems to be due to differences in direction of the language and w.r.t working together: differences in communication styles. But again, I don't know.
Personally, I see no reason to use the fork (Nimskull) over Nim, nor would I ever see any individual or company picking up Nimskull unless they were very deeply familiar with Nim (this is a small population of people). From a skim of the Nimskull repo, there is no website (there is a copy of the Nim manual), no forums (just some chatrooms), no clear documentation on the future direction, no documentation on differences for someone not familiar with Nim, etc. - why would anyone pick up Nimskull unless they knew Nim well? Please take this as constructive criticism. e.g. if any feature of the language/compiler/tooling is "better" or planned to be better: highlight it, summarize the long GitHub issue/projects discussions in a blog, etc.
> re personal compiler development playground: I don't see this for Nim 2. Nimony/Nim3 is more of a "playground", but rightfully so: he is creating a new major version of the language and aiming to improve the architecture of the compiler.
Araq likes to work on the shiny flashy things he finds fun / interesting to work on. I'm not going to fault him for that, but things like atomics on Windows are still broken. People have been complaining about the stdlib and documentation + lack of a formal specification for at least a decade.
> From what I can tell the fork seems to be due to differences in direction of the language and w.r.t working together: differences in communication styles. But again, I don't know.
There was quite a bit of drama that caused the hard fork to materialize. Differences in communication styles is definitely describing the drama that unfolded, extremely mildly. I don't work on the fork or use it, but some of the more talented compiler developers who were previously contributing to Nim, left Nim to go work on Nimskull.
> Araq will state his personal & honest opinions, which may come off as abrasive or "un-welcoming" in your opinion. I don't agree with everything he says but that's OK.
Nope. This is a sop, an equivalent to the non-apology "I'm sorry you took what I said so badly".
Aggression masquerading as "honesty" has no place in any organisation that wants to be taken seriously.
It's most certainly not "OK" when Andreas' personal opinions are expressed in ad-hominem attacks.
Nim unfortunately has a toxic Dictator at the top, and his subordinates defend his behaviours. While this continues nobody should take Nim seriously.
> Nim unfortunately has a toxic Dictator at the top
Araq has opinions that he defends, but you can and absolutely should try to sway or change them. I see this all the time on Discord and Forum. And I see people win over just as much as them losing.
I don't have a strong opinion if this is healthy or not, but it's probably why I would be a bad BDFL =). All in all, I don't think dictatorship is a right word here.
My conversation with Andreas on a public forum featured ad-hominem attacks from Andreas which continued in a private email exchange between us. The man is closed-minded and had zero interest in discussion beyond aggressive insults. You're welcome to contact me privately if you'd like to read the exchange.
>Nim unfortunately has a toxic Dictator at the top, and his subordinates defend his behaviours. While this continues nobody should take Nim seriously.
I can mention just exactly the same pattern with one widespreaded OS that anyone is taking seriously.
And I know one very popular and often mentioned systems programming language with "community" driven design process with inclusive and stuff which is in some kind of stagnation without BDFL (async fragmented ecosystem without C++ burden of 40 years of legacy).
Why do you think that "welcoming" is a must for successful IT projeсt?
Do you think aggression is a must for any successful project? Or can you entertain the possibility that projects might progress even further and faster without it?
You point to Linux but assume that Linus' infamous foul behaviour has been beneficial. This is a very basic confusion of correlation and causation.
You suggest that being "welcoming" is antithetical to "success" without defining "success".
> He is also very difficult to work with and isn't very welcoming to newcomers.
This hasn't been my experience at all.
When I first tried Nim, years ago, I came across an inconsistency in a database connector in the standard library after only a couple of weeks. I pinged him to ask if I was understanding it correctly and confirm it was a bug. He agreed it should be updated, so I put together a pull request. It was reviewed quickly, we went back and forth a couple of times over some details, he asked me to include some documentation updates, and it was merged without issue in a couple of days in total.
Given that I came to the language as a complete newcomer and had commits to the standard library less than three weeks later with the BDFL's approval, I simply can't agree that he's difficult to work with or not welcoming.
> The community "leaders" / moderation team is also full of abrasive individuals with fragile egos.
I certainly hope this isn't the case any longer. As one of the moderators I feel the current group is very patient and welcoming. At least that's what we're trying for, no one is perfect so I'm certain you can find counter examples. But as a whole I think we're doing pretty well. If you have any specific complaints we would love to hear them. They can be left anonymously in our community feedback form, or you can find we anywhere in the community for a chat.
It makes sense you feel that way, as you're one of the moderators. I feel quite differently. Thanks for the offer, but there's a reason why Nim hemorrhages users as fast as it gains them, and a big reason for that, IMO, is the toxic community which definitely includes the moderation team.
It's cheap to hide behind a pseudonym here and complain as you do. Given the time scales you mention and how you are complaining, I have a theory under what nick you were present in the Nim community though.
If I'm correct, I find your complaints especially about our moderators especially unfair. Arguably the only drama with moderators was in the context of Dom and you know that.
I really don't see where any of the current moderators can be described as "toxic", but you'll just say "you're one of them" anyway, so why do I even bother...
FWIW, I agree that Araq is an abrasive character and probably not a great community leader for an open source project.
But I disagree with your take on the moderation team. I don't know if you have specific names to call out, but PMunch, miran and the rest of the team have been nothing but welcoming, in my experience.
Of course, I'm heavily biased, but also very interested in mediating any such issues. I obviously can't, or wouldn't want to, force you to report anything. But it would be very appreciated if you, or anyone else reading this with similar experiences, could report it here: https://docs.google.com/forms/d/1ZWa2GONAM825IxFt8ZOdfn_XeJy...
> He is also very difficult to work with and isn't very welcoming to newcomers.
That's a charitable way to describe him. In our one direct interaction, he was condescending to the point of insult. (I believe he was incorrect as well, but even if he was always correct, I would consider it wrong to treat someone badly.) After browsing the Nim forum and issue tracker, I found that this was routine behavior for him.
Nim has some nice features, but I don't want to depend on anything that's subject to the whims of a personality like that, and I certainly don't want to interact with him again.
You're right - I probably am being too charitable in my description of him. To his credit, he's gotten better over the years, but I still check in on the forums and find examples of this behavior. Andreas could be the most talented compiler developer in the world, but as long as community members are being treated poorly for asking questions, the language will continue to languish in relative obscurity.
Unfortunately this has been my experience. Andreas was extremely abrasive towards me personally, and views he expressed to me regarding climate change were bizarre and aggressive. His behaviour led me to ditch Nim and explore Go instead, and I couldn't be happier. Sadly Nim is a permanent no-go for me.
If someone stumbles upon this comment, don't be quick to discard the Nim language. Please do your own research and make your own opinion on the matter.
I believe this and many of comments by tinfoilhatter under this post are not in good faith and in the most charitable interpretation written by a uninformed person or are severely outdated.
> Thanks for the offer, but there's a reason why Nim hemorrhages users as fast as it gains them, and a big reason for that, IMO, is the toxic community which definitely includes the moderation team.
I have to challenge this, because for the last couple years, there have been almost no incidents or drama. Moderation was almost exclusively dealing with spam messages. I think, on the forum, a couple posts were closed because of heated or offtopic discussions. But in all cases, participants were agreeing with the decision of mods (you can see them leaving a 'like' on mod's message).
> There was quite a bit of drama that caused the hard fork to materialize. Differences in communication styles is definitely describing the drama that unfolded, extremely mildly. I don't work on the fork or use it, but some of the more talented compiler developers who were previously contributing to Nim, left Nim to go work on Nimskull.
I know that some of people that left were also the ones causing problems with moderation and being toxic. I don't want anyone to draw strong conclusions, but Nim community was much healthier and friendly after the fork people and certain moderator leaving the project.
> 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.
This is just false. You can see Araq answering the noob questions on the forum all the time. He might be not the best person to do that, because his answers on the short side. I believe, noobs often need more context, examples and explanations than he's providing. But it's thought and effort that counts. Some people even hate when you treat them as complete beginner and try to nourture them common CS knowledge.
> I have to challenge this, because for the last couple years, there have been almost no incidents or drama. Moderation was almost exclusively dealing with spam messages. I think, on the forum, a couple posts were closed because of heated or offtopic discussions. But in all cases, participants were agreeing with the decision of mods (you can see them leaving a 'like' on mod's message).
> I know that some of people that left were also the ones causing problems with moderation and being toxic. I don't want anyone to draw strong conclusions, but Nim community was much healthier and friendly after the fork people and certain moderator leaving the project.
What definition of the words toxic, healthy, and friendly are you using?
> This is just false. You can see Araq answering the noob questions on the forum all the time. He might be not the best person to do that, because his answers on the short side. I believe, noobs often need more context, examples and explanations than he's providing. But it's thought and effort that counts. Some people even hate when you treat them as complete beginner and try to nourture them common CS knowledge.
Maybe if he's not the best person to do that, he shouldn't be doing it? You seem to just be playing devil's advocate here, instead of offering any real example that contradicts my claims.
> 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.
Last non-bot commit was over 2 weeks ago, and it seems to be mostly 1 account working on it. I don't think it looks active enough to be the big schism it's made out to be?
Nim itself has very few core developers. Comparing the number of developers involved in a hard fork to the number of Nim developers is silly, in my opinion at least.
The project has 21.5k commits authored, most of them oriented at replacing the existing compiler backend with a CPS-oriented one. Nim 3.0 is replacing the backend with one that is focused on CPS. There is no doubt that the developers responsible for the hard fork of Nim inspired Nim 3.0.
Yes, it very much is the big schism it's made out to be. I don't know what kind of activity level you expect, when the Nim language itself has few core developers working on it.