Here is a little update regarding Nim's development: https://www.youtube.com/watch?v=xUsAKstP-AQ
It is my hope we do more of these and become better at producing videos. ;-)
It's my hope that we see more posts in the Nim blog, and generally more written materials outside of the IRC channel. A summary of the video would be nice.
IMO, following Nim development is rather difficult, compared to some other languages, and that's a pity.
Finally got around to watching the video. This was awesome. Thank you for producing it :-)
These kind of videos provide such good insight into the thought process of the core developers. I really appreciate it.
But, it would not be the internet if I didn't have some critique :-P
My biggest concern is: I am confused about the timeline. What features are done and which version of Nim has these features? Or if a feature is not done, what is the eta for those features, or at least the percent complete?
For example, the discussion about GDB support and the state of GDB front ends was very interesting, but I did not understand the final conclusion about the state of GDB support. Does the latest Nim support better variable printing? Was the project abandoned? Araq gave up on lldb, but Arne did some GDB python integration, what was the final result of that?
I'm personally very interested in the state of destructors, but it is unclear to me how finished that feature is. From what I know, the feature itself is implemented, but in alpha state. How far along is new string and seq implementation. When is that expected to arrive? Where is it being worked on (some secret local branch on Araq's pc, lol)?
This feature was in the "What we have done" category, but it does not seem really "done".
I have the same questions regarding the incremental compilation. Bootstrapping with incremental is awesome, and the discussion was very insightful, but what is the next step for this feature, and when / where is incremental being worked on?
I don't want Araq and Arne to just mindlessly read the release notes / change logs, but I would appreciate a clear statement about when I can use these features as an end user.
This dev blog is probably not the best place for that info, but It highlights something I wish Nim had: A clear high level roadmap and status about what is currently being worked on.
I don't think github issues is good enough for this. It requires something more curated and more prominently advertised (on the main nim website probably).
TLDR;
The video was awesome.
Thank you for making it.
Please make more videos.
I want a Nim roadmap :-D
For example, the discussion about GDB support and the state of GDB front ends was very interesting, but I did not understand the final conclusion about the state of GDB support. Does the latest Nim support better variable printing? Was the project abandoned? Araq gave up on lldb, but Arne did some GDB python integration, what was the final result of that?
tools/nim-gdb.py and bin/nim-gdb is in devel.
I'm personally very interested in the state of destructors, but it is unclear to me how finished that feature is. From what I know, the feature itself is implemented, but in alpha state. How far along is new string and seq implementation. When is that expected to arrive? Where is it being worked on (some secret local branch on Araq's pc, lol)?
It's in devel, unusable, but behind the --gc:destructors switch. Beta quality is expected to arrive end of January.
I have the same questions regarding the incremental compilation. Bootstrapping with incremental is awesome, and the discussion was very insightful, but what is the next step for this feature, and when / where is incremental being worked on?
Same story, behind an --incremental:on switch but not hidden in a branch. Next steps:
Unknown release date.
This dev blog is probably not the best place for that info, but It highlights something I wish Nim had: A clear high level roadmap and status about what is currently being worked on. I don't think github issues is good enough for this. It requires something more curated and more prominently advertised (on the main nim website probably).
Will think about this, in the past the roadmap we had was hardly maintained and github issues are but I'm sure we'll find something that works better.
New video is avaible: https://www.youtube.com/watch?v=sEQnmInxmfg
Our bullet points:
Miran:
Araq:
let x = f([1, 2, 3]) echo([1, 2, 3])
now works
Arne (krux02):
Wow. I learned something very important from that video: Objects have no overhead unless ref is used. (arne re-ordered the docs to make that clear.)
I'm about to try the nim-gdb support, eagerly ...
We produced a new video to keep you updated about Nim's development:
Enjoy and feel free to ask questions here!
Great update!
I just wanted to point out that the strformat change mentioned in the video, about the requirement to define formatValue for each custom type, is now reverted. (for good, right?).
So as of https://github.com/nim-lang/Nim/commit/59ccaa43c733c33c9d0db3c8e9a5fd303909482f, strformat once again automatically works nicely with custom types.
for good, right?
Yes, indeed. However, in the longer run we might need a $ replacement that uses "append" semantics so that we can save allocations.
You mentioned in the video that there is now a spec for the new runtime stuff. Is that different from the blog post and RFC?
Looking forward to the vaporware but tinkerable release.
BTW, TIL that valgrind is pronounced like val-grinned and that it is named after the entrance to Valhalla. Thanks @Araq for bringing some culture to a poor benighted American! ;-)