Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Nim Programming Language v0.17.0 released (nim-lang.org)
113 points by dom96 on May 17, 2017 | hide | past | favorite | 42 comments


Nim has a beautiful syntax, I feel a bit like i am getting the expressiveness and ease of F# but with much better performance and nice small executables instead of byte code that needs a runtime. c interop being easy and no cost is also very nice.


Yep, looks much more pleasurable to type compared to Rust and Go...

Check this HTML mapping to Nim (I suppose its all a bunch of macros): https://github.com/pragmagic/karax/blob/master/examples/todo...


Of Rust, Crystal, Julia, etc I'm most excited about Nim because of expressiveness (macros), ergonomics(simple syntax and GC), and speed (native compilation). Anxiously awaiting 1.0 so I can really commit.


Just to be fair, and since you mentioned Julia yourself, it too has the expressivity of macros, the ergonomics of simple syntax and a GC as well as performance (often producing the exact same assembly as hand-optimized C/C++ ran through clang). It also has a full implementation of multiple dispatch, with all of the interesting design implications that follow.

That remark, however, is not to minimize the appeal of Nim, which has other interesting properties as well as native compilation, which is undeniably advantageous in some cases. I hope the tooling matures and the language continues to grow. It certainly deserves a chance.


Why don't you commit now? If you really love it, wouldn't now be the best time to get involved?

> speed (native compilation)

Native compilation is often stated as a speed benefit, and it definitely saves startup costs, but Java is still extraordinarily fast; the JIT is an impressive thing.

I think there are good reasons for native: deterministic runtimes; fast startup times; low memory overhead; and lower runtime costs. Some of those you give up by adding a GC back in though.

Speed isn't necessarily one of the reasons for native.


The biggest advantage of native compilation to me is dependency-free binaries. That is one of the reasons I began using Nim and one of the reasons I avoid JVM languages.


That is the major selling point of Go to me. Is Nim similar in terms of tooling quality?


jvm is an impressive thing but so is gcc and clang and they have time to crunch harder and are not constrained by lack of value types or lack of unsigned ints or lack of explicit SIMD instructions and on and on and on


> Speed isn't necessarily one of the reasons for native.

And how it is!

I don't understand why people consider Java "fast". The JVM may be fast on pure server applications. On clients however it is still unacceptably slow in comparison to native applications. Just consider Eclipse and compare it with Ada's GPS editor, or with native C++ IDE's. The startup time of Clojure applications is also still beyond acceptance for me.

I know a lot of programming languages. Nim is one of the most productive ever. It is like safe programming C with the clean syntax of Python and the nice macro features of Lisp.


I don't think it makes to learn the language before the API has stabilized. But that's just me - I'm not saying it doesn't in general make sense and I could come up with reasons why it does.

JVM's jit is indeed fast enough for my tastes but Java is grotesque. kotlin might be nice (been meaning to play around with it for a while).


I still like D the most because of stability and how many features at your disposal, but Nim is a close second and is looking really good to.


For anyone interested in a 48 minute overview, this is a good video:

https://www.youtube.com/watch?v=_HeU8yg_WaE


I think Nim has the potential to become one of my go-to languages. I also like Rust, but I think even though they may operate on a similar level of abstraction from hardware they target different types of project. Rust is as expressive as it can be while making it difficult to shoot yourself in the foot. Nim trusts you with the BFG (term-rewriting macros!). Each language philosophy has its merits. The organizations managing the most developers clearly favor imposed-discipline languages, and that makes sense for something as large as a browser. Highly expressive languages tend to result in personal code, which I think is fine for projects with smaller numbers of contributors who are all on the same page. In that sense, Nim seems like the Lisp of systems-level languages. A powerful tool for getting things done that asks a bit of its users.


Nim is the underdog of upcoming system languages , but it sure has a strong bite . Given the steady progress made by the development team it appears to become a more satisfying language to use than Rust or even Go.

In the end every developer tries to be :

Faster,Better,More Efficient

and Nim could be the tool to achieve these aspirations.


This example looks very good: https://github.com/pragmagic/karax/blob/master/examples/todo...

They seem to have a JS backend.


