3 ms·
> OTOH there seems to be a rapid accumulation of features... I think you're stretching your narrative a bit. They're working on a new GC algorithm that (if you
by kbd 6y ago
> OTOH there seems to be a rapid accumulation of features...
I think you're stretching your narrative a bit. They're working on a new GC algorithm that (if you watch Rumpf's very interesting presentation[1] on it from today) is a significant performance improvement over their current GC.
What features are you referring to regarding the "ever increasing scope of the language"?
[1] https://www.youtube.com/watch?v=aUJcYTnPWCg https://www.youtube.com/watch?v=aUJcYTnPWCg
- sidkshatriya 6y agoIt is an impression (possibly an unfounded/unfair one) and the whole point of my question is for others to give me their opinions. Nim is certainly a feature-full language. Look at the left sidebar on https://nim-lang.org/docs/manual.html https://nim-lang.org/docs/manual.html and you will see a lot of things listed! I wonder how many of those features work well with others, how many work partially and how many are somewhat abandoned. I'm looking to add Nim to my arsenal in the future. I'm positive on the language -- please don't misunderstand. I just wanted some opinions!
- planetis 6y agoEverything that is new or was causing problems, moved under expiremental https://nim-lang.org/docs/manual_experimental.html https://nim-lang.org/docs/manual_experimental.html These are the features you are describing, the ones needing more refinement.
- planetis 6y agostuff like concepts and code reordering are planned to eventually became stable. Nowadays everything is decided in the RFCs repo https://github.com/nim-lang/RFCs/issues https://github.com/nim-lang/RFCs/issues before a PR hits the main repo.
- kbd 6y ago> Look at the left sidebar... Look at the Go language manual for comparison[1]. Go is simple (some would argue, simplistic) and there's a lot there too. Programming languages are complex beasts. "Number of things in the sidebar of the manual" is a poor way to judge a programming language. > I like the philosophy of evolving your language slowly and consolidating before adding newer and newer features. The Nim book[2] came out in 2017 and the language has maintained compatibility with it through their 1.0 release. Nim seems pretty stable and "well baked" to me. One of the awesome things about Nim is that many features in the language can be implemented through macros. (AFAIK their async/await feature is implemented in Nim itself through macros.) So, I get the impression that Nim has a very solid core and builds things on top of that core. The fact that they can implement Rust-style move/borrow semantics without significantly changing the language is a really good sign to me of the language's power/design. Personally, I wish Nim was what we were all using instead of Go. Nim has all the strong typing features (like generics) that Go is still working on, while also having the equivalent of goroutines and channels (though I haven't played with those in Nim myself yet), pleasant syntax, strong metaprogramming features, very strong operator overloading that helps make it suited for domains like data science, can generate a static binary, and on and on. I'd strongly recommend everyone take a look :) I'm personally psyched that a repl (INim) is being worked on (and works now), because a good repl is something I really value in a language. There's a short presentation about it from today's conference as well[3]. The fact that the author keeps mentioning IPython gives me great hope for it. Edit: in fact, upon rewatching, that INim video would be a great sales pitch for the language for you, as the author details his trip through a bunch of different well-known languages and why Nim meets the sweet spot of everything he's looking for. [1] https://golang.org/ref/spec https://golang.org/ref/spec [2] https://www.manning.com/books/nim-in-action https://www.manning.com/books/nim-in-action [3] https://youtu.be/Qa_9vut4TzQ https://youtu.be/Qa_9vut4TzQ
- sidkshatriya 6y ago> > Look at the left sidebar... > Look at the Go language manual for comparison[1]. Go is simple (some would argue, simplistic) and there's a lot there too. Programming languages are complex beasts. "Number of things in the sidebar of the manual" is a poor way to judge a programming language. I don't think you're being fair to me here! Look at the _content_ of the sidebar of https://nim-lang.org/docs/manual.html https://nim-lang.org/docs/manual.html and you will see the massive variety of language features listed there for the Nim language. I am certainly not talking about the raw _length_ or _number_ of items in any list which is definitely a crude and silly measurement. Here your link to Golang's specification is missing my point.
- pansa2 6y ago> > OTOH there seems to be a rapid accumulation of features... > I think you're stretching your narrative a bit. They're working on a new GC algorithm... The thing is, according to the documentation [0], Nim already has six different garbage collectors. [0] https://nim-lang.org/docs/gc.html https://nim-lang.org/docs/gc.html
- kbd 6y agoDo those represent a "rapid accumulation of features" that create an "ever-increasing scope of the language" as the OP claims, or are they just tuning options? Keep in mind the Nim team didn't create the Boehm or Go garbage collectors, and the new arc/orc are the same, with orc having a cycle detector. If anything, it's a testament to the design and stability of the language that the GC algorithm is swappable. Edit: for comparison, Java has four different GC algorithms to choose from[1] with a whole lot of options for tuning[2]: [1] https://www.baeldung.com/jvm-garbage-collectors https://www.baeldung.com/jvm-garbage-collectors [2] https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html https://www.oracle.com/java/technologies/javase/vmoptions-js...
- gmfawcett 6y agoMany languages have pluggable GCs. Modern Java VMs have at least four (serial, parallel, CMS, G1). As long as they are interchangeable, it's not really a language design issue.
- sorokod 6y agoalso ZGC and Shenandoah