> I also think that the killer feature would be a python2Nim converter which
> works right out of the box.
That's a two-edged sword... I've been pitching a closer Nim-Python relationship
for a while now, but it's also important to maintain some boundaries. We want
to attract Python developers
With a sufficiently ugly hack, all things are possible...
import strutils
static:
proc getNimCompilerCmdLine(): string =
return staticRead("/proc/self/cmdline").replace('\0', ' ')
const nimCompilerCmdLine = getNimCompilerCmdLine()
Pardon my satiric pessimism. Nim is my #1 favorite programming language, and I
very much hope that it succeeds. But, in answer to this thread's question about
the past 9 months, I think there's very little to celebrate. Growth exists, but
it's far slower than it should be. People are
Probably not the prettiest way to do this, but here's a thought:
import times, strutils
let
startEpochTime = epochTime()
startEpochSec = ($startEpochTime).split(".")[^1]
startTimeInfo = getLocalTime(fromSeconds(startEpochTime))
startTimeStr =
{{{ [pours bleach in eyes](https://youtu.be/_pFxgmDfKP4) }}}
Here's an incomplete idea that may or may not be helpful...
There might be some fancy Windows API tricks for interacting with other console
windows, but then your code would be more difficult to port. I would first
consider the simplest solution: startProcess start / cmd with [the needed
I'm not saying that having a GitHub account should be a _requirement_ for
joining, but it could be a part of the "business logic" for new account
validation. It's very easy to implement. If you're an established Nim
developer, the forum rolls out a red carpet. If you're not, your first X posts
The biggest thing that would reduce compile time is putting the compiler on a
(quantum?) supercomputer in the cloud...
Naughty Naughty... ;)
* * *
A few random thoughts:
* I do not condone being rude on other languages' forums, but I do sympathize
with the anti-CoC sentiment. The Nim community deserves major kudos for
tolerating me and my libertarian ways. ;)
* Take snapshots of all your public message
As far as I know, the most advanced Nim development environment so far is
[VSCode](https://en.wikipedia.org/wiki/Visual_Studio_Code) \+
[this](https://github.com/pragmagic/vscode-nim)
[extension](https://marketplace.visualstudio.com/items?itemName=kosz78.nim).
Someone please correct me if I'm
@Ar:
> I think a significant portion of nim users found Nim through Rust. Not sure
> why, but there used to be some sort of competition between the two (or at
> least Nim was more known in the Rust community).
That, if true, is very interesting. I would've thought that Nim's closest
That is entirely up to Araq.
Everyone (including myself) has been hyping up the idea of [The Great Epic
Version One Point Oh
Release](https://en.wikipedia.org/wiki/Software_versioning#Version_1.0_as_a_milestone),
as if that really requires some rigid standard of achievement. I am starting
to
A long long time ago we had this crazy thing called shell scripts. We used them
to set environmental variables, build complicated command lines, etc...
February 2017 UPDATE!
But first, for context - quoting myself from [the original post (Dec
2014)](https://forum.nim-lang.org/t/671#3637):
> Get More Sites Mentioning Nim: **I recently e-mailed maintainers of the TIOBE
> proglang popularity index about Nim. The response, quoted below, shows the
> This thread scares me as a new Nim user
This brainstorming session is long expired.
* * *
Summarizing Araq's verdict with quotes from above:
{
* "Skins were part of my original Nim 'vision'."
* "I now think syntax skins should be an editor feature, not a compiler
feature, so relax."
apers, or is it a means to an end?
In [a Quora
answer](https://www.quora.com/What-do-you-say-about-Nim-programmning-language/answer/Alex-Libman-2)
I summed up what I see as Nim's top strengths: performance to productivity
ratio, safety to syntax cleanliness ratio, license simplicity (very
Excellent! :D
I wonder how this would affect Nim's standing in the
[kostya/benchmarks](https://github.com/kostya/benchmarks) (which were [just
recently mentioned](http://forum.nim-lang.org///forum.nim-lang.org/t/2687)
here), namely [matrix
Maybe we should think of it this way:
Java is referred to as a ["software
platform"](https://en.wikipedia.org/wiki/Java_\(software_platform\)), which
consists of the Java language (a flagship, but with other languages available),
javac compiler, a huge ecosystem of libraries and tools, etc.
I think the most valuable effort is that which is effective at attracting more
people to Nim, which is a force multiplier for less inspirational tasks.
Everyone knows that things like IRC and other library improvements can be done
given someone's time and effort. But many people are judging
[Crystal](https://en.wikipedia.org/wiki/Crystal_%28programming_language%29) has
gotten a highly distinguished mention in [this month's update
summary](https://archive.is/ZkkgZ#selection-691.431-691.520) of the prestigious
[TIOBE prog lang popularity index](https://www.tiobe.com/tiobe-index/):
I haven't dabbled in game programming since the 90s, but a quick look at [the
list of available engines](https://en.wikipedia.org/wiki/List_of_game_engines)
shows many choices. I hope the Nim game dev ecosystem picks a good
[Some people
say](https://en.wikipedia.org/wiki/Source_\(journalism\)#Anonymous_sources) it
stands for:
New [Indented](https://en.wikipedia.org/wiki/Off-side_rule)
[Modula-3](https://en.wikipedia.org/wiki/Modula-3).
Semi-related to this discussion:
I just added Nim to the "Languages" section of Wikipedia's [[[Comparison of
regular expression
engines]]](https://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines).
Someone more knowledgeable may wish to review and complete the "Language
Will I get in trouble for saying:
**_MySQL sucks, use PostgreSQL_** :P
That would be consistent and logical. But (IMHO) pragmas are ugly...
I am not on a crusade to take away anyone's left-wing utopia, only to preserve
my right to not be a part of it.
Some individuals and organizations (ex. Richard Stallman, FSF, and most
recently GitHub) have crossed a line in polluting the free software ecosystem
with calls for government force.
> Nim with the C backend can never be faster than C.
What we are actually comparing here is _typical_ code written in C to typical
code written in Nim. There are many examples where Nim can win out:
* _Typical_ C code is often actually partly / mostly C++, which is [often
Any high-level programming language typically provides a zip library with
random access to the compressed files.
My reply was to the first post, which was brainstorming "a methodology to
package files into a single file for distribution", with a simplified way for
the program to load its
The top-rated answer to [this SO
question](https://stackoverflow.com/questions/442026/function-overloading-by-return-type)
is a very interesting read. Some teaser quotes:
> Overloading by return type is possible and is done by some modern languages.
>
> Two of the languages I regularly (ab)use
I never understood why Nim doesn't allow this.
If you want to keep the same name and use overloading, one option is to use a
_var_ argument instead of return. This works:
proc myBirthday(n: var int) =
n = 372297600
proc myBirthday(s: var string) =
s = "October
> Why don't Nimers develop an os system?
[Mozilla Foundation](https://en.wikipedia.org/wiki/Mozilla_Foundation) gets
tens to hundreds of millions of dollars a year. Nim is getting started with a
lot less, for now.
> Why there is no a good GUI facilities? (Fortunately, we had nimx. Wish nimx
>
Nim is great on Atom. Haven't tried anything else lately. Are there any
specific benefits to VSCode over Atom?
We should start thinking of programming language performance in terms of
economic costs. We can then use the same units (Dollars / Euros / Bitcoins /
etc) to compare all aspects of programming language choice.
When we say for example that "C is faster than Python", we really mean that
it's
re @vega:
> What do you think about the possibility to specify syntax skin described in
> external nim source? This can be used like the reader macros in Lisp or like
> readtables in sweet.js
I come at this from the "big picture" and advocacy point of view. The details
of how it would be
I wouldn't say that "corporations suck" \- they are a means to an end. They
need to make things work in a cost-effective and dependable way, without making
themselves dependent on genius. Average-IQ programmers are the base, the bread
and butter of the industry, and so they are the standard.
[https://insights.stackoverflow.com/survey/2018](https://insights.stackoverflow.com/survey/2018)
^ I'd like to propose this as a discussion topic.
Some brief thoughts:
* **Python 's popularity is growing** (and all other measures seem to
confirm).
* I still think it would benefit Nim to
Our caveman ancestors had this silly belief that a tool should "do one thing
and do it well"...
But then came Nim!
_Nim does everything!_
It slices, it dices, it generates code that generates code that generates
code...
Write a kernel in Nim. Write your Web client-side in Nim. Earlier today
I think Nim just might be the first major **post-paper programming language**,
one that embraces the fact that programmers no longer deal with code the way
they did in the past. Making your code readable in notepad / print-out /
cave-wall format has tradeoffs that are no longer worth it. Pretty
**_That would be AWESOME!_**
* * *
One thing I'd like to suggest is not to become overly focused on one
centralized project and one homogenous format: audio podcast, video YouTube
channel, blog, weekly link roundup, social media page, etc. Maybe at one
instance you can do an audio interview,
This forum is Araq's property, so this conversation here is over. Please don't
reply, as this thread getting bumped would increase its annoyance.
I apologise that I've gotten drawn into a debate where it isn't appropriate.
I'm confident that I've made a correct, complete, and thorough argument
Random observation: the exe size of this chess game is **35,828 bytes** (with
nim --d:release --opt:size and then upx -9qqq --ultra-brute) (not counting the
UI dynamic libraries).
This of course is [no
record](https://en.chessbase.com/post/the-world-s-smallest-chess-engines), but
still pretty
> if the condition is never met importing xyz is wasteful
Yeah, unused imports still increase binary size despite deadCodeElim
(`--d:release` `--opt:size`). In a perfect world that would not be the case...
* * *
> you can use `from math import nil`
Yup. But I
I like having a little compiler wrapper to execute nim just the way I like it.
I wrote one for my needs called
[nimr](https://github.com/lbmn/nim/blob/master/old/cmd/nimr.nim)
[[pb]](https://pastebin.com/isfr0xRX), but I think most programmers will want
to write their own rather than deal with
Perhaps @Araq didn't mean [terrestrial
year](https://en.wikipedia.org/wiki/Galactic_year)...
* * *
I'm currently stuck on a [cheap Android tablet w/
keyboard](http://protwelve.com). My best current development option is local
vim & nim in [Termux](https://termux.com) (or local vim and
I'm sorry I cannot help with the code, but I just wanted to say that I'm very
happy to hear about this effort, **thank you very much!**
Some semi-related food for thought:
* Last time I tried, I had some problems with [the libprotobuf-c
wrapper](https://github.com/huodon/protobuf) and some
Thanks for pointing that out. So we don't know what the extent of the 's' bug
was, but the Playground is now at 0.18.0 and it's gone.
> Does standard library is stable for usage in the enterprise?
No.
The "enterprise" had reluctantly transitioned from their legacy systems only
because COBOL programmers were dying of old age. IBM / SAP / Oracle / etc were
pushing Java, and Microsoft was pushing BASIC and C# (especially in
I am very happy to hear about this project.
I'm looking forward to seeing the first drafts, starting with a basic outline.
Perhaps this can be a collaborative effort in something like a wiki.
**_"Release early, release often."_**
I've long advocated Python as the best language for
Duuude! "Namespace pollution" is, like, a bummer for like them like twentieth
century square types in neckties and polished shoes, whose boss like reads code
in Notepad and stuff. We got some way new far out ideas here, bro, like major
consciousness expanding nimXperience! Embrace the anarchy,
I'd just like to say that **this project is very good news**, for both Nim and
Ethereum.
* * *
I've been critical of [cpp-ethereum](https://github.com/ethereum/cpp-ethereum)
being GPLv3, which means not everybody can use it (for either practical or
philosophical reasons). As always, I
If you read [the actual
article](https://compileandrun.com/stuggles-with-rust.html), look at its
horrifying Rust code trying for a ConfigParser substitute, and see the author's
[conclusion](https://archive.is/ElUzm#selection-2299.0-2299.75) to stick with
Python - **"Use Nim" is EXACTLY the
Just noticed that [Round
13](https://www.techempower.com/benchmarks/#section=data-r13) got
[published](https://www.techempower.com/blog/2016/11/16/framework-benchmarks-round-13/)...
**_Nim MIA_**... 8-(
The problem with the Golden Rule is that some values are subjective.
Take my last few posts for example. Some saints out there actually think that
[my jokes](http://forum.nim-lang.org/t/2738/3#17079) are funny, and that my
occasional ["keep it
> I've been away from Nim for about 9 months. Can anyone give me a quick update
> ...
We keep [accelerating toward
C](https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why),
but v1.0 [remains
My above suggestion of a feature-rich Web-based Nim code viewer UI, which would
show you all the analysis and hints the best IDE would while being as
universally accessible and ephemeral as any Web-site, solves the readability
problem with no side-effects. It can easily input from git, etc.
I agree with @Jehan on most points, which really complement rather than
contradict what I've said.
Yes, there's no such thing as a perfect benchmark, a perfect survey / opinion
poll, etc. But that doesn't take away from the fact that these things are still
useful, and that the TIOBE index is a
I never had this problem, but I've heard of NASA software projects that were
commanded to use an [arbitrary precision
library](https://en.wikipedia.org/wiki/List_of_arbitrary-precision_arithmetic_software)
for absolutely positively everything numeric. I think they had an auditing
tool that
There are some interesting new ideas for what a programming language can offer
to standardize, simplify, and secure the packaging of external dependency
files, but I think embedding zip files in the executable is the wrong way to do
this...
I encourage everyone to read up on
There was recently a controversial thread that is now "locked", and there was
some talk of deleting it ([Page 1 on
archive.ORG](http://web.archive.org/web/20170110174918/http://forum.nim-lang.org/t/2687/1)/[.IS](http://archive.is/1oLoN);
[Page 2 on
> Discrediting comment.
I think it's important to [remember the
context](http://aynrandlexicon.com/lexicon/context-dropping.html) here...
This is a Nim forum - for people who like or want to learn Nim. It seems that
_tulayang came here to evangelize JavaScript, TypeScript, and Rust (the latter
Looks like my `load` macro example has become `require` [on
Reddit](https://www.reddit.com/r/nim/comments/6p0q72/help_with_a_macro/) (which
I am now boycotting, along with the rest of social media, due to the
_still_-unexplained [shadow censorship
This just in -- "[MORE PROGRAMMING LANGUAGES IN GODOT, WANT TO
HELP?](https://godotengine.org/article/godot-getting-more-languages)" \--
> There currently is a lot of demand for additional languages, such as Java,
> Haxe, Swift, Object Pascal, etc. **As Godot 2.2 will focus on new languages,
>
I think it would be best for the cause of Nim adoption to focus on polishing
the developer experience on one open source IDE and recommend that to
newcommers by default.
Aporia never seemed fully baked to me. I've also briefly tried
Sorry to be the resident annoying guardian of
[copyfree](http://copyfree.org/standard/rejected)-dom, but [the Apache License
on this library](https://github.com/unicredit/cello/issues/1) means that it
**and everything that uses it** would have to be excluded from all
pure-copyfree projects
As [say the
docs](http://forum.nim-lang.org///nim-lang.org/docs/system.html#||.i,S,T,string):
> "Note that the compiler maps that to the `#pragma omp parallel for` construct
> of OpenMP **and as such isn't aware of the parallelism in your code! Be
> careful! Later versions of || will get
> [...] any kind of sockets based package: Nim's async, nanomsg, zmq all fit. I
> would likely pick nanomsg because it seems easiest to get you started [...]
As the resident [anti-license-complexity](http://copyfree.org) zealot, I'd like
to very highly recommend standardizing on
@scriptkiddy:
> I personally do not like the idea of syntax "skins" at all. It is actually
> one of the biggest issues I have with Javascript. When I'm looking at a
> project written with es2015 vs TypeScript vs CoffeeScript I have to try and
> imagine how it would look in regular old es5 just
According to [this list on
Wikipedia](https://en.wikipedia.org/wiki/Source-to-source_compiler#Programming_language_implementations),
languages / compilers that produce intermediate C code include: C++, BaCon
(BASIC), Stalin (Scheme), BCX, Chapel, OpenCOBOL, Eiffel, java2c, Lisaac, Vala,
HipHop
I [experimented a bit with benchmarking this code (see link for
details)](https://github.com/lbmn/nim/tree/master/bench/amicableInt).
Some observations:
* Rust (v1.16.0) is slower than Nim (v0.16.0) on all int sizes except i32,
where it takes off at the speed of Clang.
* Rust binary sizes
Random thought: IPFS
**RedoxOS** is a very interesting project. We'll see if it does better than GNU
Hurd, Plan9, MINIX, HaikuOS, etc. It would be better if it was written in Nim,
but crosspolination of ideas is even more important than of code. If Redox
succeeds as the first popular post-C/C++ OS, I think that
Another idea is GitHub integration. Make each new user authenticate with
GitHub, scan his/her repos for original Nim code, assign reputation rank based
on star count. 8)
Bump for [Round 14](https://www.techempower.com/benchmarks/#section=data-r14),
just in case it gives anyone some ideas...
Nim web frameworks are still MIA...
Random thought: [h2o](https://h2o.examp1e.net/)
[[src]](https://github.com/h2o/h2o) seems to be an emerging C web server /
framework
[Related thread.](https://forum.nim-lang.org/t/3534)
I hope the Nim ecosystem comes up with it's own alternatives - eventually even
to GitHub, Linux, and the browser stack.
You are of course free to release your software under any license you want, and
I really don't want to hijack this thread, but your summation of the Apache
License is not accurate.
Your summation ("it is as free as you can get, with the only requirement that
if you actually do modifications to
I just came across ** [Min](https://min-lang.org) **
[[GH]](https://github.com/h3rald/min), a
[concatenative](https://en.wikipedia.org/wiki/Concatenative_programming_language#Implementations)
scripting language written in Nim by [Fabio](https://github.com/h3rald).
* * *
EMPHASIS ON MAIN LINK:
> I was able to read on the web efficient garbage collector offers you, it's
> fine but is it possible to use it without... in the manner of Rust for
> example ?
Nim is GC by default - which is the way to go for the vast majority of cases,
and most people who think they need manual memory
I have nothing to add to the arguments I've made for why I think turning Nim
into a platform that's not monogamously married for life to a single language
frontend would broaden Nim's appeal.
I would just like to express my utmost respect for all people who've weighed in
on this discussion,
Everybody has an opinion on what features Nim needs. What we need is people who
can either (A) implement those features themselves, or (B) pay someone to do
it. ;)
* Nim devs who don't use the One True License (MIT) will be dropped from
helicopters.
Nah, just kidding. **No to CoS!**
That unexplained trailing 's' character doesn't appear for me locally
(v0.17.2), but only on [Nim Playground](https://play.nim-lang.org/) (which is
also used by this forum's "Run" button).
System [add](https://nim-lang.org/docs/system.html#add,string,string)...
proc add*(x: var
An unrelated usability issue I've noticed in the forum is:
Clicking [the crown image](https://forum.nim-lang.org/images/logo.png)
([CSS](https://forum.nim-lang.org/css/style.css)'d into that link) should
probably be same as clicking "home": take the user to the [Nim home
> Isn't the braces "skin" supported?
OK, wow, I see that
[compiler/syntaxes.nim](https://github.com/nim-lang/Nim/blob/devel/compiler/syntaxes.nim)
has recently gained this surprise, but I didn't see it announced or documented
anywhere...
Araq is always 11 moves ahead of everyone else. But
I'm sorry that I cannot contribute to this effort directly.
I'm glad that some efforts are being made...
(BTW, there's now a [TechEmpower round 15
preview](https://www.techempower.com/benchmarks/previews/round15/).)
We have lots of people pitching ideas they can't seem to implement themselves.
Common problem. Other people could implement those ideas, but time and energy
are finite. Also a common problem.
What we need is some sort of NimLancer broker system that would make it easy
for people to hire a
I understand. The point is that people can be irritating despite best
intentions, and all recommendations listed on this thread thus-far are not
sufficient...
An optimistic but reasonable growth goal for Nim's takeoff is a threefold
popularity increase per year for the next few years. If that was so, it would
roughly mean this a year from now:
* 10,000 [github stars](https://github.com/showcases/programming-languages).
* 10,000 [+"nim
Just curious about a few things things:
* How do Nim compiler settings (--d:release --opt:speed) affect this
benchmark? Did you make any tweaks to nim.cfg that might explain slow
performance? Are you using PyPy for Python?
* Y U no use PostgreSQL? Sometimes staying with SQLite is perfectly
I'm still screaming bloody murder about GitHub (to which most people here are
addicted worse than heroin) injecting communist blind-faith-in-government
anti-Internet-freedom propaganda in everyone's code.
To retaliate, I'll have my libraries randomly inject chapters from Ayn Rand /
Milton
I was able to get Nim working in Termux after some trial and error. [Stisa's
article](http://stisa.space/articles/compile-nim-on-android/) helped with some
of it, but I think I had to implant some additional code. I also had to [patch
getTempDir](https://github.com/nim-lang/Nim/issues/5260) to
I have a suggestion for [the download
page](https://nim-lang.org/download.html): a table keeping track of Nim's
status with various OS / distro package managers. I'd be willing to help
maintain this (to the best of my very limited ability).
Imagine a non-Windows user just discovering Nim,
A [new Web Frameworks
benchmark](https://github.com/tbrand/which_is_the_fastest) includes Jester...
Nim is ranked 12th out of 12.
Now Python and even Ruby have frameworks that score better...
I would like to start a discussion about the virtues of
[dogfooding](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) within the
Nim community.
This comes in response to [a comment on
reddit](https://www.reddit.com/r/nim/comments/7smw81/nim_future/dt7xmab/):
> "For god's sake use
HackerNews (and Slashdot) are dominated by intolerant trigger-happy nazi scum.
That doesn't mean one should stop trying to inject an unorthodox opinion there
once in a while, but don't get your hopes up...
For someone used to languages like Python and Go, Nim's kitchen sink approach
can be a bit intimidating.
Quoting [someone's comment from YComb
News](https://news.ycombinator.com/item?id=11959437):
> Nim is great, and I use it (in production), but I know exactly why it isn't
> as popular:
This might be a bit off topic, but I think Nim should have
[multihash](https://github.com/multiformats/multihash) in stdlib and encourage
its use.
I think the IPFS and related decentralized design philosophies, including
[self-describing protocols
(My previous post was posted before mapi's post became visible due to new
account moderation.)
> Only I used `require` for its name.
The three related keywords (`import`, `include`, and this proposed new one)
should be easy to remember which is which.
* `include` reminds people of C
As always, _PLEASE_ help spread the word by liking and sharing on social media!
Ex:
[Reddit](https://www.reddit.com/r/nim/comments/5ebn5o/nim_in_action_is_going_into_production/),
[Facebook](https://www.facebook.com/software.libman.org/posts/589468044578512),
BTW, did this thread get started by someone who got censored or self-deleted?
Much confusion (even before I made it worse). There are much less bad ways for
the forum software to handle that...
Either way, snapshotting is always a good idea -
Thanks y'all for input. I've updated the draft in the first post with more OSes
/ distros / package managers, and will continue to update it as I come across
more info. There's no point yet in listing every distro for which Nim is _not_
available, but let me know what package managers that
1 - 100 of 269 matches
Mail list logo