News for hackers. Stuff that matters.
Re:NimConf 2020 Videos by kbd on Saturday June 20, 2020 @04:17PM (#23586905)
> 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

Re:NimConf 2020 Videos by sidkshatriya on Saturday June 20, 2020 @04:45PM (#23587144)
It 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 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!

Re:NimConf 2020 Videos by kbd on Saturday June 20, 2020 @05:24PM (#23587436)
> 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

[2] https://www.manning.com/books/nim-in-action

[3] https://youtu.be/Qa_9vut4TzQ

Re:NimConf 2020 Videos by sidkshatriya on Sunday June 21, 2020 @08:57AM (#23591757)
> > 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 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.

Re:NimConf 2020 Videos by planetis on Saturday June 20, 2020 @05:18PM (#23587386)
Everything that is new or was causing problems, moved under expiremental https://nim-lang.org/docs/manual_experimental.html These are the features you are describing, the ones needing more refinement.
Re:NimConf 2020 Videos by planetis on Saturday June 20, 2020 @05:46PM (#23587605)
stuff 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 before a PR hits the main repo.
Re:NimConf 2020 Videos by pansa2 on Saturday June 20, 2020 @06:17PM (#23587861)
> > 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

Re:NimConf 2020 Videos by kbd on Saturday June 20, 2020 @06:42PM (#23588040)
Do 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

[2] https://www.oracle.com/java/technologies/javase/vmoptions-js...

Re:NimConf 2020 Videos by gmfawcett on Saturday June 20, 2020 @06:57PM (#23588151)
Many 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.
Re:NimConf 2020 Videos by sorokod on Saturday June 20, 2020 @07:44PM (#23588410)
also ZGC and Shenandoah