Live data from Hacker News

A Programming Language Underdog

totallywearingpants.com

101–110 of 238 posts

Re: A Programming Language Underdog

#101
post #98

Earlier quoted context omitted.

Crystal. https://github.com/crystal-lang/crystal/commit/5c2894298612b...

Submitted by the same person who is trying to troll Linus. Looks like the troll is happy with the result: > Thank you so much, it's so much more inclusive now. My rabbi will be pleased.

Trouble is the commit is there: The thing has been taken at face value.

This galloping madness is beginning to scare the shit out of me.

Re: A Programming Language Underdog

#102
What's the status of Nim's garbage collector? https://nim-lang.org/docs/gc.html Last time Nim came up on HN someone said they were changing from reference counting to tracing. Also seems like the Nim developers are reluctant to make a choice here? GC is a show-stopper for some developers but an absolute necessity for others.

Re: A Programming Language Underdog

#103
post #43

By removing the C standard lib and using a custom linker you can get the Hello World down to 150 bytes. Here is a fun read: https://hookrace.net/blog/nim-binary-size/ .

Incidentally, in Rust this kind of thing could get you 151 bytes out of Rust: http://mainisusuallyafunction.blogspot.com/2015/01/151-byte-... (linked in that post)

But that was before 1.0. Updating the example and applying some more tweaks, it’s down to 145: https://github.com/tormol/tiny-rust-executable

Re: A Programming Language Underdog

#104
post #20

I had tried Nim a few years ago, and I liked it, but I am more of a Lisp or C person. I am trying to learn Zig [1] which is intended to be a C replacement - no GC, manual memory management, but avoiding C's pitfalls. Just recently I have been playing with Terra [2] for low level stuff. I am a fan of underdog languages - J, picolisp, shen, xtlang (extempore). [3,4,5,6] [1] ziglang.org [2] terralang.org [3] jsoftware.c…

If Nim’s compile-to-c is attractive, and you like lisp, how about Chicken Scheme?: https://www.call-cc.org/

What little I’ve done is a pleasure. I like some of Racket’s post-Scheme language features better, but Chicken has a lot of Get Stuff Done libraries (eggs), and compiling a single executable is pretty killer.

Racket will bundle up an executable pretty well too, but it’s hard to compete with Scheme -> C -> statically linked executable for some things.

Re: A Programming Language Underdog

#105

What's the status of Nim's garbage collector? https://nim-lang.org/docs/gc.html Last time Nim came up on HN someone said they were changing from reference counting to tracing. Also seems like the Nim developers are reluctant to make a choice here? GC is a show-stopper for some developers but an absolute necessity for others.

My impression from the article and docs is that Nim offers multiple choices specifically because garbage collection ain't one-size-fits-all.

Re: A Programming Language Underdog

#106
Since I have used Nim in a small team effort creating an enterprise data analysis application, let me put in a good word. The ease of coding and speed of execution was what caught our attention. I was expecting the worst (from past experiences with new languages) but we were so surprised that we could complete our project all in Nim. These are a few things that I love with Nim:

- One's knowledge of Python jives really well with Nim. Thinking in Pythonic ways, a small number of constructs in Nim gets you a long way without gotchas that block you. For example you can easily integrate Numpy in minutes.

- Statically typed, fast compilation, readable code, good module import system, binary executable that you can move around easily without installing anything more at distributed sites, and a built-in test and integration framework.

- An efficient web server comes along, supports a practical and useful template system for small team web applications. Concurrency. Async dispatch/coroutines gives you back-end options to scale.

- Nim's Postgres database client driver is glitch free, easy to use, and it turned out to be a real good work horse.

Re: A Programming Language Underdog

#107
post #20

I had tried Nim a few years ago, and I liked it, but I am more of a Lisp or C person. I am trying to learn Zig [1] which is intended to be a C replacement - no GC, manual memory management, but avoiding C's pitfalls. Just recently I have been playing with Terra [2] for low level stuff. I am a fan of underdog languages - J, picolisp, shen, xtlang (extempore). [3,4,5,6] [1] ziglang.org [2] terralang.org [3] jsoftware.c…

FYI putting the links in a code block prevents them from being links

Re: A Programming Language Underdog

#108

What's the status of Nim's garbage collector? https://nim-lang.org/docs/gc.html Last time Nim came up on HN someone said they were changing from reference counting to tracing. Also seems like the Nim developers are reluctant to make a choice here? GC is a show-stopper for some developers but an absolute necessity for others.

Nim has multiple garbage collectors you can change at compile time. Here's the --gc option from the documentation.

    --gc:refc|v2|markAndSweep|boehm|go|none|regions
I don't know if this is up to date or not. There's an open issue on github to improve the documentation on the garbage collector.

https://github.com/nim-lang/Nim/issues/8802

Re: A Programming Language Underdog

#110
post #64
post #54

Earlier quoted context omitted.

Actually, I'm curious why people don't like white space sensitive languages. I get the tab v space thing, and there are certainly a couple of other down sides, but none of these seem like deal breakers to me. Given that python was the second language I learned, it's possible that I drank the coolaid early and I'm blind to some things that are truly egregious. So the question is: why do folks completely avoid a langua…

To me, braces are simpler and more explicit, but then I drank the C/C++ koolaid. Whitespace is intended for human readability, with spaces and tabs not having any implicitly contradictory meaning. In a whitespace sensitive language, you have to set your text editor to make those invisible characters visible to make certain to only use the correct invisible character, then employ multiple such characters based on the…

I know this has been said before but for me it's as simple as:

"Format your code as you would have done anyway but just leave out the curly braces".

It reduces rather than increases the number of things I have to think about.

Post reply on HN