Slashdot Mirror


'Pragmatic Programmer' Author Andy Hunt Loves Arduino, Hates JavaScript (bestprogrammingbooks.com)

Andy Hunt is one of the 17 software developers who wrote the Agile Manifesto, and he co-authored The Pragmatic Programmer. Now Slashdot reader cerberusss writes: In an interview with Best Programming Books, Andy Hunt mentions he "hates languages that introduce accidental complexity, such as JavaScript -- what a nightmare of pitfalls for newbies and even seasoned developers... My go-to languages are still Ruby for most things, or straight C for systems programming, Pi or Arduino projects." Furthermore, he mentions that "I tend to do more experimenting and engineering than pure code writing, so there's occasionally some soldering involved ;). Code is just one tool of many."
Andy writes that he also likes Elixir, talks about Agile, reveals how he survived his most challenging project, and says the biggest advancement in programming has been the open source movement. ("Imagine trying to study chemistry, but the first half of the elements were patent-protected by a major pharma company and you couldn't use them...") And he also answered an interesting follow-up question on Twitter: "Do you feel validated in an age of Node and GitHub? Some of your best chapters (scripting and source control) are SOP now!"

Andy's reply? "We've made some great progress, for sure. But there's much to be done still. E.g., You can't ship process."

7 of 185 comments (clear)

  1. "Beware.. by LesserWeevil · · Score: 4, Insightful

    ..programmers with screwdrivers" a mentor of mine in SW engineering once said. I've largely ignored that dictum, as a more problematic group is programmers who have no idea what a screwdriver (or soldering iron) is for. Programs exist to interface with the real world in some way, and understanding the larger (sometimes analog or wetware) view can make the difference between an elegant, but useless, piece of code and something that changes the world.

  2. Well that makes sense by Kethinov · · Score: 5, Insightful

    Because of course one of the people involved in creating one of the worst management fads ever would also join the JavaScript hate train.

    "The Pragmatic Programmer." Hardly. Real pragmatism is recognizing that popular languages are often the best tool for the job, no mater how aesthetically distasteful they are.

    Ever notice how prolific JS users rarely defend the language? Of course it's badly designed. We use it because it's pragmatic to use the lingua franca of programming.

    What isn't pragmatic is using languages with declining market share because they feel aesthetically "better," or imposing horrible management fads like Agile/Scrum on your team against their will.

    So I'll pass on joining this guy's fan club.

    --
    You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    1. Re:Well that makes sense by MightyMartian · · Score: 2, Insightful

      Javascript is a horrible piece of shit, as a language and as a library set. It's dominance exists because of a bit of a historical accident. Everyone knows it is an utter garbage language, which is why so much effort is put into languages like Go, as a means to achieve reasonable web functionality without having to put up with that steaming pile of shit.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re: Well that makes sense by reanjr · · Score: 3, Insightful

      I will defend Javascript to pretty much anyone. All languages suck in various ways. Javascript at least has the sense to keep the language small, backwards compatible, and well defined. New language features are almost always targeted, useful improvements, with clear use cases. And it's fast as fuck (not really because of anything related to the language, of course, but still).

    3. Re: Well that makes sense by UnknownSoldier · · Score: 4, Insightful

      > All languages suck in various ways.

      Except JavaShit sucks worse. It was designed by a fucking moron in 10 days.

      JavaShit likes to masquerade it has native arrays but we can quickly dispel that notion via these tests:

      console.log( typeof 1 ); // native integer type
      console.log( typeof Math.PI ); // native constant floating-point number
      console.log( typeof "Hello World" ); // native string
      console.log( typeof [] ); // native array, right?
      console.log( typeof [] == "array" ); // sarcasm, this should work, right?
      console.log( Array.isArray( [] ) ); // Why is this needed??

      Which produces this output:

      "number" // OK -- so both integers and floating-point are treated the same way
      "number" // OK -- so both integers and floating-point are treated the same way
      "string" // OK
      "object" // Wut?? Why is Array returning object??
      false // There is no native array in JS
      true // WTF is the point of having a broken typeof if it doesn't work for arrays???

      How does JavaShit define concatenation with arrays? I mean, that isn't too hard to fuck up, right?

      console.log( [1,2] + [3,4] );
      console.log( typeof ([1,2] + [3,4]) );

      Out of the the 4 possibilities for a return type ...

      * The array [4,6] which is Vector or Matrix addition
      * The array [1,2,3,4] which is concatenation like [1,2].concat( [3,4] );
      * undefined -- Gee, one would think this would be expected, or
      * Throw an exception -- maybe even this one.

      ... guess what JavaShit does? It does a 5th retarded thing -- string concatenation!!

      "1,23,4" // <b>WTF!?!?!</b> Who is the fucktard that thought this would be reasonable??
      "string" // <b>WAT!?!</b> Idiotic type conversion to string!?

      --
      Only a complete and fucking moron defends JavaShit.

    4. Re: Well that makes sense by Raenex · · Score: 3, Insightful

      It was designed by a fucking moron in 10 days.

      So the "moron" designer was given 10 days to come up with a language that met marketing requirements, and he delivered, and beat Java (applets) at its own game. Not only that, he slipped in some advanced programming features that still makes the language relevant today. From your link:

      "Although the schedule and constraints might have been impossible for most programmers, Eich had a long history of building new programming languages, starting from his experience as a student at the University of Illinois, where he built languages just to experiment in syntax. At Silicon Graphics, he created languages that could be used to build extensions for network monitoring tools.

      Clearly, building "yet another" language wasn't the hard part for Eich--the hard part was producing a rich and powerful language while being prohibited from using the object-oriented syntax reserved for Java. He wanted to embed advanced features in JavaScript without using language syntax so the language would initially appear simple and lightweight, yet sophisticated programmers would be able to exploit its underlying power.
      Like many other languages, Java-Script took its basic syntax from the C language, including curly braces, semicolons, and reserved words. It was to be a light, friendly version of C with simpler semantics and better dynamic memory characteristics. Because a typical webpage's lifetime lasted from a few seconds to a few minutes, JavaScript could take a very simplified approach to concurrency and memory management.

      Eich built a simplified object model that combined structs from the C language, patterns from SmallTalk, and the symmetry between data and code offered by LISP. The Hypercard event model inspired the pattern for adding events to the HTML document. Object-oriented patterns were possible but via runtime semantics with prototypes (as in Self) instead of compiler-supported class syntax (as in Java and C++."

  3. What nightmare of pitfalls? by hey! · · Score: 3, Insightful

    Over the years I've come to realize that programming languages aren't standalone beasts. When you pick one, you get a lot of other stuff along with it: common libraries and frameworks, runtime systems, problem domains, communities of programmers who do things a certain way, and the sources where most people learn them. That last bit is not to be overlooked, one of the best features of C is The C Programming Language.

    As for pitfalls for newbies -- I think that's the browser, not Javascript. Javascript seems pretty straightforward in Node.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.