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.
How does it compare with Crystal?
Nim 2.2.6
11–20 of 98 posts
Re: Nim 2.2.6
#12Nim has a python-like syntax, but I wish they'd gone farther, using `def` instead of `proc` and a `print` function instead of the `echo` statement. Though even if they did those things, I'm not sure it would really feel like programming Python. As a long-time Python programmer, I was drawn to trying the language partly because of the syntax, but as soon as I tried to write something substantial, Nim's heritage in lan…
Why is it named proc?
Procedure used to be the common term as opposed to a function which is a mathematical entity that has no side effects. And indeed in Nim func is syntactic sugar for proc {.noSideEffect.}. Naming it def would not make sense because Nim also provides an iterator and a method keyword, whereas def stands for define.
Re: Nim 2.2.6
#13Nim has a python-like syntax, but I wish they'd gone farther, using `def` instead of `proc` and a `print` function instead of the `echo` statement. Though even if they did those things, I'm not sure it would really feel like programming Python. As a long-time Python programmer, I was drawn to trying the language partly because of the syntax, but as soon as I tried to write something substantial, Nim's heritage in lan…
$ tt stats
Time Tracking Stats
Total entries: 39
First entry: Oct 21, 2025 23:04
Last entry: Oct 30, 2025 18:29
Tracking since: 228h 34m
Days tracked: 5
$ tt "working on xyz today"
Logged at 11:38:44
$ tt today
Today (1 entries)
11:38:44 working on xyz today
The code is pretty damn ugly though, I feel like I am working with perl: proc groupIntoThreads(entries: seq[Entry], threshold: Duration): seq[seq[Entry]] =
if entries.len == 0:
return @[]
var sorted = entries
sorted.sort(proc (a, b: Entry): int =
if a.timestamp b.timestamp: 1
else: 0
)
result = @[]
var currentThread = @[sorted[0]]
for i in 1.. threshold:
result.add(currentThread)
currentThread = @[sorted[i]]
else:
currentThread.add(sorted[i])
if currentThread.len > 0:
result.add(currentThread)Re: Nim 2.2.6
#14nim is memory safe, python syntax, emits c/c++/js. It really deserves more love and publicity. more mature than zig, much easier than rust.
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…
Re: Nim 2.2.6
#15Earlier quoted context omitted.
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…
With hard fork do you mean the 2.x.x version?
https://github.com/nim-works/nimskull is the hard fork I was referring to.
Re: Nim 2.2.6
#16Thank you very much to everyone who has contributed to the development of this superior language. Nim Compiler continues to be one of the most wonderful languages I have worked with. With the speed of C and the simplicity of Python, it has allowed me to write a lot of cool software.
I do not know where I would be if Nim did not exist in my life.
Re: Nim 2.2.6
#17Nim has a python-like syntax, but I wish they'd gone farther, using `def` instead of `proc` and a `print` function instead of the `echo` statement. Though even if they did those things, I'm not sure it would really feel like programming Python. As a long-time Python programmer, I was drawn to trying the language partly because of the syntax, but as soon as I tried to write something substantial, Nim's heritage in lan…
I have been meaning to explore Nim for a while because it feels like "golang, but python syntax and dev experience." I vibe coded a simple tool, tt, that allows me to track time to a central log from all my devices. Realllly simple: $ tt stats Time Tracking Stats Total entries: 39 First entry: Oct 21, 2025 23:04 Last entry: Oct 30, 2025 18:29 Tracking since: 228h 34m Days tracked: 5 $ tt "working on xyz today" Logged…
Because other than them I don’t think the equivalent Python code would look much different. Maybe more concise, e.g. you could replace the second section with something like `sorted = entries.sorted(key=lambda entry: entry.timestamp)`.
Re: Nim 2.2.6
#18nim is memory safe, python syntax, emits c/c++/js. It really deserves more love and publicity. more mature than zig, much easier than rust.
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…
Re: Nim 2.2.6
#19Thank you for working on the Nim Compiler. This is great. Another great release. The Nim Compiler continues to move forward. Thank you very much to everyone who has contributed to the development of this superior language. Nim Compiler continues to be one of the most wonderful languages I have worked with. With the speed of C and the simplicity of Python, it has allowed me to write a lot of cool software. I do not kn…
Re: Nim 2.2.6
#20nim is memory safe, python syntax, emits c/c++/js. It really deserves more love and publicity. more mature than zig, much easier than rust.
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…