Congrats on another great release, Nim team.


Nim is looking really good! It deserves a chance definitely!


All it needs is a killer app, or more appropriately a killer port. Make the compiler generate code for the ESP32 and it gets world fame in no time.

(https://en.wikipedia.org/wiki/ESP32 - for those living under a rock during the past year or so :^)


I have been wanting to play with wrapping the ESP-IDF for Nim (using the excellent c2nim tool), but ... it appears to be a fairly hefty job. Although I am sure Araq could do it in no time :)


Nim compiles to C source code. Isn't the ESP32 SDK just C?


I believe so, but on a ucontroller it also needs to know the machine data types, memory structure, internal peripherals etc, where is this or that pin, how to start a timer or read the ADC etc. Probably all it needs is a good set of .h files to generate appropriate code.


Just as a sidenote, there is:

https://github.com/xyz32/boneIO

...and a while back I played too with:

https://github.com/gokr/ardunimo

Nim is quite perfect for these things since it compiles via C/C++ which makes it go anywhere.


Nice. I was just looking at PR#5677 yesterday. Good job!


YANPLUSUM - Yet Another New Programming Language Undergoes Some Unimportant Milestone.


Can you please just not comment when this is all you have to say? Comments on HN should be civil and substantive.


This post about yet another "new programming language" reaching a milestone consisting of random digits was upvoted so that it reached the front page of your web site, and my pointing that out resulted in my not only being downvoted but revenge-downvoted across several other posts. If you wish to improve your web site's content, a more valuable service toward that end would be to excise the spammers promoting the above nonsense content, and revenge-downvoting across answers, rather than criticising me for pointing out that this emperor is not wearing any clothes.


We do penalize minor release articles, and there are software protections against abusive downvoting. What we need from you is no more comments like these. It's not criticism, they simply break the guidelines.


The spamming of this site by these kinds of projects has gone far enough that it has now been parodied in a television series:

https://www.reddit.com/r/SiliconValleyHBO/comments/6cy0x3/th...

Quote on the whiteboard by the character "Gilfoyle" in "Silicon Valley":

HACKER NEWS!!! Get friends to upvote

One would have to be extremely naive to think that anyone except friends of the authors would upvote a link to a changelog for version 0.17.0 of a "new programming language" on this site.


To paraphrase Steve Jobs: "Oh yeah? What the fuck have you done that's so awesome that you now feel like you can just make some snide, zero-value comment to shit on a new release of one of the more interesting new programming languages of the past few years, Clyde?"

This kind of news, and discussion of it, is exactly what this website is for.


This. Though I'm woefully under-skilled to offer much comment on these sorts of stories, it is exactly this sort of story and the comments of much smarter people than me that attract me to read HN. Really, I wish it were more of this sort of thing and less politics and other non-tech miscellanea.


Yeah, it's hard to contain one's excitement when one hears that version 0.17.0 of a project has just been released.


Hey dude, this is someone's project. Think about what it would be like if you posted a project here and someone else called it "yet another unimportant thing".


Whatever importance "v0.17.0" might have to the authors, it means no more to me than any other random string of digits. Regardless of the content, the title of this submission is ridiculously poor.


When this happens with most other posts, most people tend to not read them, not comment on them, and most definitely not shit all over them.

Enough people have been interested in it for it to be voted high enough for you to see it.


Click the link, you'll see the changelog.


I'm trying to contain my excitement.


[flagged]


Please don't get personal like this, no matter what someone has said.


Trolls need personal responses. This aversion to conflict is why we have a shit internet. I am asking the person to introspect to maybe answer for themselves why they are so awful.


I thought “Don't feed the trolls” was the idea?


Yeah, let's Trumpify that title: "JUUUGE NIM release - everybody is saying they're going to give up sex now, 'cause we're like 17 times better now! NIM version 17,000.17 is OUT and PROUD!"

Accuracy and brevity, pshaaw.



I don't see any mention in the links that humor is to be strictly avoided. Did I miss something?

I'm amused that the party I'm replying to actually insists on a more click-baity title; but chose to use humor to express that. I certainly won't again, and may not comment here again.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: