On Jul 7, 2014, at 6:21 AM, tjholowaychuk <[email protected]> wrote:
> Throwing man-hours debugging brittle code is not worth it, especially in 
> young startups that can't afford to make mistakes. The great thing about Node 
> is that it's JavaScript, the terrible thing about Node is that it wastes the 
> good part by being fundamentally flawed and broken usability.


The great thing about JavaScript is that it offers C-like simplicity 
(refreshing after a decade or two of C++ and Java) and structure (the syntax is 
not replete with mystifying arrows, nor does it treat whitespace as a 
significant token), but I disagree that JavaScript is a very usable language. 
In fact it is unusable exactly in those ways it departs from C: It is lenient 
when it should be strict (ASI) and strict (or at least unpredictable) when it 
should be lenient (these have been lamented on extensively elsewhere by 
others); it is primitive in unsettling ways (multi-line strings); it is leaky 
in the wrong place (messing around with prototypes) and magical/mysterious 
where it should make the implementation explicit (why do some assignments copy 
a value while others copy a reference? In C the answer is simple: ignoring the 
shortcut of arrays, all assignments copy a value, except in some cases the 
value being copied is a pointer to a block of memory). I could go on.

I also disagree that performance (raw or otherwise) should not concern 
startups. For not-yet-profitable and cash-strapped entities, it just does not 
suffice to answer "spin up another VM". I do admit that performance absolutism 
does not sit well with a whole slew of interpreted languages, but that does not 
compel us to abandon performance as a significant criteria.

Most of everything else in your blog post, I find myself vigorously nodding in 
agreement with.

NodeJS, as an ecosystem, is a bit of Wild West, which is brilliant in many ways 
(nobody shoving MVC, or their clever little extension to the initialism, down 
my throat). But good grief, it took me (admittedly a slow-moving primate) 3 
days to figure out that socket.io (to use one example) is not a vanilla 
WebSockets implementation.

        --ravi

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/40DA4F74-0F67-417E-8D7A-9790C1D7E8E8%40g8o.net.
For more options, visit https://groups.google.com/d/optout.

Reply via email to