Domain: nim-lang.org
Stories and comments across the archive that link to nim-lang.org.
Comments · 15
-
Re:Crystal - Slick as Ruby, Fast as C
You should also check out Nim.
https://nim-lang.org/It is the Python version of Crystal. It transpiles to C/C++/Node. Has type inference, integrates Boehm GC, good FFI, meta-programming etc. Similar performance to C (CPU, RAM, static binary size), but with the productivity of Python.
Crystal seems to have more modules - both seem to have the essential libraries covered.
-
The Nim Language
I'd argue that the Nim language is another modern alternative to C.
-
Re:Lingua Franca
What you said is 100% accurate, but it also betrays the problems with Python.
What bothers me about Python is that with a newer generation of languages (many inspired by the LLVM) - Nim, Kotlin, Julia, etc. - you can have that ease of expression without sacrificing performance. So there's an opportunity cost there.
Python expanded to where it is because of your main point, which is that for 85% of things that most people do, Python is fine performance-wise.
However, many of the things you're talking about, like NNs and optimization and whatnot aren't actually being done by Python, they're being done by C/C++/Fortran. So you have this illusion of Python being the thing you're using, when the thing that makes Python usable is actually a different language.
With many newer languages, you don't have to make that tradeoff. And for a lot of people, eventually you will bump up against the illusion that Python creates, and realize you have to use something else. And you'll start getting angry as hell that you didn't/couldn't just do your project from the beginning in something that is transparently performant. You'll start wondering why the hell people aren't using something that affords expressiveness and performance, where there is no illusion and no wizard behind the curtain.
The truth is that Python is what it initially gained in popularity as: a scripting language. It's the scripting language that won the Perl-Python-TCL-Ruby competition so well that people started using it for everything, even where it shouldn't be, without even realizing they were using it for that, and even when the idea of a "scripting language" itself is kind of outdated because of these LLVM-based languages.
-
Give Nim a chance
If you really like your indentation this much, give Nim, https://nim-lang.org/
,a chance. It looks and feels like python but it is statically typed and compiled language at least. -
Where is Rust? Where is Nim?
Why aren't the Rust programming language and the Nim programming language included?
Both of those are hot languages that are being used to accomplish some really great things. Like Rust is being used to work on the way-cool Servo web browser engine, which some day may even replace Firefox's Gecko engine!
Rust and Nim are leading the way. They are like where Java was in late 1995. They're new, they're gaining traction, and soon they'll be used everywhere.
-
Another languag already compiling to WebAssembly
Nim compiles to C and then to wasm via emscripten. My favorite among the newcomers with automatic memory management, mainly because it's simple and offers pretty powerful metaprogramming and can do functional when necessary.
-
The toxic community worries me.
I lurk on the Nim IRC channel sometimes. The toxicity there can be unbelievable.
Look at these IRC logs, for example.
We see insults like:
17:46:17 ldlework EXetoC: the problem is that you're just spouting weightless and thoughtless generalizations about how you can whimsically avoid BlaXpirit_'s problems with magical design
19:08:33 ldlework Your justification is piss.
19:10:07 Zuchto BlaXpirit_: because ldlework is being an ass to the person that, as far as I know, is doing just that
20:14:47 Zuchto ldlework: still being an ass, I would say that that makes any high ground you try and claim about being a "good internet citizen" pretty much null and void.
And there's lots of unnecessary sarcasm:
19:54:14 ldlework "Nim supports generics and inheritance but if you want to do OOP programming, Fuck You, Nim is really a functional language because we arbitrarilly limit the language to mirror limitations in F# (which show up for compltely unrelated reasons than in Nim)
Then there's lunacy and quasi-psychotic ranting and rambling:
19:58:39 Triplefox I like the modules as they are
19:58:51 ldlework Triplefox: we're not trying to change the module system per-say
19:59:06 ldlework And, great as long as they're sufficient for you, we should all shut up
19:59:19 BlaXpirit_ damn you're good at arguments
19:59:19 ldlework Let us remember to run by all our shortcomings with Nim through Triplefox first
19:59:47 ldlework BlaXpirit_: because the actual answer here is "Oh right, just wait until forward type declarations."
19:59:58 Triplefox Uh, so you want to bully?
20:00:17 ldlework If Araq had just said that instead of taking some high-brow self-contradicting position for which he can provide no direct argumentation against, then we both would have been satisfied long ago.
20:00:26 ldlework Because that's all that needed to be said about this problem.
20:02:57 ldlework Triplefox: Uh, so you just want to sqaush other people's conversations that have no effect or bearing on you by making a wierd obersvation that you don't suffer the same difficulty as others?
20:02:59 ldlework What?
20:03:56 Triplefox Your conversation consists of forcing someone to say they're wrong
20:04:06 ldlework Nope
20:04:08 ldlework There is a problem X
20:04:14 ldlework there is a sufficient solution Y
20:04:23 ldlework But Y is purportedly bad because X shouldn't be a problem at all
20:04:31 ldlework so instead of providing a solution to X
20:04:32 ldlework we say
20:04:34 ldlework You're wrong.
20:04:37 ldlework You're thinking wrong.
20:04:40 ldlework You're a bad programmer.
20:04:42 ldlework Read this article.
20:04:56 ldlework If there was a solution as nice as Y, that we were missing, everyone here would have provided it.
20:05:03 ldlework Instead of the hand waving and high-browing.
20:05:37 Triplefox Except that you're getting a change already
20:05:45 ldlework Triplefox: right, that was my point, that's Y
20:05:55 ldlework But we just had to pointout how people who need Y are terrible programmers
20:06:06 ldlework Because there is some hidden unspoken thing you could do instead of X that would alleviate it
20:06:16 ldlework Just it seems no one can actually produce what that altnerative is
20:06:38 ldlework So the discrepency between "Shutup and just write your software correctly" and the blinding abscence of a simple solution being reported into the channel, speaks volumes.
20:07:25 BlaXpirit_ this happens every time on this channel
20:07:30 ldlework Maybe next time we can just skip the bullshit
20:07:33 ldlework and talk about the engineering
20:07:37 Triplefox Well, did you actually present the problem that requires your solution in a way tha -
Re:Yes
Pascal will never die. The new language, Nim, is a blend of Python and Pascal/Delphi. It's safe, fast and elegant.
-
You look like a gentleman open to the ... unusual
May I direct your attention to this?
-
If you are to learn Rust, try Nim instead
-
OTish: same lang to write an OS and website logic?
If you think this is would be a good thing, try Nim, formerly known as Nimrod. Abstraction level between C and C++ and it compiles to JS. Apparently carries less runtime baggage than emscripten.
-
Re:Such potential
Settings that change language semantics? God no. A line of code should have exactly one meaning no matter what context it is written in. How the hell can I understand code written by other developers if I have to keep checking for settings like this?
I know, right? But I kid you not: Strong Spaces
[ I got modded "Funny" for that, but hope that's just because "Scary" isn't an option. ]
-
Re:Another language that has a fatal flaw
Here's the direct link to the section of the manual, for those who, like me, couldn't believe this: http://nim-lang.org/manual.htm... (see the section titled "Strong spaces") You have to explicitly say you want this experimental parser directive, but it's still a horrible anti-feature, as far as I'm concerned.
-
Nim's community is very toxic.
I lurk on the Nim IRC channel sometimes. The toxicity there is unbelievable.
Look at these recent IRC logs, for example.
We see insults like:
17:46:17 ldlework EXetoC: the problem is that you're just spouting weightless and thoughtless generalizations about how you can whimsically avoid BlaXpirit_'s problems with magical design
19:08:33 ldlework Your justification is piss.
19:10:07 Zuchto BlaXpirit_: because ldlework is being an ass to the person that, as far as I know, is doing just that
20:14:47 Zuchto ldlework: still being an ass, I would say that that makes any high ground you try and claim about being a "good internet citizen" pretty much null and void.
And there's lots of unnecessary sarcasm:
19:54:14 ldlework "Nim supports generics and inheritance but if you want to do OOP programming, Fuck You, Nim is really a functional language because we arbitrarilly limit the language to mirror limitations in F# (which show up for compltely unrelated reasons than in Nim)
Then there's lunacy and quasi-psychotic ranting and rambling:
19:58:39 Triplefox I like the modules as they are
19:58:51 ldlework Triplefox: we're not trying to change the module system per-say
19:59:06 ldlework And, great as long as they're sufficient for you, we should all shut up
19:59:19 BlaXpirit_ damn you're good at arguments
19:59:19 ldlework Let us remember to run by all our shortcomings with Nim through Triplefox first
19:59:47 ldlework BlaXpirit_: because the actual answer here is "Oh right, just wait until forward type declarations."
19:59:58 Triplefox Uh, so you want to bully?
20:00:17 ldlework If Araq had just said that instead of taking some high-brow self-contradicting position for which he can provide no direct argumentation against, then we both would have been satisfied long ago.
20:00:26 ldlework Because that's all that needed to be said about this problem.
20:02:57 ldlework Triplefox: Uh, so you just want to sqaush other people's conversations that have no effect or bearing on you by making a wierd obersvation that you don't suffer the same difficulty as others?
20:02:59 ldlework What?
20:03:56 Triplefox Your conversation consists of forcing someone to say they're wrong
20:04:06 ldlework Nope
20:04:08 ldlework There is a problem X
20:04:14 ldlework there is a sufficient solution Y
20:04:23 ldlework But Y is purportedly bad because X shouldn't be a problem at all
20:04:31 ldlework so instead of providing a solution to X
20:04:32 ldlework we say
20:04:34 ldlework You're wrong.
20:04:37 ldlework You're thinking wrong.
20:04:40 ldlework You're a bad programmer.
20:04:42 ldlework Read this article.
20:04:56 ldlework If there was a solution as nice as Y, that we were missing, everyone here would have provided it.
20:05:03 ldlework Instead of the hand waving and high-browing.
20:05:37 Triplefox Except that you're getting a change already
20:05:45 ldlework Triplefox: right, that was my point, that's Y
20:05:55 ldlework But we just had to pointout how people who need Y are terrible programmers
20:06:06 ldlework Because there is some hidden unspoken thing you could do instead of X that would alleviate it
20:06:16 ldlework Just it seems no one can actually produce what that altnerative is
20:06:38 ldlework So the discrepency between "Shutup and just write your software correctly" and the blinding abscence of a simple solution being reported into the channel, speaks volumes.
20:07:25 BlaXpirit_ this happens every time on this channel
20:07:30 ldlework Maybe next time we can just skip the bullshit
20:07:33 ldlework and talk about the engineering
20:07:37 Triplefox Well, did you actually present the problem that requires your solution in a way -
Re:At least it has a Wikipedia page
Nim is a fucking joke. That's why it doesn't have a Wikipedia page.
I lurk on their IRC channel sometimes. The idiocy there is unbelievable.
Look at the IRC logs for today, for example.
We see insults like:
17:46:17 ldlework EXetoC: the problem is that you're just spouting weightless and thoughtless generalizations about how you can whimsically avoid BlaXpirit_'s problems with magical design
19:08:33 ldlework Your justification is piss.
19:10:07 Zuchto BlaXpirit_: because ldlework is being an ass to the person that, as far as I know, is doing just that
20:14:47 Zuchto ldlework: still being an ass, I would say that that makes any high ground you try and claim about being a "good internet citizen" pretty much null and void.
And there's lots of unnecessary sarcasm:
19:54:14 ldlework "Nim supports generics and inheritance but if you want to do OOP programming, Fuck You, Nim is really a functional language because we arbitrarilly limit the language to mirror limitations in F# (which show up for compltely unrelated reasons than in Nim)
Then there's lunacy and quasi-psychotic ranting and rambling:
19:58:39 Triplefox I like the modules as they are
19:58:51 ldlework Triplefox: we're not trying to change the module system per-say
19:59:06 ldlework And, great as long as they're sufficient for you, we should all shut up
19:59:19 BlaXpirit_ damn you're good at arguments
19:59:19 ldlework Let us remember to run by all our shortcomings with Nim through Triplefox first
19:59:47 ldlework BlaXpirit_: because the actual answer here is "Oh right, just wait until forward type declarations."
19:59:58 Triplefox Uh, so you want to bully?
20:00:17 ldlework If Araq had just said that instead of taking some high-brow self-contradicting position for which he can provide no direct argumentation against, then we both would have been satisfied long ago.
20:00:26 ldlework Because that's all that needed to be said about this problem.
20:02:57 ldlework Triplefox: Uh, so you just want to sqaush other people's conversations that have no effect or bearing on you by making a wierd obersvation that you don't suffer the same difficulty as others?
20:02:59 ldlework What?
20:03:56 Triplefox Your conversation consists of forcing someone to say they're wrong
20:04:06 ldlework Nope
20:04:08 ldlework There is a problem X
20:04:14 ldlework there is a sufficient solution Y
20:04:23 ldlework But Y is purportedly bad because X shouldn't be a problem at all
20:04:31 ldlework so instead of providing a solution to X
20:04:32 ldlework we say
20:04:34 ldlework You're wrong.
20:04:37 ldlework You're thinking wrong.
20:04:40 ldlework You're a bad programmer.
20:04:42 ldlework Read this article.
20:04:56 ldlework If there was a solution as nice as Y, that we were missing, everyone here would have provided it.
20:05:03 ldlework Instead of the hand waving and high-browing.
20:05:37 Triplefox Except that you're getting a change already
20:05:45 ldlework Triplefox: right, that was my point, that's Y
20:05:55 ldlework But we just had to pointout how people who need Y are terrible programmers
20:06:06 ldlework Because there is some hidden unspoken thing you could do instead of X that would alleviate it
20:06:16 ldlework Just it seems no one can actually produce what that altnerative is
20:06:38 ldlework So the discrepency between "Shutup and just write your software correctly" and the blinding abscence of a simple solution being reported into the channel, speaks volumes.
20:07:25 Bla