Or, you know, you could also look at the countless examples of successful large-scale deployments node.js has enjoyed in its relatively short life, not just passing-comments from random co-workers, if you're going to form a hasty, poorly-informed, opinion. It's still not a great way to evaluate a technology, but it sure beats a couple passing comments!
I looked at node.js on the server myself, and decided that it wasn't well-suited to our needs. That doesn't mean it's horrible or useless, just that it's not better than what we have now for our specific needs. There are a lot of big-names out there with smart people making technical decisions who disagree with your unnamed colleagues off-hand assessments, which have found a lot of success using node.js. I can only assume it's because node.js was better for their needs than whatever it was they were using before. Perhaps your developer friends just suck at evaluating new tools?
The fact that there are actually people who think using in on the server is a good idea, proves there are insane or completely incompetent developers out there. If someone actually approaches me with this idea, I immediately think they are an idiot.
Yeah, the guys at PayPal, eBay, Microsoft, Yahoo, Uber, NYT, Dow Jones, LinkedIn, (the list goes one) must be idiots.
I could go into a dozen technical reasons why javascript is a terrible, horrible, outrageously bad language here but this post would be TL;DR; for most people. Lets just settle for goggling "javascript terrible" and reading the first couple links.
I thought the same thing for years. Then I took the time to actually learn the language. My opinion changed dramatically.
Oh, and yes, I've written my fair share of javascript (and other languages), so don't think i'm talking out of my ass here.
I would have said the same thing. The lesson I learned: Just because I've used a language for years doesn't mean I know anything about it.
just watch the comments rain down reaming you for not understanding event-driven programming
Well, it's true. Most people don't understand event-driven programming -- many node advocates included.
Remember when you first discovered lisp and learned about functional programming? It's a lot like that, it just appears easier on the surface, misleading many middle-of-the-road developers in to thinking they've got it all figured out after a quick tutorial.
I've said this 1000 times before: Everyone writes bad code. Just look at anything you've done a year or so ago (something you haven't looked at in a while).
There isn't really such a thing as a crap CPA. There's a pretty objective correct and incorrect there.
Wait, are you one of those guys that thinks Python is "easy to read" because of forced indentation? I haven't seen them around in a while; I figured they all just forgot how to breath one day...
More seriously, doesn't your editor have a pretty-print function? Did it magically make code "easy to read" when you used it on some badly formatted code in other languages?
You do realize that Python's implicit blocks actually broke the language, right? Why do you think anonymous functions are crippled? Do you think it's because Guido likes making bad choices, or because he was too short-sighted to see how that decision could harm his language later?
Implicit blocks are bad, for many reasons which I'm sure you've already heard. The problems don't just affect developers, mind you, but the language as well. They're the sole reason why anonymous functions in Python are so horribly crippled, for example.
The only reason Nim includes this retardation is that it's written by a guy convinced that the ridiculous mistake Guido made was actually a good idea. I get it: you like Python. Here's the thing, you like Python in spite of the ridiculous white space rules, not because of them. You've spent so many years defending that absurd design decision that you've convinced yourself that it's actually good.
Oh, BTW, with a sensibly designed language, just about every editor out there can format code properly with a single keystroke. The only possible argument in favor of Pythons implicit blocks, forcing idiots to indent their code, is essentially meaningless.
You're selling yourself short. Perhaps start with something simpler? (I've seen "I just can't do it" students succeed after just a few days playing with Microsoft's Small basic or events in RPG Maker VX Ace Lite.) Once you've got the basics down, everything else is a cake-walk.
I've said this before: Everyone writes crap code. Just look at anything you did a year or so ago. Your first thought will undoubtedly be "what was I thinking!"
The best advice I got when I started grad school, many years ago: "There are no good writers, only good re-writers." I've found that to be true for programming as well as academic writing.
the unfortunate thing is this industry is chock full of arrogant pricks.
Indeed. I blame the flood of autodidacts coupled with a society that treats people who can write computer programs as super-geniuses. It's hard enough for the average autodidact to be self-critical, particularly when everyone around them is busy telling them that they're amazing. A solid formal education usually knocks that arrogance out of you. (MD's excepted. They've somehow found a way to remain arrogant pricks.)
I disagree. I know quite a few seasoned developers who couldn't pass an undergrad intro to logic class. Hell, I doubt half the autodidacts around here couldn't get past the section on Boolean algebra in CS101, despite a successful career in software.
I think when you say "logic" you really mean "critical thinking". Programming certainly helps with that, but so could countless other subjects. It's just easier to transfer those skills through programming.
We all know that programming is ridiculously simple, and that anyone with a bit of time and effort can learn relatively quickly on their own. That's terrifying to some folks, particularly those used to being treated like a genius just because they possess that particular skill.
Diversify your skill-set a bit so you don't have to live in fear. You'll be a lot happier.
if you wanted me to do something artistic such as a painting or write a poem then I would have great difficulty.
I guarantee that with practice, and some instruction, you could be skilled at those as well.
But for some reason when it comes to computers we think that people have to become programmers.
The difference, of course, is that programming isn't nearly as difficult as medicine or, yes, even accounting. So once you get a handle on the basics, they're programmers.
Could it be that you're just bored with the topic and want to switch to something you're more comfortable discussing? Should I expect to see the anti-feminist brigade chime in as well?
Unrestrained use of goto was demonstrated to be a bad idea decades ago
That's the point -- it was NOT shown "to be a bad idea". Further, this study suggests that Dijkstra's fears were not realized.
If you want to base your beliefs on the words of a holy prophet, and not on proper evidence, that's up to you. Just don't expect anyone else to go along with it.
That is a neverending wealth of evidence of how badly people code.
Yes, people write bad code. It's not a revelation. That has nothing to do with my request, however.
But your argument is silly. Of course banning conditional loops is dumb.
Of course it's silly, that was the point! That someone can misuse a control structure does not mean there is some fundamental problem with it. Everyone agrees with that until you mention goto, then they cry "blaspheme!".
Equally silly, of course, are the other arguments against goto. Rather than empty rhetoric, I'd like to see some actual evidence before I join the church of goto sucks. Is that too much to ask?
Right now, I'm staring at an empirical study that contradicts the received wisdom from the holy prophet Dijkstra.
"Banning" goto is like "Banning" jaywalking. Because enough people screw it up badly enough that it is simpler to just warn against it in general.
I'll ask you these then: When was the last time you saw someone use a goto in such a way that it harmed the programs readability, efficiency, or otherwise? When was the last time you saw someone structure their code to avoid a goto that make the program less readable, efficient, or otherwise.
I've seen bad code that uses goto, though I can't attribute those messes to the use of goto -- as you've pointed out, developers can make a mess with anything. I have, however, seen code that was messy because the developer wanted to avoid using a goto or where a goto would have made the code smaller and easier to read and reason about.
Still, that's just our combined experience. I'll assume that we're at an impasse as your experience differs dramatically from my own. The only way for us to resolve this is if we were to provide some actual evidence. To start, I'll offer you the study linked in the summary.
A Node.js programmer works for a company that is OK if their applications don't work as long as they are flashy.
Like the guys at Pay Pal, Dow Jones, and the New York Times?
Sure.
Also hard to maintain, prone to breaking due to an inherent lack of type safety, and so on.
This is true, if all of your developers are high-school students.
Or, you know, you could also look at the countless examples of successful large-scale deployments node.js has enjoyed in its relatively short life, not just passing-comments from random co-workers, if you're going to form a hasty, poorly-informed, opinion. It's still not a great way to evaluate a technology, but it sure beats a couple passing comments!
I looked at node.js on the server myself, and decided that it wasn't well-suited to our needs. That doesn't mean it's horrible or useless, just that it's not better than what we have now for our specific needs. There are a lot of big-names out there with smart people making technical decisions who disagree with your unnamed colleagues off-hand assessments, which have found a lot of success using node.js. I can only assume it's because node.js was better for their needs than whatever it was they were using before. Perhaps your developer friends just suck at evaluating new tools?
In simplistic terms, it's what people want, all they have to do is open a web browser and they have the latest version.
That's really the #1 reason applications have been trending toward the web for nearly a decade: Easy deployment.
JS failed on mobile
The browser has been evolving to reduce or eliminate the need for JS as much as possible.
When did either of those things happen? Wishful thinking?
So far everything has failed with the possible exception of jQuery
Oh, that failed a long time ago. Why people keep using it is beyond me. At least people learned to stop using it on mobile.
The fact that there are actually people who think using in on the server is a good idea, proves there are insane or completely incompetent developers out there. If someone actually approaches me with this idea, I immediately think they are an idiot.
Yeah, the guys at PayPal, eBay, Microsoft, Yahoo, Uber, NYT, Dow Jones, LinkedIn, (the list goes one) must be idiots.
I could go into a dozen technical reasons why javascript is a terrible, horrible, outrageously bad language here but this post would be TL;DR; for most people. Lets just settle for goggling "javascript terrible" and reading the first couple links.
I thought the same thing for years. Then I took the time to actually learn the language. My opinion changed dramatically.
Oh, and yes, I've written my fair share of javascript (and other languages), so don't think i'm talking out of my ass here.
I would have said the same thing. The lesson I learned: Just because I've used a language for years doesn't mean I know anything about it.
ORM? That's a blast from the past!
Has any significant progress been made in the last 15 years? Last time I checked, there were some pretty significant problems still left unsolved.
just watch the comments rain down reaming you for not understanding event-driven programming
Well, it's true. Most people don't understand event-driven programming -- many node advocates included.
Remember when you first discovered lisp and learned about functional programming? It's a lot like that, it just appears easier on the surface, misleading many middle-of-the-road developers in to thinking they've got it all figured out after a quick tutorial.
I've said this 1000 times before: Everyone writes bad code. Just look at anything you've done a year or so ago (something you haven't looked at in a while).
There isn't really such a thing as a crap CPA. There's a pretty objective correct and incorrect there.
When people say "six-figures" they don't generally count the two after the decimal point.
Wait, are you one of those guys that thinks Python is "easy to read" because of forced indentation? I haven't seen them around in a while; I figured they all just forgot how to breath one day...
More seriously, doesn't your editor have a pretty-print function? Did it magically make code "easy to read" when you used it on some badly formatted code in other languages?
You do realize that Python's implicit blocks actually broke the language, right? Why do you think anonymous functions are crippled? Do you think it's because Guido likes making bad choices, or because he was too short-sighted to see how that decision could harm his language later?
Implicit blocks are bad, for many reasons which I'm sure you've already heard. The problems don't just affect developers, mind you, but the language as well. They're the sole reason why anonymous functions in Python are so horribly crippled, for example.
The only reason Nim includes this retardation is that it's written by a guy convinced that the ridiculous mistake Guido made was actually a good idea. I get it: you like Python. Here's the thing, you like Python in spite of the ridiculous white space rules, not because of them. You've spent so many years defending that absurd design decision that you've convinced yourself that it's actually good.
Oh, BTW, with a sensibly designed language, just about every editor out there can format code properly with a single keystroke. The only possible argument in favor of Pythons implicit blocks, forcing idiots to indent their code, is essentially meaningless.
You're selling yourself short. Perhaps start with something simpler? (I've seen "I just can't do it" students succeed after just a few days playing with Microsoft's Small basic or events in RPG Maker VX Ace Lite.) Once you've got the basics down, everything else is a cake-walk.
I've said this before: Everyone writes crap code. Just look at anything you did a year or so ago. Your first thought will undoubtedly be "what was I thinking!"
The best advice I got when I started grad school, many years ago: "There are no good writers, only good re-writers." I've found that to be true for programming as well as academic writing.
the unfortunate thing is this industry is chock full of arrogant pricks.
Indeed. I blame the flood of autodidacts coupled with a society that treats people who can write computer programs as super-geniuses. It's hard enough for the average autodidact to be self-critical, particularly when everyone around them is busy telling them that they're amazing. A solid formal education usually knocks that arrogance out of you. (MD's excepted. They've somehow found a way to remain arrogant pricks.)
More important, coding exposes you to logic
I disagree. I know quite a few seasoned developers who couldn't pass an undergrad intro to logic class. Hell, I doubt half the autodidacts around here couldn't get past the section on Boolean algebra in CS101, despite a successful career in software.
I think when you say "logic" you really mean "critical thinking". Programming certainly helps with that, but so could countless other subjects. It's just easier to transfer those skills through programming.
People writing code for themselves is dangerous.
Only to your job security.
We all know that programming is ridiculously simple, and that anyone with a bit of time and effort can learn relatively quickly on their own. That's terrifying to some folks, particularly those used to being treated like a genius just because they possess that particular skill.
Diversify your skill-set a bit so you don't have to live in fear. You'll be a lot happier.
if you wanted me to do something artistic such as a painting or write a poem then I would have great difficulty.
I guarantee that with practice, and some instruction, you could be skilled at those as well.
But for some reason when it comes to computers we think that people have to become programmers.
The difference, of course, is that programming isn't nearly as difficult as medicine or, yes, even accounting. So once you get a handle on the basics, they're programmers.
I don't see how that relates.
Could it be that you're just bored with the topic and want to switch to something you're more comfortable discussing? Should I expect to see the anti-feminist brigade chime in as well?
Most people aren't fit to code.
Translation: I'm super special and unique because I can code.
Get over yourself. Children can teach themselves.
What business user would know what to do with a rar archive?
The how do you explain the popularity of OOP?
leading to bad code all over the place
On what basis did you come to that conclusion?
Unrestrained use of goto was demonstrated to be a bad idea decades ago
That's the point -- it was NOT shown "to be a bad idea". Further, this study suggests that Dijkstra's fears were not realized.
If you want to base your beliefs on the words of a holy prophet, and not on proper evidence, that's up to you. Just don't expect anyone else to go along with it.
The solution, then, is to stop teaching students such silly things until we can manage solid evidence either way.
With nothing conclusive, let's just let the silly meme die. Further propagating it is harmful, regardless of the future outcome.
That is a neverending wealth of evidence of how badly people code.
Yes, people write bad code. It's not a revelation. That has nothing to do with my request, however.
But your argument is silly. Of course banning conditional loops is dumb.
Of course it's silly, that was the point! That someone can misuse a control structure does not mean there is some fundamental problem with it. Everyone agrees with that until you mention goto, then they cry "blaspheme!".
Equally silly, of course, are the other arguments against goto. Rather than empty rhetoric, I'd like to see some actual evidence before I join the church of goto sucks. Is that too much to ask?
Right now, I'm staring at an empirical study that contradicts the received wisdom from the holy prophet Dijkstra.
"Banning" goto is like "Banning" jaywalking. Because enough people screw it up badly enough that it is simpler to just warn against it in general.
I'll ask you these then: When was the last time you saw someone use a goto in such a way that it harmed the programs readability, efficiency, or otherwise? When was the last time you saw someone structure their code to avoid a goto that make the program less readable, efficient, or otherwise.
I've seen bad code that uses goto, though I can't attribute those messes to the use of goto -- as you've pointed out, developers can make a mess with anything. I have, however, seen code that was messy because the developer wanted to avoid using a goto or where a goto would have made the code smaller and easier to read and reason about.
Still, that's just our combined experience. I'll assume that we're at an impasse as your experience differs dramatically from my own. The only way for us to resolve this is if we were to provide some actual evidence. To start, I'll offer you the study linked in the summary.
Why?