The concept of using 0 to mean false is not new to javascript is what I was getting at.
The concept of using 0 to mean false is not new to javascript is what I was getting at.
Not necessarily. It's just a (mostly POSIX and Linux kernel) convention to use 0 as "no error" result, but there are plenty of code that returns 0 as an error and >0 for success. It has nothing to do with C language itself, as C functions let you return pretty much anything or nothing at all (void functions).
In a shell, for example, the 0 exit status is normally actually truthy:
$(exit 0) && echo helloYou say that it answers the question "Are there any errors?", but that's just one possible boolean interpretation of the status code.
That said, I don't know of a shell that doesn't interpret zero status as true, because true(1) and false(1) in Unix returns status zero and non-zero respectively. It's not just Unix, it's Windows, DOS etc. In that sense, the prevalent boolean interpretation is that it answers the question "Did the process end with a success status code?", the exact opposite of what you think.
That you or anyone else finds bash or this boolean interpretation in general unintuitive is besides the point, and ignoring that I've already said half of this to complain about bash is a pretty rude way to short-circuit a discussion.
Let's just leave it at C languages + Python, which account for a large percentage of developer mind-share, so to say that it's unintuitive that 0 is falsey is either disingenuous or slightly ignorant.