Oh so it's about Nim v1.0 again. I wanted to release that years ago but the 
community talked me out of it. _Shrug_, sometimes the community is just wrong. 

> I didn't mean that Nim has a "zillion unfocused ideas" (it's not a real 
> number and a general point about business plans), but the top example going 
> through my mind as I wrote that was karax. You can obviously work on whatever 
> you want, and I am very grateful for everything you do, but IMHO that isn't a 
> top focus for getting Nim off the ground. Nim's attempt to compile to both 
> C/C++ and JavaScript, while extremely interesting, is an example of "Chasing 
> Two Rabbits"...

It's not "extremely interesting" (is that another term for "research toy"?), 
it's important as the browser is ubiquitous as an application development 
platform (as bad as that is...) and **many** other languages do the same 
already. That's actually just part of the "playing to catch up".

Working on Karax pays my bills ... working on Nim v1 does not. You care about 
Nim version 1, as do I. The people who pay me have more concrete problems 
though. Like writing SPAs or having excellent C++ interop to leverage the game 
engines written in it. Or having stable C++ code generation in order to improve 
compiletimes to keep it competetive... And here you are telling me how to run a 
"successful" business.

> A lot of people really liked your quote that "Nim is essentially Ada + a GC 
> with a friendlier syntax". I think that would make a great initial focus and 
> selling point for Nim.

Never met anybody who cared about Ada. As a "selling point for Nim" that is a 
stillbirth, as far as I can tell.

> In a Quora answer I summed up what I see as Nim's top strengths: performance 
> to productivity ratio, safety to syntax cleanliness ratio, license simplicity 
> (very important to gaming companies, not just ethics nerds like me), and 
> portability. I think that's already too many.

So ... leave things out in your summary the next time?

> I don't know if Nim can claim the "performance to productivity ratio" crown 
> in light of the recent takeoff in Crystal's popularity.

There you go then, don't list that anymore, that title clearly belongs a 
language that is as obscure as Nim. 

> I'm sorry, I'm not very bright. To me that seems much less clear than the 
> vision of Nim's top competitors (see above). To whom does this vision appeal?

The benefits of meta programming (and its downsides) have been enumerated, I 
myself gave plenty of talks about it, I don't know why I need to repeat these 
here again. It's not that you are "not very bright", you seem to want me to 
premasticate everything for you so that you can give better answers on Quora 
and Reddit. And that's ok, so read on.

> What makes Nim more "simplistic" than "systems programming languages" like D 
> and Rust (and, if using a much looser definition: Go, Swift, Crystal)? And is 
> its AST-based macro system competing with Template Haskell for theoretical 
> papers, or is it a means to an end?

Compared to Rust/D:

  * Nim's approach to immutability is simpler.
  * Nim's approach to "memory safety" is simpler (ref = safe, ptr = unsafe).
  * Nim's approach to multi threading is simpler (do not share, copy stuff 
around).
  * Nim's approach to OO is simpler (it even lacks constructors!).
  * Nim has some cruft, but much less than D.
  * Rust has the borrow checker that people complain about plus an overly 
patronizing design ("every macro invokation shall end in an exclamation mark").



> Some "other languages" have had lots of devs and lots of paid hours (in 
> industry or academia) to polish those features and manage complexity.

Yes and Nim has meta programming instead so that you can implement the features 
yourself and the core language stays lean. That was the plan/"focus" anyway, in 
practice IMO we need to remove features (but which ones?) to get there.

> Successful new grass-roots programming languages tend to start with a 
> particular focus. D started out as a much simpler language, and added 
> features after it mastered the basics. Even Google isn't replacing everything 
> with Go, but keeping it focused mainly in network services. Nim is very 
> ambitious, and that's great, but not when it comes at the expense of the 
> fundamentals.

The truth is that D's development offers a ridiculous amount of similarities 
with Nim's development. And IMHO "we can do better than C++" is less of a 
"focus" than "let's have a simple core but metaprogramming". Go's "focus" is 
more bizarre than every other programming language ever invented. "We are a 
billion dollar company only hiring the very best developers, but we cannot 
design a parametrized type system and/or think our developers cannot handle it. 
Or a sane error handling system. Or a concurrency model that is free of data 
races and deadlocks. Or a compilation model that does away with extensive 
runtime reflection."

Reply via email to