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."

185 comments

  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.

    1. Re: "Beware.. by Anonymous Coward · · Score: 0

      Sounds like a platitude

    2. Re:"Beware.. by __aaclcg7560 · · Score: 1

      When I was on the Google IT help desk in 2008, I had to walk a newly hired Stanford CS graduate through the process of turning on his own workstation because no one was standing around to turn it on for him. I had to explain to him that a cubicle farm wasn't a computer lab at the university. I've been reassured by various Slashdotters that CS students are not required to learn about hardware much less how to turn them on.

    3. Re:"Beware.. by Anonymous Coward · · Score: 0

      Wow, this one thing happened once 9 years ago, to a guy who was brand new at his job, cool story bro.

      You'll be glad to know that Stanford largely got rid of its Solaris and IRIX computer clusters a long time ago.

    4. Re:"Beware.. by __aaclcg7560 · · Score: 1

      Wow, this one thing happened once 9 years ago, to a guy who was brand new at his job, cool story bro.

      You missed my point, probably on purpose. Let me give you another example. When I was a lead video game tester, a new employee got assigned to my team. I showed him how to check out the console equipment from inventory, walked him over to his desk, and told him to connect the console to the TV. He told me he didn't know how. Like turning on a workstation, this was basic stuff that any person should know how to do. So I showed him how to connect everything together. When I complained to management, I discovered that he was a supervisor's nephew. He didn't last long as a tester.

      You'll be glad to know that Stanford largely got rid of its Solaris and IRIX computer clusters a long time ago.

      So what?

    5. Re:"Beware.. by LesserWeevil · · Score: 1

      Schools' CS departments have a curious attitude in this area. I was taking undergrad CSCI logic design course where everything was taught on a theoretical level and then they tossed the class into teams and led us into a lab with breadboards and boxes of TTL/CMOS ICs in them and told us to build an industrial controller in hardware. I chose instead to program an EPLD and presented my solution to the TA with a single IC. He looked genuinely perplexed and took the project report to the department head who scribbled "the object of the exercise is to show students it's impossible to build this without using a CPU" but gave my team an A anyway. So, the desired outcome was failure and distrust of underlying hardware solutions. I refused to accept the inevitable failure of the exercise, and look back on this as my own personal https://en.wikipedia.org/wiki/...

    6. Re:"Beware.. by __aaclcg7560 · · Score: 1

      I chose instead to program an EPLD and presented my solution to the TA with a single IC.

      Too many people have forgotten what circuit design was before processors. I took electronics courses in the early 1990's. I recently got back into it now that I'm older and have the money to pursue it as a proper hobby. Whenever I ask on an electronics forum how to do something without a processor, I don't get any answers. The default answer to every problem these days is to drop a processor in and figure out the rest in code.

    7. Re:"Beware.. by Anonymous Coward · · Score: 0

      It's cheaper to do it in code typically, especially since making changes is far easier in code. Still, it is pretty fun to build circuits.

  2. Edgy by Anonymous Coward · · Score: 0

    Ooooh going for some controversial choices there. Can't be many people who don't love Javascript but I guess that's just the sort of radical free thinker he is.

  3. 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 Anonymous Coward · · Score: 0

      Agile is fad? Hahahahahahaha.

    2. Re:Well that makes sense by Anonymous Coward · · Score: 0

      Name one bit of software written in js and 'the cloud' that's truly better than a properly written clientside application. You can't. There aren't any. It's all fisherprice variants at best. What else has javascript enabled? social media? I hardly call that a net win.

    3. 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.
    4. Re: Well that makes sense by Anonymous Coward · · Score: 0

      Google has several examples. They're a lone exception though.

    5. Re:Well that makes sense by Anonymous Coward · · Score: 0

      Agile, a fad since 2001.

    6. Re: Well that makes sense by Lisandro · · Score: 1

      This. The only reason JS is a thing is because browsers run it natively.

      I'm dying for something like WebAssembly to take over.

    7. Re:Well that makes sense by johnw · · Score: 1

      We use it because it's pragmatic to use the lingua franca of programming.

      Hardly a lingua franca - JavaScript is used because it's the only language web browsers understand.

      I've used a lot of programming languages, and I've spent quite a bit of time trying to learn how to write clean JavaScript. It can be done, but the language really doesn't help. You have to fight it every step of the way - a better designed language would help you, not hinder you.

      If a decent alternative to JS were suddenly to be supported by all the major browsers, the rush to get away from it would be immense.

    8. Re:Well that makes sense by Dutch+Gun · · Score: 1

      I've found that management fads are typically only as bad as the managers who impose them on their employees.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    9. Re:Well that makes sense by nyquil+superstar · · Score: 1

      It's way off topic, but why do you (seem) to hate Agile so much? We are a Scrum shop, and frankly it seems super great... better communication and understanding about what's being worked on.

    10. 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).

    11. Re:Well that makes sense by sg_oneill · · Score: 0

      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.

      As someone whos been coding for nearly 30 years, and uses JS on a more or less daily basis, I will say it now. Javascript is a language straight from the bowels of hell. In a browser its where it should be, its OK-ish. But on the server, what a mess. Its immature, missing very important features and consistenty is responsible for projects coming out ass-backwards late and broken, because its a language that just doesnt lend itself well to safe programming.

      Now, sure, typescript and some of the newer 2016/2017 feature sets do go some way to fixing that, the bulk of js out there is trash and a bad trap for innexperienced coders.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    12. Re:Well that makes sense by Kethinov · · Score: 1

      Hardly a lingua franca

      It's the world's most popular programming language, so yeah, it's a lingua franca.

      If a decent alternative to JS were suddenly to be supported by all the major browsers, the rush to get away from it would be immense.

      No doubt. But I'm not gonna wait around for that. Gonna use the lingua franca in the mean time.

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

      Agile, a fad since 2001.

      Based on my experience, it is. I haven't seen a lot of truly agile project succeed. I've seen a lot of "fragile" and a lot of cargo cult agile ("we do stand-up meetings and we have a JIRA backlog so we're agile") and those are indicators of a fad.

      I think the true value of agile has been to break the monoculture of MS-Project thinking and that's a good thing. But I don't think it has achieved much in organizations that have larger teams; those still consistently fail to deliver projects.

      --
      lucm, indeed.
    14. Re: Well that makes sense by reanjr · · Score: 2, Interesting

      I think the issue is that "clean" is in the eye of the beholder. It looks very different in OOP than it does in FP, both of which are pretty well supported paradigms in JS. Seems like the real argument is that JS doesn't make these decisions for you, so you don't get much guidance. That's certainly a speedbump, but it's also a feature, in that it is eminently flexible in the face of new paradigms.

    15. Re:Well that makes sense by Kethinov · · Score: 2

      It's a lot of unnecessary process and meetings. Daily standups, biweekly planning meetings, retrospectives, endless backlog grooming sessions etc. I've been at companies that burn 10-20% of the team's time each "sprint" in unnecessary meetings to discuss work rather than actually doing work.

      The meetings impose heavy burdens on anyone who doesn't want to be interrupted at that time. A typical 10am standup meeting is too early for night owls and too late for parents who drop their kids off to school at 7am, as there's a useless 3 hours between school and standup where you can't get anything done because there's a meeting soon. Scrum amps up context switching which prevents people from getting into the zone. Having lots of meetings and interruptions shreds your day to bits.

      Then there are the Scrum-specific tools. Rather than using modern project management tools that get out of your way like GitHub or GitLab, you've got regressive, redundant nonsense like Rally or Pivotal Tracker being thrown around. All so you can play planning poker in the cloud. Shoot me now.

      Defenders of Scrum tend to use no true Scotsman arguments. "Oh that wasn't Scrum." Or "that was Scrum being done badly." And so forth. Meanwhile the number of companies and teams doing it "correctly" seems to be few and far between. Perhaps because "correctly" is such a fuzzy thing to define. Means different things to different people. Seems to me where it "works," teams are successful in spite of Scrum, not because of it.

      Basically it's popularly understood that Scrum basically exists to micromanage the shit out of dev teams. The managers who like it are the shoulder tap types whose management style is straight out of 1950. Marshall McLuhan is rolling in his grave.

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

      It's way off topic, but why do you (seem) to hate Agile so much? We are a Scrum shop, and frankly it seems super great...

      Are you truly Agile, or are you simply using Scrum techniques to manage a backlog of features?

      Do you have business users as part of your sprint planning meetings? Do they perform acceptance tests at the end of each sprint? Etc.

      Being Agile is more tedious than it sounds.

      --
      lucm, indeed.
    17. Re:Well that makes sense by Lisandro · · Score: 1

      It's the world's most popular programming language, so yeah, it's a lingua franca.

      Not likely - Java and C++ would still contend that podium. It is one of the most popular languages in the world though but, again, only because there's no other choice when developing for the web.

    18. Re:Well that makes sense by nyquil+superstar · · Score: 1

      I can see where you are coming from. We are a pretty strict Scrum shop (retrospectives and all the ceremonies). I can't speak to the larger Agile picture, but yes, we have business users as part of the sprint planning session and during the sprint review (invite widely!). Our product owner is 100% non-technical, so that really helps with the business perspective on the dev team. While it can seem tedious, having the trust from the business that we are working on the right thing, and having a great and engaged product owner helps get dev team questions answered right away and keeps things trucking.

    19. Re:Well that makes sense by Kethinov · · Score: 1

      Did you miss the numerous articles like this published over the past few years? https://arc.applause.com/2016/...

      Seems pretty clear JS hit the popularity tipping point already. It's the world's most popular programming language. (For better or worse.)

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

      I love you. Thanks.

    21. Re:Well that makes sense by Kethinov · · Score: 1

      Me: "Nobody denies JavaScript is aesthetically distasteful. But you don't pick the best tool for the job based on aesthetics."

      You: "But JavaScript is aesthetically distasteful!"

      k.

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

      It's the world's most popular programming language

      "Most widespread" or "most used" does not mean "most popular." Plenty of people who hate it still use it.

      --
      systemd is Roko's Basilisk.
    23. Re: Well that makes sense by Anonymous Coward · · Score: 0

      Google's cloud apps are utter crap.

      Open the presentation one and do 'select all'.

      Lots of other examples. Then again, it's probably not js but just Google's being incompetent.

    24. Re: Well that makes sense by Kethinov · · Score: 1

      The official WebAssembly FAQ throws shade at that attitude.

      Is WebAssembly trying to replace JavaScript?

      No!

      It goes on to say that WebAssembly is meant to encourage hybrid stacks.

      It's much more likely the end result will be an ecosystem similar to Node.js, where some stuff is in JS, and other stuff is in native node modules.

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

      Don't buy it. If WA takes off and saner languages can be compiled to run on the web it will inevitably end up happening. Give it DOM access and wait a while.

    26. Re:Well that makes sense by Lisandro · · Score: 1

      Only if your one source is Stack Overflow. TIOBE and PYPL still have other languages ranking higher.

      Again: i don't want to underplay how popular JS is nowadays. But "world's most popular programming languages" is highly debatable.

    27. Re: Well that makes sense by Kethinov · · Score: 1

      That seems unlikely. I'm not aware of any efforts to get something other than JS writing directly to the DOM via wasm. That would be a loooooot of DOM APIs that would have to be replicated in Java or whatever.

      Besides, by the time something other than JS has full DOM access, ES7, ES8, ESwhatever will be out and JS will have slowly evolved into a usable language, eroding the appeal of switching to something less popular because the aesthetic differences won't be so vast anymore.

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

      Dunno man, this feels kinda like the climate change "debate" to me. Sure you can cherrypick data sets that show JS isn't quite there yet, but there seems to be a growing consensus that JS has already hit that tipping point. And if miraculously everyone is wrong about that, it won't be long before even the most stubborn surveys have to admit JS hit that tipping point. The momentum is rather obvious.

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

      Agile is shit unless you enjoy writing code you won't need or constantly reinventing the wheel.

    30. Re:Well that makes sense by Anonymous Coward · · Score: 1

      Like you are cherrypicking data to show that JS is #1?

    31. Re: Well that makes sense by Lisandro · · Score: 1

      You don't need to replicate anything. If an alternative appears, in time, it will just happen - the nature of the web is being constantly rewritten or abandoned altogether.

    32. Re: Well that makes sense by UnknownSoldier · · Score: 1

      > I will defend Javascript to pretty much anyone.

      Did you learrn nothing from BASIC in the 70's and 80's??? Only amateurs think misspelling a variable name without throwing an error is somehow "acceptable".

      When you are forced to use hacks like this "magic number" ...

      "use strict";

      ... where you can't disable strict mode, or worse, turn it off for only one function, you quickly see why it is shitty language.

    33. Re:Well that makes sense by mrchaotica · · Score: 1

      We use [Javascript] because it's pragmatic to use the lingua franca of programming.

      LOL, bless your heart.

      You just go right on thinking that and having fun playing in your browser sandbox.

      Pay no mind to all the C/C++ that implements that browser, and the server daemon on the other end, and the operating systems they both run on, and the libraries your code ends up calling to actually accomplish anything....

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    34. Re: Well that makes sense by MichaelSmith · · Score: 1

      Its single threaded, despite what node.js developers will tell you.

    35. 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.

    36. Re: Well that makes sense by UnknownSoldier · · Score: 1, Flamebait

      > All languages suck in various ways.

      Except JavaShit is brain dead.

      Any JS programmer worth their salt uses the triple equality test, ===, because JavaShit fucked up the normal equality comparison test, ==, due to unwanted type conversions -- one ends up with this retarded operator comparison table.

      if( 0 == "0" ) console.log( "equal" );
      if( 1 == "1" ) console.log( "equal" )
      console.log( false == "0" );
      console.log( "0" == false );
      console.log( true == "1" );
      console.log( "1" == true );

      Which produces this output:

      "equal"
      "equal"
      true
      true
      true
      true

      **FACEPALM**

      This forces one to do string concatenation with a dummy empty string prefix: var text = '' + x;

      Lastly, any language that ENFORCES the K&R Brace Style for "return", because it will silently fail otherwise, is broken by design.

      return
      {
        ok: false
      };

      As Douglas Crockford, author of JavaScript: The Good Parts", said at 34:31

      "Why am I betting my career on this piece of crap" ??

      --
      Only a complete and fucking moron defends JavaShit.

    37. Re: Well that makes sense by Anonymous Coward · · Score: 0

      I'm can't agree more. Unfortunately, it's not just a management fad but a religion where I'm at. You'd be safer politically insulting someone's mother. But damn you if you think somethings take time to plan before doing.

    38. Re:Well that makes sense by Kethinov · · Score: 0

      Cherrypicking applies in contexts where the momentum is against the data being cited. Nobody can deny the momentum is JS' side being the most popular programming language. Citing data that implies that it is not yet the case is an example of cherrypicking. Citing data that implies that it is, not so much.

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

      Nailed it.

    40. Re:Well that makes sense by angel'o'sphere · · Score: 1

      ... highly debatable.

      For web frontends?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    41. Re: Well that makes sense by Lisandro · · Score: 1

      Well, for web frontends it is not "the most popular language". It is the only language available.

    42. Re:Well that makes sense by angel'o'sphere · · Score: 1

      Perhaps you should invest the 200 bucks and make a scrum course?

      All you wrote here about agile and Scrum is nonsense.

      And yes, I preserve the right for me to say: 'that was Scrum done bad'.

      Or as we scrummers say: either you do Scrum, or you don't. There is no mid way of being half assed agile and claiming you do Scrum if you don't do Scrum 100% :)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    43. Re:Well that makes sense by angel'o'sphere · · Score: 1

      There is no agile method I'm aware of where business users are part of thr sprint planning.
      What would be the point if that!?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    44. Re:Well that makes sense by lucm · · Score: 1

      There is no agile method I'm aware of where business users are part of thr sprint planning.
      What would be the point if that!?

      This is the role called "the Product Owner". That person is the link between the product and the users, and if you don't have one in your team, you're not doing Agile.

      In my experience, when people ask why a Product Owner should attend sprint planning meetings, it's because they're not doing agile, they're pretending to.

      --
      lucm, indeed.
    45. Re:Well that makes sense by Anonymous Coward · · Score: 0

      Damn, where are my mod points when I need them?

      Agile sucks shit as it offloads all responsibility off management.

    46. Re:Well that makes sense by phantomfive · · Score: 1

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

      The only reason Javascript is the "best tool for the job" is because it's the only tool available. If you only have a hammer, every problem looks like a nail, and that describes Javascript perfectly. MFC was the the best choice for windows UIs for a long time, so I used it, but it still sucked (and still does suck).

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

      That's fine.

      --
      "First they came for the slanderers and i said nothing."
    47. Re:Well that makes sense by Anonymous Coward · · Score: 0

      That might be the most fucked up thing about agile fuckery.

      All failures are regarded as "not ".

      The problem is that all agile projects are failures.

      Even the original agile project went way over budget and never finished because it was given the axe by GM.

      Fuck agile and all its cult members.

      You asshats are worse than the PHP amateur fuckboys.

    48. Re: Well that makes sense by reanjr · · Score: 1

      If you can't be bothered to use professional tools which glaringly highlight misspelled variables, then perhaps you should stick with something with more hand holding. I've never really felt compelled to "use strict", because I - as a developer - have discipline, and don't need it.

    49. Re: Well that makes sense by reanjr · · Score: 1

      While the code you write is running single threaded, that's only the programming model; the program you create with that code is decidedly multi-threaded. The truth is it's easier to write properly multi-threaded code in Node.js for the vast majority of real world use cases, and for everything else, you can write multi-process code with good language support built right in.

    50. Re: Well that makes sense by reanjr · · Score: 1

      Idiosyncratic? Sure. But it takes literally an afternoon to learn the entire language. Unless you're a moron.

    51. Re: Well that makes sense by reanjr · · Score: 1

      So, if you have no use for a sloppy equality test, why would you use it? I personally can't remember the last time I've used it, but having an operator I never really have a use for has never once impeded my ability to get shit done. Do you have some sort of arthritis that makes that third "=" painful to type, or is the arthritis in your head?

    52. Re: Well that makes sense by reanjr · · Score: 1

      Fuck I almost never use bitwise or, either, but god damn, it doesn't bother me that it's available.

    53. Re:Well that makes sense by hazardPPP · · Score: 1

      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.

      This is however a bit of a chicken and egg problem, no? If we keep using something because "it's the thing everyone uses", we'll keep on using it forever and never fix it, no matter how bad it is (and you admit it's bad). In order to come up with alternatives and push on them people, we need folks who will keep telling us how bad the status quo is and why. It's not a sufficient condition, but it is a necessary one. Don't tell me dominant or widespread languages can't be replaced - whatever happened to the proliferation of FORTRAN, Pascal/Delphi, or various flavours of BASIC? Things won't happen over night (cf. the Shockwave/Flash to HTML5 transition) but it can be done provided that a better set of alternatives to JS emerge.

    54. Re: Well that makes sense by reanjr · · Score: 1

      Here's a quick study guide, if this is too hard to mentally map type checks:

        * if it's a degenerate value, such as null or undefined, use ===
        * if it's a scalar like a number or string, use typeof
        * if it's an object (yes an array is an object), use instanceof for classically inherited types (which includes all buit-in types), and isPrototypeOf for prototypally inherited types.

    55. Re: Well that makes sense by reanjr · · Score: 1

      If you don't know what types you're working with, why don't you just cast them?

      String(a) + String(b) or Number(a) + Number(b) is pretty easy.

      If you're arguing that JS exposes you to your own sloppy conventions, then I agree.

    56. Re: Well that makes sense by reanjr · · Score: 1

      Re: K&R, just pretend you're at a REPL. If what you're doing would confuse a REPL, then it's not going to work as expected in JS.

      That said, very little JS uses K&R for anything because it is an absolute mess when you start using inline callbacks. If you want to be a special snowflake, then you can use whatever format you like by using a var/const instead of a literal, but perhaps you should get over yourself and just do it the "normal" way.

    57. Re:Well that makes sense by nyquil+superstar · · Score: 1

      Yeah, our product owner is 100% non-technical, and she's a critical part of sprint planning. Honestly, I don't know how you'd be successful without it that way. I mean, who answers questions about what's actually meant to happen?

    58. Re:Well that makes sense by nyquil+superstar · · Score: 1
      Fair points, I think. But I'd argue that spending 10-20% of your time to plan (get on the same page), stay engaged with the business (goes both ways, they are engaged with you!), and to talk about what could improve is time well spent.

      For us, the standup isn't much of a problem, but we are only across a few timezones, and for the most part we all work pretty normal hours. I could see how it might break your flow otherwise. Distributed teams are a challenge for sure.

      I'm with you on the tools, I think they all kinda suck. Really, I much prefer index cards and stickies, but then there's the distributed teams problem.

      Bummer about the micromanagement part; for us it's the opposite. The team gets to pretty much decide what the next two weeks looks like and who's doing what. If we didn't communicate well, then I could see this falling apart. But we make conscious effort to communicate. Really, if micromanaging is happening, I'd argue that the model isn't being applied well, and that *ought* to come up in retrospective. A good scrum master should notice it and take action.

    59. Re:Well that makes sense by nyquil+superstar · · Score: 1

      What would you suggest instead? We use it because we've never seen anything better.

    60. Re: Well that makes sense by johnw · · Score: 1

      I think the issue is that "clean" is in the eye of the beholder.

      Sounds good, but utterly untrue. There are plenty of objective criteria by which the clean-ness of code can be assessed. Yes, you get beginner programmers who take an attitude of "That's your way; this is my way - we're both entitled to our opinion." but unless they shed that view point they'll never become competent.

      The fact is that to achieve even something as simple as an encapsulated module of code which won't clash with anyone else's code, if you're working in JavaScript you have to jump backwards through hoops to achieve it.

      The only reason to use JavaScript is because it's the only language available. It makes producing clean code much harder than it should be - it can be done, but it takes a lot of work.

    61. Re: Well that makes sense by cyber-vandal · · Score: 1

      They are better because I can use them on the OS of my choice and any changes are available immediately.

    62. Re: Well that makes sense by cyber-vandal · · Score: 1

      Ugh. Too much "leveraging".

    63. Re:Well that makes sense by Anonymous Coward · · Score: 0

      So you admit that you are stupid and blind.

      Good to know.

      Agile is shit, that you don't understand that basic truth show your competence for all to see.

    64. Re:Well that makes sense by Anonymous Coward · · Score: 0

      Scrum has nothing to do with the agile manifesto though, especially when people demand following the procedures 110%, which is the anti-pattern set out in the manifesto. Following process is good when it's good, and not when it's not. Agile Manifesto is much more pragmatic than 99% of people on the planet are.

    65. Re:Well that makes sense by Anonymous Coward · · Score: 0

      Kethinov is correct. My team transitioned to Scrum 1 year. My company gave everyone a two day training course lead by a Certified Scrum Trainer. Then we hired a Certified Scrum Master to lead the team. Meanwhile, the Certified Scrum Trainer continues to work with the team.

      What Kethinov described is exactly what my team is doing. We are doing Scrum 100% and the company has dropped a lot of cash on it. Maybe you need to spend 200 bucks and take a scrum course?

    66. Re:Well that makes sense by Anonymous Coward · · Score: 0

      When my team transitioned to Scrum, we solved the issue of developers working different hours by mandating everyone works from 8am to 5pm. Agile and Scrum mandate constant collaboration and communication. If your agile workspace is quiet, that's bad! When management walks in, they should hear the "buzz of collaboration and innovation". If some devs come in a 7am and others don't roll in until 10am, you can't have constant collaboration.

    67. Re: Well that makes sense by UnknownSoldier · · Score: 1

      I'm disciplined enough to use triple equals. I'm the one responsible for introducing it to our internal Code Standards.

      The problem is the rest of the people on my team. who aren't.

    68. Re:Well that makes sense by angel'o'sphere · · Score: 1

      The product owner is not needed for Sprint Planning. However in Scrum he is usually present.

      The product owner is not a business user, not even in the remotest sense. Well. there might be exceptions. A business user evolving into a product owner or product manager.

      In my experience, when people ask why a Product Owner should attend sprint planning meetings, it's because they're not doing agile, they're pretending to.
      This 'question' has nothing to do with agile or not.
      The question is: does the team need the PO for clarifications during sprint planning? If that is case, then obviously the back log items are not clear enough (acceptance criteria etc.)

      Most sprint plannings I joined the PO was happy smiling/grinning in the corner ;)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    69. Re:Well that makes sense by Kethinov · · Score: 1

      I'll provide a non-condescending response to counter the AC. We agile critics are not all like him.

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

      From your article, he doesn't doesn't like a moron. What are your achievements? Ever designed a language in ten days?

      I hate JavaScript as much as the next person, and it has certainly been a victim of its success and used way outside its original scope, but calling its designer a moron seems a bit harsh. Moronic even.

    71. 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++."

    72. Re: Well that makes sense by Bust0ut · · Score: 0

      Meh..

      "JavaShit likes to masquerade it has native arrays but we can quickly dispel that notion.."
      Uh, everything in JS is an Object.
      typeof new Number() === "object"
      typeof Number() === "Number"

      "console.log( Array.isArray( [] ) ); // Why is this needed??"
      I have never used the isArray() method in my 2+ years of Javascripting.
      Array().constructor === "Array"

      "How does JavaShit define concatenation with arrays?"
      The + operator will call the Objects valueOf() member unless it is followed by a String() in which case it calls its' toString() member instead.
      If you wanted to do arthritmatic on the Object than you need to put the + before the Object.

      +[1,2] !== NaN = true

      "... guess what JavaShit does? It does a 5th retarded thing -- string concatenation!!"
      Uh, It is really easy to concat array values.
      Array(1,2).concat([3,4])

      --
      He is crazy if you think about it; I am not.
    73. Re: Well that makes sense by reanjr · · Score: 1

      I agree. Working with shitty devs sucks. You can write Fortran in any language.

    74. Re: Well that makes sense by reanjr · · Score: 1

      I do not understand what is hard about encapsulating code. There are no hoops. Module encapsulation just works. What am I not understanding? // readval.js
      module.exports = () => 42; // other.js
      const readval = require("./readval");
      const otherreadval = require("someone-elses-readval");
      console.log(readval());
      console.log(otherreadval());

    75. Re: Well that makes sense by reanjr · · Score: 1

      I am terribly sorry about the formatting.

    76. Re:Well that makes sense by flargleblarg · · Score: 1

      [...] where you can't get anything done because there's a meeting soon. [...]

      WTF.
      What kind of undisciplined clowns are you employing there?

      It's no different at all than lunchtime coming up. You work until it's time to take a break. A meeting is a break from work. Are you not able to get anything done in the three hours before lunch?

    77. Re: Well that makes sense by Anonymous Coward · · Score: 0

      There are already a bunch of languages that can compile to JS. No need to wait for WebAssembly. Stop only looking at what's trending and go do the tiniest amount of research on the problem you have and you'll find some solutions. My recommendation is TypeScript, but there are others, each with their pros and cons.

    78. Re: Well that makes sense by Anonymous Coward · · Score: 0

      So you propose to work around JS shitness with "compilers" that output JS code? Genius.

    79. Re:Well that makes sense by nyquil+superstar · · Score: 1

      Thanks for that. Certainly some interesting concepts to consider.

    80. Re: Well that makes sense by erapert · · Score: 1

      And it's fast as fuck...

      Wrong.

    81. Re:Well that makes sense by Anonymous Coward · · Score: 0

      LAWL

      What a joke

    82. Re: Well that makes sense by Anonymous Coward · · Score: 0

      Only a moron wouldn't understand why JavaScript does exactly what it does, in all of the examples you've provided.

    83. Re: Well that makes sense by Anonymous Coward · · Score: 0

      Way to cherry pick a quote. He goes on to say that the good parts are really good and the bad parts are easily avoidable.

      Dumbass.

    84. Re: Well that makes sense by Anonymous Coward · · Score: 0

      They are compilers.

      You are the genius that doesn't understand compilers.

    85. Re:Well that makes sense by Anonymous Coward · · Score: 0

      What makes you think the person is a 'him', you sexist fuckstain.

      PS: agile sucks shit and anyone who uses it is a dumbass cult member.

    86. Re: Well that makes sense by Anonymous Coward · · Score: 0

      You should be you shitlord.

      How dare you!

  4. 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.
  5. fk your transpilers by Anonymous Coward · · Score: 0

    I like what I can do with JavaScript in the browser, but I don't like the language.

  6. Accidental complexity by Dutch+Gun · · Score: 3, Informative

    A number of newer languages are embracing the idea of protecting the programmer from doing the wrong thing by accident, and I welcome this trend.

    Even though I enjoy my occasional work with Python, the other day I accidentally forgot to explicitly reference a specific variable from a returned tuple, the error code I wanted to check against. Python happily let me compare tuple_value != 0 without complaint. While it may be possible to conceive of a situation in which a programmer MIGHT want to compare a tuple against an integer, it seems like 99% of the time, it would be best to throw an error, and force the programmer to do such an operation explicitly, rather than assuming it was intentional. It would have saved me a lot of hassle had this operation not been permitted. So, just one example there.

    JavaScript has a lot of similar issues, from what I understand, such as weak scoping rules, global by default, no namespaces, and overly-generous implicit type coersion. All these things seem to work against the programmer, even if they were originally designed as conveniences.

    It's really a shame that "what we have" for the web is JavaScript, so it's sort of impossible to work in web and ignore it. In my particular industry, "what we have" is C++. I'm not sure whether I should feel fortunate or not compared to web programmers. C++ has it's own particular nightmare of complexity, but the good news is that with C++, you can protect yourself from stupid mistakes with enough self-discipline, and the language has improved remarkably in the last 6 years.

    --
    Irony: Agile development has too much intertia to be abandoned now.
    1. Re: Accidental complexity by reanjr · · Score: 2

      Weak scoping rules? How do you differentiat between strong and weak scoping? Either an identifier is in scope or it's not.

    2. Re: Accidental complexity by reanjr · · Score: 2

      Also, I've never once felt any need for namespaces in JS. Whether you're using ES6, CommonJS, or require.js, you can name anything whatever you want, so there are no naming conflicts which require namespaces to address.

      Also, this is one example of how JS deters you from globals, and pushes you into DI.

    3. Re: Accidental complexity by mikael · · Score: 1

      I believe it is to do with web browser clients connecting to remote servers and making transactions:

      http://knowledgebase.progress....

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    4. Re: Accidental complexity by Dutch+Gun · · Score: 0

      Sorry, that was a terrible description. How about "error-prone scope rules"?

      I mean that was originally no such thing as block scope for variables, only global and function-based scope. You can use a new keyword to do that now, but that feature as a whole seems error-prone and confusing, and could have been better with properly designed outer-to-inner nested scope from the beginning, like most other languages have.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    5. Re: Accidental complexity by Dutch+Gun · · Score: 1

      None of those things I listed are *essential* for writing high-quality software. Those are just things that make life easier for the programmer, and help them to avoid mistakes.

      Also, the global namespace in JavaScript has certainly been the cause of many bugs, and more than a few security issues as well. Were you designing the language from scratch today, you'd certainly build in support to make it much easier to write code in protected "containers" of sorts, and make it much more difficult to breach those containers accidentally.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    6. Re:Accidental complexity by MichaelSmith · · Score: 1

      Yeah I got caught by something similar. An int set to None is False. Changed that variable to be a list and a corner case where I passed an empty list was treated as False where I expected it to be True. I as in the habit of treating None as False and it bit when I changed the type of my data.

    7. Re: Accidental complexity by UnknownSoldier · · Score: 4, Informative

      In JavaShit, variables can be used ANYWHERE in a function, even outside their _expected_ scoping.

      For example, weak scoping:

      function foo()
      {
          for( var i = 0; i < 3; i++ )
          {
              var bar = 42 + i;
              console.log( bar );
          }
       
          bar = 99; // An error in any sane language but JavaShit was designed by an moron so this is OK.
       
          bat = 99; // typo, but this OK in non-strict mode too, because JS is the new BASIC.
      }

      In contradistinction to C++ which has strong scoping:

      void foo()
      {
          for( auto i = 0; i < 3; i++ )
          {
              auto bar = 42 + i;
              printf( "%d\n", bar );
          }
       
          bar = 99; // ERROR: 'bar' was not declared in this scope
       
          bat = 99; // ERROR -- compiler catches this typo which is a potential bug being masked
      }

      Scoping helps prevent name collision and bugs.

      --
      Only an amateur defends JavaShit; professionals are too busy trying to work around the brain dead language designed in 10 days.

    8. Re: Accidental complexity by Anonymous Coward · · Score: 0

      If you never felt the need for namespaces then you never did any serious development.

    9. Re: Accidental complexity by Anonymous Coward · · Score: 0

      Get a hold of yourself.

      JavaScript uses a concept called 'hoisting' in which all variables in a function are function scope, not block scope.

    10. Re: Accidental complexity by reanjr · · Score: 1

      I'm typically targeting an older version of the language which doesn't support block scoping yet. Every once in a while, I kind of wish I could block scope a for loop counter. But 99 times out of 100, I'm using something like .forEach(), or .map(), or .reduce(), which give you a function scope, anyway, so it's not too bothersome. And block scoping IS available in the newer version of the language, so it's really an annoyance I push on myself. I certainly can't blame the language for not using a feature it actually supports.

    11. Re: Accidental complexity by reanjr · · Score: 1

      If you declare all your vars at the beginning of a scope, how is it different than outer-inner scoping?

    12. Re: Accidental complexity by reanjr · · Score: 1

      Says someone who doesn't write JS for a living. Any problem "namespaces" are intended to solve are addressed trivially with just module names, and the paths inside them. If you feel like you need a namespace in JS, it's probably because you made everything global.

    13. Re: Accidental complexity by reanjr · · Score: 1

      Tough to say. Global-everything is a valid paradigm for tiny projects. If tasked with re-doing JS, I'd think long and hard about invalidating a legitimate paradigm, even if it's a paradigm I wouldn't use. That said, until using JS, the thought would not have occurred to me that you might want that.

    14. Re: Accidental complexity by Anonymous Coward · · Score: 0

      Would be better to call it "removing all toilet doors in your house"

    15. Re: Accidental complexity by Anonymous Coward · · Score: 0

      It is not correct just because you gave it a name, you know.

    16. Re: Accidental complexity by Anonymous Coward · · Score: 0

      bat = 99; // typo, but this OK in non-strict mode too, because JS is the new BASIC.

      There are a lot of languages out there that are OK with no variable pre-declaration. I'm not sure it's as bad as you think it is.

    17. Re: Accidental complexity by UnknownSoldier · · Score: 1

      Hoisting is just the formal name for retarded design.

      Maybe one day you'll grow up and learn about Basic Blocks.

  7. Original submitter here by cerberusss · · Score: 4, Interesting

    Original submitter here... I just came here to compliment the editor (EditorDavid). This is my first time submitting and thought my summary was pretty good. But EditorDavid just went above and beyond, extending it with stuff from Twitter, couple of sentences on Andy Hunt's work ethic cetera.

    It's been tradition to hate at the editors here, but this time I have to hand it to them, compliments are in order.

    --
    8 of 13 people found this answer helpful. Did you?
    1. Re:Original submitter here by mykepredko · · Score: 1

      I suspect that if you ran "cerberusss" through the WebCryptoAPI (https://www.w3.org/TR/WebCryptoAPI/) the result would be Andy Hunt.

    2. Re: Original submitter here by Anonymous Coward · · Score: 0

      I miss Bennett's daily novellas.

    3. Re:Original submitter here by Anonymous Coward · · Score: 0

      Who was that guy who was the infamous submitter after Roland? I forgot his name.

    4. Re:Original submitter here by Dutch+Gun · · Score: 1

      Thanks for the article submission, and good to hear some positive feedback for a change when the editors do a proper job. Just ignore acerbic bitter-balls that can't find anything better to do with their time than to lash out at strangers on the internet. It's really sort of sad, when you think about it.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    5. Re:Original submitter here by wonkey_monkey · · Score: 1

      and good to hear some positive feedback for a change when the editors do a proper job

      You'll always get positive feedback - or least, moderate surprise - when they do a proper job. The problem is that that is rarely ever.

      --
      systemd is Roko's Basilisk.
    6. Re:Original submitter here by Frosty+Piss · · Score: 1

      Who was that guy who was the infamous submitter after Roland? I forgot his name.

      There was Bennett Haselton, who had a lot of good ideas but was just WAY too pedantic and long-winded for many here. Then there was another guy that like Roland just shotgunned out his stuff all over the web to sites like Slashdot and Soylentnews (and others), but when you went to his blog, the content was essentially the same short summary that was at Slashdot, with links to the real source and Google Ads. I forget his name, but there were copious pictures of his swanky accommodations and the occasional travelogue about the latest exotic place he had been, so when he stopped submitting I supposed he had lost interest and was on to the next "Man of Leisure" activity. I got the impression he drank Dos Equis...

      --
      If you want news from today, you have to come back tomorrow.
    7. Re:Original submitter here by drinkypoo · · Score: 1

      It's been tradition to hate at the editors here, but this time I have to hand it to them, compliments are in order.

      It's been tradition to hate at the editors more than to compliment them because they've done more inattentive work than exemplary. My own experience with submissions has been mixed. In one case I thought my submission was much improved, and in one case I thought my submission was much better than what was posted. I'd call it a wash. I still blame the users for most failures.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    8. Re:Original submitter here by cerberusss · · Score: 1

      I still blame the users for most failures.

      Well, if we're going to blame someone, I'd say it's that fucking asshole CowboyNeal, who's been ruining things since 1998. He should be quartered and flogged, or perhaps the other way around.

      --
      8 of 13 people found this answer helpful. Did you?
  8. It's both because Javascript developed in 10 days by raymorris · · Score: 4, Informative

    As someone else said, often Javascript is the right tool for the job, because the job is manipulating DOM elements in a web browser.

    A major new future in Netscape 2.0 was that it had Scheme embedded, for scripting. Ten days before the public beta, it was decided that the Scheme effort couldn't be salvaged - it just wouldn't work. But Netscape's hype had promised embedded scripting. So in ten days Brendan Eich designed, coded, tested, and integrated Javascript. 10 days for all of that means he had about two days to design the language. It shows. Other languages have had years, or at least months, of design. Javascript had about two days. Eich did an amazingly good job, for weekend design project.

    Obviously Javascript has matured a bit since then, but its origin as the mother of all all-nighters, the crashiest of all crash projects, still shows in its design, its inconsistent naming of functions, etc.

  9. Javascript to become the next COBOL? by mykepredko · · Score: 1

    Reading this, I'm thinking back to the early '80s when COBOL could be described exactly the way you are talking about Javascript.

    Now, we're 30+ years later and people who have experience with COBOL (and the systems/tools that work with it) are in hot demand because of applications that won't die.

    In 30 years, will we see the same need for programmers that understand how Javascript is programmed and can support the applications that were written in it?

    1. Re: Javascript to become the next COBOL? by Lisandro · · Score: 1

      Doubt it. COBOL was used for banking enterprise applications, the type that will run and be supported for years.

      The main use of JS is web sites - they're either constantly being rewritten or abandoned after a few years.

    2. Re: Javascript to become the next COBOL? by Anonymous Coward · · Score: 0

      Nope. It will be gone the way of swf online player.

    3. Re:Javascript to become the next COBOL? by MightyMartian · · Score: 1

      I'm not so sure. COBOL was, and still is used heavily in a helluva of mission critical applications, particular in major financial systems. If there's a modern day equivalent to COBOL, it's Java, not Javascript. While Javascript is certainly going to be around for a while, if it is supplanted, I think it will be more like Flash.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
  10. Js does suck by Anonymous Coward · · Score: 0

    What I find interesting is that all of you went right for client side horribleness. What about node.js people? They think it's the end all language. Those people are the worst.

    Node does not scale. How can it? No threads!

    1. Re:Js does suck by Anonymous Coward · · Score: 0

      Threads don't scale.

      Erlang doesn't have threads and scales out more than any language that supports threads.

      Threads are brittle and error-prone.

    2. Re:Js does suck by MichaelSmith · · Score: 1

      Anything which works at the OS level has threads because it can spawn processes. The JVM has threads because it can't (easily) spawn processes, but many implementations use processes for JVM threads. JS, with lambda expressions and even driven programming claims to be threaded but is not. Its just callbacks where you have no control over when the calls are going to be made (usually in a rush when your main call ends).

      Like it or not, our applications require threading. Your indexer has to keep running while your user presses buttons. That sort of thing.

    3. Re:Js does suck by Anonymous Coward · · Score: 0

      They only do because you actually used Java. Threads in Java is easily in the top 2 reasons why Java is a bloated mess of spaghetti.

      You are being very pedantic. CPU threads are different than threads used at a higher level.

      There is a world of difference between processes and threads. One is brittle and falls down easily, one isn't(hint: not threads).

  11. Red flag by lucm · · Score: 0

    My go-to languages are still Ruby for most things

    I guess "The Pragmatic Programmer" is one book I'll never buy.

    Ruby is the Toyota Corolla of programming languages. It isn't especially well-suited for any specific task; it doesn't scale well, it doesn't optimize well, it has none of the advantages of similar languages like Python or Groovy. I see no reason why someone who doesn't already know ruby would find it useful to learn it. It's as pointless as Pascal.

    --
    lucm, indeed.
    1. Re:Red flag by Carewolf · · Score: 1

      As he says himself he doesn't code, he "experiment". So for useless fool never making anything useful an unpopular terribly designed and unremarkable scripting language with the shittiest syntax short of mocklangs would be perfect.

    2. Re:Red flag by Anonymous Coward · · Score: 0

      Ruby is objectively superior to both Python and Groovy and recent versions of the primary Ruby implementation are faster than the primary implementations of both Python 2 and 3.

    3. Re:Red flag by Anonymous Coward · · Score: 0

      Ruby is better at string manipulation and unix integration than any other language, including Perl.

      Python is the Java of the scripting world, verbose and full of inconsistencies. Groovy is unadulterated shit.

    4. Re:Red flag by __aaclcg7560 · · Score: 1

      Python is the Java of the scripting world, verbose and full of inconsistencies.

      That sounds like Python 2. Python 3 is much better.

    5. Re:Red flag by lucm · · Score: 1

      Ruby is objectively superior to both Python and Groovy

      You forgot to put a smiley at the end of your statement so people could tell you're joking and not being stupid.

      --
      lucm, indeed.
    6. Re:Red flag by lucm · · Score: 1

      Ruby is better at string manipulation and unix integration than any other language, including Perl.

      No it's not. Just because *you* can't do string manipulation in other languages doesn't mean those languages are not as good as ruby. It just means you're a one-trick pony.

      There are many languages I personally don't like, such as Go, Scala or C++. But I can see why someone would choose one of those for a specific project, because they each have specific advantages.

      But there is no aspect of ruby that another language isn't better at. Even for the "casual programmer" niche Python is much better.

      And don't get me started on RoR. it's been a long time since I've heard of RoR projects in contexts other than getting rid of them and rewriting them in something that works. Whoever invented ruby and RoR owes the IT world billions of dollars wasted on nightmarish maintenance and abysmal performance.

      --
      lucm, indeed.
    7. Re:Red flag by Anonymous Coward · · Score: 0

      I listed what Ruby is better than any other language doing. There is no other language better at handling text or integrating with the most widely deployed OS in the universe. Period.

      Python sucks, it is a small step above PHP. It is garbage, suitable only for amateurs with no brains.

      RoR is trivial to work with. It is very easy to do anything including adding functionality to it. The only people I have ever seen bash it are PHP fuckwits.

    8. Re:Red flag by lucm · · Score: 1

      the most widely deployed OS in the universe

      You're really good at making unsupported claims.

      --
      lucm, indeed.
    9. Re:Red flag by Anonymous Coward · · Score: 0

      Unsupported?

      What the fuck?

      Name an OS more widely deployed than Linux.

      Your ignorance is astounding and frightening. Trumpanzee?

    10. Re:Red flag by Anonymous Coward · · Score: 0

      Ruby is much better at OO than any other OO language save Smalltalk. Methinks you don't have the first clue about Ruby.

    11. Re:Red flag by Anonymous Coward · · Score: 0

      Says the numbnuts who doesn't understand Ruby.

      As far as OO languages go, it is superior to all of them, especially that shitstain Python.

  12. Re:It's both because Javascript developed in 10 da by wonkey_monkey · · Score: 1

    often Javascript is the right tool for the job

    Eh... right tool, or only tool?

    --
    systemd is Roko's Basilisk.
  13. Pointers Aren't Nesesary In Arduino by BrendaEM · · Score: 0

    I wrote more than 2,000 lines, plenty of global variables--and no pointers. It's a serial port controlled command-line stepper motor control program with 40 commands that fits in 24k.

    Video of what it does:
    https://www.youtube.com/watch?v=Lm8oprDhAnQ

    http://forum.arduino.cc/index.php?topic=469343.msg3213804

    Having worked with Arduino's for years, I question pointer use for all but operating system and hardware level programs.

    --
    https://www.youtube.com/c/BrendaEM
    1. Re:Pointers Aren't Nesesary In Arduino by MichaelSmith · · Score: 1

      AVR stuff is just looping around, reading and writing bits and bytes. Fair enough. Elsewhere In C I would use pointers for linked lists. Hard to get stuff done without dynamically allocated data structures.

    2. Re: Pointers Aren't Nesesary In Arduino by Xenna · · Score: 1

      Depends on what you're writing. I wrote a fairly large Arduino library (Automaton) and to keep memory overhead to a minimum I really needed a linked list and pointers.

    3. Re:Pointers Aren't Nesesary In Arduino by Anonymous Coward · · Score: 0

      Posting in a fixed-width font (that isn't code) makes you look like a moron.

      Just sayin'.

    4. Re:Pointers Aren't Nesesary In Arduino by erapert · · Score: 1

      Elsewhere In C I would use pointers for linked lists.

      Don't use linked lists if you care about performance. If writing a dynamic array is a pain in the ass in C then stop using C. Use C++ instead.

      And don't give me that ignorant crap about C++ being bloated in comparison to C and thus unacceptable for embedded uses.
      This guy wrote pong for the C64 in under 1KB of compiled code (including sprites!) with ZERO ram usage.

  14. amen! by Anonymous Coward · · Score: 0

    I have stayed away for web programming because I hate javascript so much. I am not a slave. I choose not to spend part of my life dealing with that horrible abomination of a programming language.

    1. Re:amen! by Anonymous Coward · · Score: 0

      "Amen?"

      Well at least you're open about it being religion rather than pragmatism.

  15. So you're saying... "Some guy has opinions".... by Anonymous Coward · · Score: 0

    yawn. :(

  16. Re:It's both because Javascript developed in 10 da by hey! · · Score: 1

    It's funny that you mention that, because I was going to say that Javascript is a lot better if you program in it as if it were Scheme than if you try to program in it as if it were Java.

    The inconsistent naming of functions makes the same point I was making: that's not a language problem, it's an API problem. If you take Javascript out of the browser and put it into a freshly designed runtime environment (e.g., Node) that aspect of the language experience goes away.

    Another language that "has" this problem is R. R is peculiar enough anyway -- it doesn't seem to have any scalar types. If you assign 3 to X ("X <- 3"), it creates X as a vector of length 1 and puts 3 in X[1]. If you say "X + 1", it's the equivalent to the Python "map(lambda n: N+1,X)". That's surprisingly easy to get used to, because it works in the problem domain the language targets (statistics). What's harder to get used to are the libraries, which are magnificent in their comprehensiveness but are obscure, inconsistent, and poorly documented.

    Those libraries are a major reason to use R -- much like CPAN is a major reason to use PERL. This makes those libraries' irregular design and stunningly half-assed documentation an inextricable part of the experience of being an R user. The closest thing I can compare it to is learning a natural language like French. You need books with titles "100 Irregular French Verbs Conjugated" because when the conventions aren't uniformly applied you have no choice but to drill until you have the specifics memorized.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  17. OO is "well supported" in JS ? by Anonymous Coward · · Score: 0

    You can do OO in JS, but it is not well supported. In other words, you can HACK OO programming into the language in a kinda sorta way.

    1. Re:OO is "well supported" in JS ? by Anonymous Coward · · Score: 0

      It is very well supported. It is just a different type of OO. Unlke C++, Java, C#, Python, PHP it is at least a correctly implemented in regards to its type of OO. They all got it completely wrong.

      The only languages I have seen get OO 100% correct are Smalltalk(its creator coined the term) and Ruby which is a near clone of Smalltalk's implementation.

      Oddly, an FP language, Elixir might be the perfect implementation as its concurrency model fits exactly the correct OO definition. You have separate processes talking to each other(objects sending messages) and each process has its own private data. That is how misimplemented OO is among most OO languages.

    2. Re:OO is "well supported" in JS ? by Xest · · Score: 1

      No it's not, OO has three pillars - encapsulation, inheritance, and polymorphism. JavaScript doesn't let you inherit and encapsulate at the same time - it's one or the other, as such JavaScript's OO is objectively broken in a fundamental way.

      JavaScript does OO, but as the GP said, it does it badly, because it's broken.

      In contradiction to what you say, the languages you list actually have it right, because they're true OO languages that implement OO properly and thoroughly.

      It looks like the issue is that you don't know what OO is - if you think JavaScripts OO is a good implementation, or superior to that in the other languages you listed then the problem is your understanding, not their implementation. This is confirmed in your final paragraph, where you demonstrate a complete lack of understanding about what object orientation is and means. You're arguing that you think true OOP is FP, which is entirely nonsensical.

      So again, JavaScript's OO is objectively broken based on the fundamental principles of object orientation - you can't rationally argue against that no matter how much you may wish to try. When you do, as you have here, all you've done is demonstrate your complete lack of understanding on this subject.

    3. Re:OO is "well supported" in JS ? by Anonymous Coward · · Score: 0

      Wrong

      OO is all about message passing. That is the big idea of OO. What you are describing is 'missing the point OO'. Very few languages get OO right: Java, C#, C++, PHP and Python all got it very wrong. JS OO is prototypical OO which is a different kind of OO but at least they implemented prototypical OO correctly.

      That you don't know what OO is is not surprising. Slashdot has become the realm of the clueless amateur.

      I am arguing that Erlangs message passing system is exactly what OO was intended to be, I never said it was an OO language. Maybe if you pulled your head out of your ass and learned what OO was intended to be you would post such ignorant bullshit. You are clearly a Java "programmer" and Java's total wrong implementation was fucked your head. There are no 'pillars of OO' numbnuts.

      smh

    4. Re:OO is "well supported" in JS ? by Xest · · Score: 1

      I suggest you learn a bit about the history and intentions of OO. It's not about message passing, it's about organising data around objects, hence the 3 pillars of OO. They're called the 3 pillars of OO because they're the 3 pillars of OO - the fact you don't even know about their existence really speaks volumes. You may wish to pretend OO is something else but again, that's because you're wrong, not because you're the god you think you are that gets to redefine unilaterally terms for the entire programming community across the globe.

      You obviously need some basic computer science education, because you wouldn't even get into university with that level of ignorance of the topic.

      OOP stems from Simula, and later Smalltalk - in fact, small talk was the first termed OOP language, hence why those languages that stem from it's ideas are the ones implementing a correct interpretation of OO. The fact you're not aware of this once again highlights why you're exactly the sort of person you cry as bringing the quality of knowledge on Slashdot down - you don't even have a basic grasp of the topic and it's history that you're talking about. You're just saying things because you're a language fanboy, asserting they're right, whilst being actually completely and utterly wrong.

      I can see why you're confused on the topic though, Joe Armstrong intentionally misled people like you to allow you to pretend you were doing OO even when he was very clear that you absolutely were not. You basically didn't understand his actual point. Here he explains why they did that, and why Erlang is intentionally not actually OO:

      http://harmful.cat-v.org/softw...

      Enjoy your education, or continue being wrong on the internet. It's really up to you.

    5. Re:OO is "well supported" in JS ? by Anonymous Coward · · Score: 0

      bzzt wrong

      I never said Erlang was OO you fucking retard. Learn to read. I said that it is closer to OO than Java and the rest of those shit languages. There is a difference. Each Erlang process encapsulates data and the most important part: message passing.

      Go read about what the Smalltalk creator has to say about OO. He coined the fucking term.

      I bet you think Java is pass by value for primitives and pass by reference for objects.

      The one constant with Java "devs" is ignorance.

      Once again I never said Erlang is an OO language, I quite clearly called it a FP language.

    6. Re:OO is "well supported" in JS ? by Xest · · Score: 1

      It doesn't really matter how you want to wriggle out of it, you're saying "Erlang is what OO is meant to be, but it's not OO".

      You realise that makes no sense right? If it's not OO, then it's not what OO.

      You're caught up on such random vagaries that you completely miss the point of OO - to be able to think about systems as objects, and classes of objects because that's an effective way to map to the real world. Hence why we have the pillars of OO - the very definitions of what an OO language has to support to be able to support object oriented analysis, design, and programming.

      I'm sorry that you have a completely nonsensical view of what OO is and why OO is, and why JavaScript isn't by any measure a proper OO implementation, but that's really your problem.

      Still what else would I expect from someone who criticises Java whilst defending JavaScript? You're pretty clearly just some script churning amateur. Leave development to us experts, you might break something.

  18. Re:It amazing how IT can't learn from the past by Tangential · · Score: 1

    JS is a lingua franca but its a very bad one. It wouldn't be so bad if the language had actually been designed and was consistently implemented.

    That being said our industry never learns. We dealt with termcaps and incompatible ChUI terminals in the 80's, odd and/or incompatible desktop graphics capabilities thru the 90's followed by browser incompatibilities and now vastly different JS engines. You would think the industry would eventually figure out that taking decades to establish baseline standards for software means that the horse is out of the barn (and it burned down and they put up a shopping mall in its place) because the standards come too late.

    Each company views the giant gap between rising popularity of something and the actual establishment of a standard as a place to drive a wedge and establish a competitive advantage. In the meantime developers and users suffer and projects come in even later; even more over budget and still not fully functional.

    --
    Suppose you were an idiot. And suppose you were a member of congress. But then I repeat myself. -- Mark Twain
  19. On top of that you also have the Agile Lawyer by NotSoHeavyD3 · · Score: 1

    One thing I've really screw over "agile" projects is a concept I call the agile lawyer. In theory law is supposed to make society fair. However we have people called lawyers that while they can help you they can also use their expertise to completely pervert the idea of fairness. Similarly I've seen the same idea crop up in agile. You'll have a guy, usually a scrum master, can totally quote any particular part of agile you could mention. However when it comes time to actually do agile they just end up using agile doctrine to fuck over the development team. Shit like oh you're self managing but you can only grab from the top of the backlog. Oh, another one is keeping interesting projects out of the sprint process so, surprise surprise, they can work on it themselves. Of course the classic, everybody is equal on the team, except most of the planning of projects that's special and only the leads get to put their 2 cents in on that.

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
    1. Re:On top of that you also have the Agile Lawyer by lucm · · Score: 1

      One time I was on an Agile project where the Scrum Master was a PM and the Backlog was a MS-Project file (because he needed "actuals", not just burndown...). The Sprint Planning meeting was people telling him how long such or such task would take so he could adjust his Gantt chart but most of the time he would suggest a new number to make tasks fit his deadlines.

      It was a big team and the daily Scrum meeting was done sitting down in a big conference room and people answering one by one the questions asked by the Scrum Master. It was a long hour, we used to call it going to church.

      There was even a Kanban board but it had swimlanes named after top-level WBS.

      And somehow, that guy (and that company) promote their Agile experience.

      --
      lucm, indeed.
    2. Re:On top of that you also have the Agile Lawyer by NotSoHeavyD3 · · Score: 1

      Oh you've definitely met one. The most over the top thing that's happen so far is them telling me what "I thought" of something during the retrospective.(No, they didn't need to actually listen to me to know what my opinion actually was.) Then of course writing down "my opinion" which they made up for me as part of the retrospective. (I mean WTF?)

      --
      Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  20. Why not both? by Anonymous Coward · · Score: 1

    One can hate javascript because it's badly designed and still use it because it's the best tool for the job.

    And using a language with declining market share can also be very pragmatic, for example when it's the best tool for the job.

  21. English anyone? by Bent+Spoke · · Score: 1

    Railing against Javascript is like refusing to speak english because it's a convoluted language filled with inane rules, exceptions and colloquialisms.

    1. Re:English anyone? by Tablizer · · Score: 1

      English and JavaScript both suck rotting eggs from hell. Are we really stuck with them?

    2. Re:English anyone? by Anonymous Coward · · Score: 0

      Any professional uses the best tool for the job. If you use a tool because it's popular, it just means you're not professional. Too bad that in certain cases, Javascript is the best tool. I just refuse to work in those cases. Of course I may need to rarely write a bit of Javascript but I should at least be aware of its capabilities.

  22. Your religion is...odd. by Brannon · · Score: 1

    nt

  23. Haters gonna hate by Anonymous Coward · · Score: 0

    You either work with the language, or you work against the language.

    Honestly if you aren't going to take the time to learn the subtleties of a language, you just shouldn't be using it. Expecting a tool to work just like every other tool you've used in the past is going to lead to problems.

  24. Great for Andy But the Rest of Us Have to Work by Anonymous Coward · · Score: 0

    It's great that Andy is wealthy enough to pick and choose which languages and projects he's going to use. The rest of us are stuck writing code that our employers will pay us to write which generally means using a language like JavaScript.

  25. Re:It's both because Javascript developed in 10 da by doom · · Score: 1

    In the case of R, there's a sub-universe of it's own using the Hadley Wickham (and his cohorts) packages tidyr and so on. If you buy into the hadleyverse (he prefers the name tidyverse).

    I'm particularly interested in the new packages for reading data readr and readxl, which are supposed to be much faster with saner defaults. The old read packages had a habit of treating all strings as though they're a database enumerated type, it would try to "tokenize" everything on the fly...

    I think what you're talking about with R is a symptom of any long established language-- there's bound to be lots of oddities, cruft, workaround for misfeatures, and a bewildering array of competing libraries to do things in slightly different ways.

    Personally, I wouldn't complain about R favoring vectors ops (it's better then struggling along implementing your own the way you need to in most languages). There's plenty of oddities: first of all, the "." is not a method call, though it's used everywhere in names (just like "_"): R does however *have* method calls, they're implemented with an arrow, just like perl5 ("->"). The type system is a little strange, where if you've got an aggregate of items all of the same type, the aggregate is regarded as being of the same type...

    Anyway there's a new Wickham book "R for Data Science" that's supposed to be pretty good. Let me give you a link to it, O'Reilly has broken their website (e.g. they no longer have the word "book" visible on it's front page): http://shop.oreilly.com/produc...

  26. agen obat klg by Anonymous Coward · · Score: 0

    Agen Obat Pembesar Penis KLG
    Agen Obat Klg Asli Pembesar Penis Herbal JUAL OBAT KLG PILLS Asli USA Harga Obat Klg Murah Obat Pembesar Alat Vital Pria Tradisional Secara Permanen Aman Tanpa Efek Samping Cepat Akurat Alami Obat KLg Lebih Bagus Dari Pada Obat VIMAX ATAU Obat Lain Nya Sudah Teruji Secara Klinis Tidak Berhasil UANG KEMBALI 100%

  27. "Arduino" Projects by Anonymous Coward · · Score: 0

    Am I the only one that realizes that Arduino is just some overpriced circuit board with an ATMEL MCU on it? You're not coding in "arduino" it's C. I built these boards manually years before the Arduino came out, it's not hard, and it's $3 versus what, like $30? I really wish people would get off this Arduino train like it's something to be proud of. Or maybe I'm just bitter I didn't come up with the idea of selling an overpriced board with an ATMEGA microcontroller presoldered for you. It's seriously a joke. Oh and the writer is such a badass for using a soldering iron... right... you code in Ruby. Give me a break. Write something for an MCU that's requires raw ASM and then you get to "wink". Or maybe build a circuit from straight SOICs that can do the same thing as a prebaked ATMEGA and then you get to brag.

    Sorry, I'm sick of the Arduino pumping/stroking like it's something to be proud of. It's kind of pathetic that you need a company to build the boards for you since you're so well adept with a soldering iron. You know you can hire a company to prefab boards for you for cheaper right?

    1. Re:"Arduino" Projects by Anonymous Coward · · Score: 0

      That is some first class sperg

  28. "Dropped a lot of cash on it" by Anonymous Coward · · Score: 0

    That is scrums only purpose.

  29. WTF? by Anonymous Coward · · Score: 0

    A noisy workspace is counterproductive.

    By forcing everyone to come in at set hours and enforcing noise, you are simply enforcing inefficiencies and pissing people off for no good reason.

    "buzz of collaboration and innovation"

    WTF is that? Meaningless word salad. If I heard that I would quit on the spot. Of course I would be gone the second they wanted a noisy workspace. I don't work anywhere where I don't get a private office and very limited meetings, no more than 1 hour a week except during planning stages.

    Agile is shit that promotes bad work environments.

  30. Lingua Franca by doom · · Score: 1

    Hardly a lingua franca - JavaScript is used because it's the only language web browsers understand.

    And French was the Lingua Franca for awhile because Francs was a dominant country, and English has been Lingua Franca for awhile because Great Britain and then the US became dominant counties...

    The phrase "lingua franca" means it's in common, widespread use and it's easy to find someone who speaks it. It does not imply excellence of any sort. If you guys want to fight about something, maybe you could think a little harder about what you're fighting about.

  31. ^ that guy is stupid by lucm · · Score: 1

    Your ignorance is astounding and frightening.

    Amusing, coming from someone who claims to know "the most widely deployed OS in the universe".

    Prove it. (And then make sure to share your data with NASA).

    --
    lucm, indeed.
    1. Re:^ that guy is stupid by Anonymous Coward · · Score: 0

      Okay, you are officially a dumbass.

  32. Haters gonna hate. by Anonymous Coward · · Score: 0

    Haters gonna hate.