Indeed, apologies about the delays.
Myself and the copy editor have only just recently finished going through each chapter and making corrections. I'm hoping that it won't be too far into May before it's published.
Poor community. Stop wasting everyone's time, dom96 and Araq. I was a Nim user long ago, but I don't want to even look at it anymore. Here is the fact that senior Nim developers might never understand in their lifetime:
A fully static and compiled language environment is not better in any sense (including speed in development time, execution speed, security, stability, etc) than a fully dynamic and interpreted (without JIT or any other compilation process) language environment. Plus, there are many things that are not possible in static and compiled languages to express, but are possible and easily express-able in dynamic and interpreter languages. I intend to write an article about these issues if can.
Chapter 1 in Nim in Action is (intentionally) totally false (for the sake of money and catching people to the web).
Nim in Action basically makes compilers, infix/indentation-based syntax, static typing, and other Nim-contained concepts superior over the opponent, but dom96 doesn't tell readers about the disadvantages of the above concepts, such as collaboration-difficulty of indentation-based syntax and long compilation time for most modification (in serious and big programs, not in small practices, but in real-world).
And why doesn't Nim in Action mention the unfriendly debugging experience of compiled programming environment (or specifically Nim, which we can barely debug issues)? Interpreted environments, on the other hand, are much friendlier when it comes to debugging and tracing.
Programming is not (and never was) just about "writing" programs and execution speed.
@Fungi I would have to disagree.
"A fully static and compiled language environment is not better in any sense"
Ever heard of a language called C (and C++)? Any idea why companies still use them? Why wasn't the latest AAA video game written in Python or Javascript?
Do you know why DropBox started developing Pyston, a python JIT?
mGBA, a popular Game Boy Advanced emulator decided to move the project from JavaScript to C, any idea why?
Because some people care about execution speed.
Have you tried running python, Javascript etc. on the Game Boy Advanced, Commodore 64, Arduino, or resource deprived embedded chip?
Ever heard of a project called Cython? I wonder why somebody would create that if the "compiled language environment is not better in any sense"?
I would agree that programming is not just about "writing" programs and execution speed.
I'm not sure where you got that information though.
Go away troll.
EDIT:
To add to your section about Nim In Action, I haven't read the book, so I may be wrong but...
"...but dom96 doesn't tell readers about the disadvantages of the above concepts."
Usually when you write a book about a programming language, you don't write about the pros/cons of the syntax.
The point of the book is for the reader to learn Nim, not to debate the merits of the language's features or flaws.
"And why doesn't Nim in Action mention the unfriendly debugging experience of compiled programming environment (or specifically Nim, which we can barely debug issues)?"
Perhaps a section about debugging Nim might be helpful.
@Fungi I can understand your disappointment about the lack of an interpreter in Nim, as one was planned originally. I don't know if it still in the works, but it probably has to wait until verson 1.0 is out before it can be worked on.
At least if the main Nim team don't have the time or resources there will be a set version that other interested parties can work on. My advice is to be patient and try to support or contribute to it if you can.
I don't want to even look at it anymore.
Yet here you are trolling, and showing the world what an awful human being you are.
I can understand your disappointment about the lack of an interpreter in Nim, as one was planned originally.
The compiler contains an interpreter. That's how compile-time expression evaluation is done.
[sigh] replying non-technical people sucks. @hcorion, @jibal, listen, you are ignorant + arrogant, which makes you the worst people.
compilers impose restirctions, you are forced to use macros, which are just kludge, but in a pure interpreted language (PicoLisp for example) you can simply use functions, which you can debug, apply, etc in opposite to macros. Such as this Common Lisp do macro, written as function in PicoLisp (a pure interpreted and dynamic language):
(run (cdadr "Args")) ) )
Note that there are almost no penalties of using eval in PicoLisp.
And nothing stops you to write optimized and efficient code in interpreter environments. And one more thing, the above example obviously uses S-expression or lets say Lisp-like syntax, it has certain advantages, such as ease of parsing it, and together with S-expressions and interpretation, equalivance of code and data is formal and realistic in PicoLisp, check the web resources for reasos...
This one is a very, very wise and beautiful quote, from author of Ruby, Yukihiro Matsumoto,
"Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves."
I was brainwashed just like you, I thought Nim in Action is right about how bad are dynamism and interpreters, but thank God I realised the truth when I looked around and see all those people use bash, dynamic mecahnism, etc in eveything and I started to know the reality of the concepts.
Compilers simply discards many things just for the sake of execution speed, but those "many things" are what makes programmer's life easier and "truely" reduce development time. Many (if not all) major game engines use and contain JS, Python-like languages (such as Boo in Unity).
The real execution speed concept is well- and carefully-designed algorithm, relying on compiler optimization is for stupid programmers.
@Fungi: It seems to me you don't want to discuss things but you want to insult people.
My suggestion: Open a forum where people like you could insult each other. Perhaps you will be happier then.
Hope they will ban you here.
Argh, least you could have done @Fungi is create a new thread instead of derailing this one. But never matter.
Good news is, here is an article with an excerpt from my book: http://freecontent.manning.com/delving-into-nim
@Fungi I won't discuss compiled vs. dynamic languages, because the topic is obviously going nowhere, and you and I both have better things we can be doing.
However your attack on me and @jibal's person is not only a very low blow, but IMO unfounded.
"you are ignorant + arrogant, which makes you the worst people."
Let's look up ignorant, shall we?
lacking in knowledge or training; unlearned:
This can be disputed.
in your eyes, I'm obviously lacking in knowledge because according to you interpreted languages are the best and everything else has no purpose.
However, we have multiple skilled and knowledgeable programmers who agree/attest to what @jibal and I have said.
If you came into a court of law saying I killed a man and I came with 4 other people saying I didn't, who do you think would win?
What about arrogant? Let's look that one up as well.
making claims or pretensions to superior importance or rights; overbearingly assuming; insolently proud:
Let's see, what assumptions did I make?
All of the facts I stated I can get sources for and are the truth.
Did I ever claim to be smarter or more knowledgeable than you? Not that I can tell, I just disputed your claims.
This site: http://ronrosstoday.com/arrogance/ has a great guide on how to detect arrogance.
I really want argue against some of your points in your second post, but I won't feed the troll anymore.
I hereby swear that I will not reply to this thread after this post.
replying non-technical people sucks. @hcorion, @jibal, listen, you are ignorant + arrogant, which makes you the worst people.
Some psychopathic imbecile thinks I'm "nontechnical". That's funny.
ManfredLotz: Hope they will ban you here.
Behold:
Online 19/04/17 11:43 UTC
Status Troll
Some psychopathic imbecile thinks I'm "nontechnical". That's funny.
That's simply uncalled for. Please don't write like that, no matter if you believe that the person is a troll.
You will be forced to moderate posts like this soon.
But I did moderate. I guess I should censor the next time.
Words like @$$-clown, pig-f*ck3r, and sh1t_weasel are terrible words and should NOT! be directed at people like Fungi.
Therefore I will not do it.
but...
truthfully...
I can't wait for my book to arrive !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
And Manning is still advertising
https://www.manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81
Hopefully not too many readers will be dissapointed when that chapter is missing and send back the book to Manning :-)
I think "imbecile" and "non-technical" are equally insulting.
I wasn't insulted by it, I said it was funny. It's just an absurd baseless and false charge ... whereas my characterization of Fungi is well grounded in what he wrote.
if you believe that the person is a troll.
Um, his status is Troll. It's a fact, not just something I believe. We can disagree as to whether what I wrote was "called for". Perhaps I should have taken canyonblue77's approach of working around tender sensibilities. I would note that I never would have commented on him had his toxic "Poor community." post been removed and he had been banned immediately, which would have been the correct course IMO.