Slashdot Mirror


How Much JavaScript Do You Need To Know For an Entry-Level Job?

Nerval's Lobster writes: JavaScript is a programming language that's easy to pick up, but extremely difficult to master. Even some of its beginner-level functions are decidedly not beginner-friendly. When someone lands their first JavaScript job, they're going to want to know as much as possible, if only so they can navigate through some of the language's trickier aspects without needing to ask for help. Developer Jeff Cogswell picked through JavaScript and came away with a couple of lists of what he thought were the minimum baseline of skills for JavaScript use in a work context. That list included understanding how to use built-in objects, functions , closures, and DOM (Document Object Model). While his points are comprehensive, not everyone will necessarily agree with what he lists (and doesn't list).

293 comments

  1. Entry level job? by Anonymous Coward · · Score: 4, Insightful

    There are no entry level jobs. Not for Americans at least.

    1. Re: Entry level job? by Anonymous Coward · · Score: 0

      Unless you have 25 years of Python experience. :)

    2. Re:Entry level job? by Anonymous Coward · · Score: 3, Interesting

      You just need to read one book.

      Read it cover to cover a couple times, and if that doesn't get you a job, at least you can kill someone by dropping the book out of a third story city window.

    3. Re:Entry level job? by Anonymous Coward · · Score: 4, Insightful

      You should apply for Indian citizenship; it'll make getting a job in the US much easier than having a US citizenship.

    4. Re:Entry level job? by Charliemopps · · Score: 1

      There are no entry level jobs. Not for Americans at least.

      Elitist and racist comments that trigger the like reflexes pretty much everyone on slashdot right?
      Buy American! Be American! lol

      I see "Entry level" programers float in from the local community college every other day. They usually can't figure out how to use our vending machine, much less write a line of code. The people from India/Pakistan show up and just get shit done. They also bring awesome stuff to our pot lucks.

      The problem isn't H1B visas. The problem is the rub stamp educational standards colleges have in this country and completely destroyed employers faith in what a US degree means.

    5. Re:Entry level job? by Anonymous Coward · · Score: 0

      American is a nationality.

      Indian is a nationality.

      Pakistani is a nationality.

      We're clearly talking about nationality here.

      So why the fuck do you bring race into this discussion?

    6. Re:Entry level job? by Anonymous Coward · · Score: 2, Insightful

      There are no entry level jobs. Not for Americans at least.

      Elitist and racist comments that trigger the like reflexes pretty much everyone on slashdot right?
      Buy American! Be American! lol

      I see "Entry level" programers float in from the local community college every other day. They usually can't figure out how to use our vending machine, much less write a line of code. The people from India/Pakistan show up and just get shit done. They also bring awesome stuff to our pot lucks.

      The problem isn't H1B visas. The problem is the rub stamp educational standards colleges have in this country and completely destroyed employers faith in what a US degree means.

      No the problem is that you don't understand what entry level means. Someone fresh out of college should only be

      expected to have a very basic understanding of a programming language. You will have to train someone for an entry level job.

      If you're expecting them to walk in the door and work without training, then it's not an entry level job.

      You're part of the problem in that you're hiring experienced developers from India and claiming you're filling entry level jobs.

      The net effect of this is lowering wages for experienced programmers.

      Don't get me wrong there are a lot of junk degree developers out there, but lots of places are doing what you wrote and you're just screwing your neighbors.

    7. Re:Entry level job? by Anonymous Coward · · Score: 0

      Yeah there is, look at this very article. Once again, Jeff Cogswell, an entry level developer, has managed to get his garbage plastered all over the front page of a major tech site.

    8. Re: Entry level job? by Anonymous Coward · · Score: 0

      Slashdot hasn't been a major tech site.for years.

    9. Re:Entry level job? by ranton · · Score: 1

      American is a nationality. Indian is a nationality. Pakistani is a nationality.

      We're clearly talking about nationality here. So why the fuck do you bring race into this discussion?

      Because nationalities are often used as proxies for race. African American is a term that is more of a nationality, such as Asian. What it really means is negroid or congroid. But very few people are asinine enough to complain about definitions when their is a claim about racism against African Americans. Well, you probably would, based on your post here.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    10. Re:Entry level job? by Millennium · · Score: 1

      Someone fresh out of college should only be expected to have a very basic understanding of a programming language.

      Then what on Earth have they been studying in college?

    11. Re:Entry level job? by Wee · · Score: 1

      Untrue. We're going to hire two entry-level people this summer.

      -B

      --

      Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.

    12. Re:Entry level job? by Anonymous Coward · · Score: 0

      Oh look, a talking monkey! From India!

    13. Re:Entry level job? by Anonymous Coward · · Score: 0

      My experience with Indians is the opposite. They don't know shit, but despite this they think they know everything, they are arrogant, lazy, incompetent, won't do shit unless you stand over them and tell them step by step exactly what they are supposed to do, and they'll lie right to your face and steal from your company. Even in the rare case where you get one that knows their stuff, the know-it-all attitude, laziness, and general dishonestly still makes them a net negative to any organization. The only thing they got going for them is that they're cheap, but that's only if you don't count the damage they'll do to your organization.

    14. Re:Entry level job? by NewYork · · Score: 1

      Stop Issuing Visas To Indians, The Most Racist People On Earth;
      http://wh.gov/ikAIH
      http://wh.gov/ikBzk
      https://www.change.org/p/presi...

  2. All of it. by Anonymous Coward · · Score: 1

    All of it.

    1. Re:All of it. by l0ungeb0y · · Score: 1

      All of it.

      QFT. Came here to make this exact same post

    2. Re:All of it. by KGIII · · Score: 1

      I was going to say 3. I have since forgotten the question.

      --
      "So long and thanks for all the fish."
  3. bullshit by zr · · Score: 4, Insightful

    > JavaScript is a programming language that's easy to pick up

    this statement is the single biggest source of damage to the ecosystem of javascript.

    1. Re:bullshit by Anonymous Coward · · Score: 5, Insightful

      I've been programming professionally since the 1970s. I cut my teeth on COBOL, ALGOL, FORTRAN, and PL/I. Then I did years of Ada, a few months of Smalltalk, some Modula-2, and years of C and C++. I very briefly used Objective-C on actual NeXT systems. Then came a decade of Java, with some Delphi, VB and Perl. That was followed by some time with PHP, Ruby and JavaScript. Of all of those languages, JavaScript was the hardest to learn, and even after using it for years, it is the hardest to use. It's just so fucking awful, and I've worked with some pretty awful languages in the past. So much of it is just plain dumb. It's the kind of dumb that just shouldn't happen. It's the kind of dumb that shouldn't be allowed to exist 20 years on, even if it was first introduced during a rushed release! What's dumber is when people defend the dumbness as if it's some kind of a feature or a benefit. It's neither of those. It's just dumbness gone wild. It's fucking idiotic that it has taken over 20 years for JavaScript to get something that barely resembles a usable form of object orientation. It's stupid that its standard library is so terribly lacking, and what is there is mighty shitty. It's beyond belief how bad its type system is, and how awful its automatic type conversions are. Something is really fucking wrong when a so-called 'modern' language is worse than the ones developed 20 or 30 years prior to it, back when programming language design was in its infancy. That's right: the people who developed the earliest programming languages managed to do a much better job at it than those who have created JavaScript, decades later. In the 1980s and 1990s, I never though I'd be dealing with a programming language as shitty as JavaScript, especially so far into the future. We could have done great things, yet now we're saddled with the worst programming language around.

    2. Re: bullshit by Anonymous Coward · · Score: 0

      How about this one... JavaScript is an untyped, mish-mash of jumbled diarrhea that shows down web sites, hides malware and causes widespread damage.

    3. Re: bullshit by Nukem,Duke · · Score: 0, Offtopic

      Well stated! Mod up!!!

    4. Re:bullshit by Anonymous Coward · · Score: 0

      I suppose it should be said isn't easy to master. As a prototype-based language ti is very tricky for even seasoned devs to get around the quirks to do the things that make people go 'awwwww.' It is like magic, anyone can be an amateur magician, but you won't woo a crowd with that crap.

    5. Re: bullshit by Anonymous Coward · · Score: 0

      And those things that make experienced people go 'awwww' are generally accepted as bad programming. Ya know techniques that are difficult to understand, hidden language features that have no guarantee of forward compatibility, and worse is the fact no one else can easily interpret (read: error prone). Good programming should be easy to understand by all programmers. Unlike the "whiz kid" who ditches shitty obfuscated code only to leave the some or sap to rewrite the garbage that "whiz kid" can no longer understand or maintain himself. Good engineering is simple!

    6. Re:bullshit by narcc · · Score: 1, Troll

      . It's fucking idiotic that it has taken over 20 years for JavaScript to get something that barely resembles a usable form of object orientation.

      You're doing it wrong. Classes were an ugly kludge from the beginning -- they benefit compilers far more than developers. JS's approach to objects is superior in just about every conceivable way.

      You bought in to a bit too much of the OO propaganda in the 90's.

      Really, the greatest thing about JavaScript is that you're very unlikely to run across ridiculous things like an "abstract factory factory".

    7. Re:bullshit by Anonymous Coward · · Score: 4, Insightful

      Really, the greatest thing about JavaScript is that you're very unlikely to run across ridiculous things like an "abstract factory factory".

      Instead, you run across every JavaScript developer trying their best to fake class OO using prototypes. Each one uses an approach that's different from every other developer, and each has its own set of serious limitations. Worst of all, none of them are compatible with each other.

      Languages that compile down to JavaScript, such as CoffeeScript, TypeScript, and Dart, are so popular because they add real class OO. Hell, even ECMAScript 6 is adding real class OO. Classes, not prototypes, are the only practical tool. Prototypes are a detriment; they are a sham.

    8. Re:bullshit by UnknownSoldier · · Score: 5, Informative

      AMEN! The "best" part about Javascript is that if you don't use that stupid HACK:

      "use strict";

      at the beginning of your .js file it will behave _worse_ then shitty BASIC. Didn't we learn _anything_ about using variable without declaring them??

      "Javascript: 10 days for the designer, 10 years of frustrations for users"
      * http://www.computer.org/csdl/m...

      PHP is another fucking retarded language.

      Why the hell does the internet run on 2 of the shittiest languages ever half-assed designed??

      > What's dumber is when people defend the dumbness as if it's some kind of a feature or a benefit.

      You're talking about automatic-semi-colon insertion aren't ?

      Someone needs to be taken out back and shot for all the pain and suffering that bullshit "feature" has caused.

    9. Re:bullshit by Anonymous Coward · · Score: 0

      Sorry, but JavaScript is, frankly, ugly as shit code. Funny how, JavaScript seems the one language that I subconscioussly, refuse to learn! After having tried multiples times.

      C/C++? No problem. Perl? No Problem. Hell, even Ruby, Erlang, and Fortran make JavaScript look downright convoluted. Sorry, but JavaScript is just, visually, crap! If you'd like to rebutt, provide some examples! Pick a mainstream web page as an example of visually ugly code! They're everywhere!

    10. Re:bullshit by Anonymous Coward · · Score: 0

      if you run into abstract factory factory, you've probably run into someone who is obsessed with writing overly abstracted code.

      Good OO is easy to read and maintain.

    11. Re:bullshit by rock_climbing_guy · · Score: 1
      --
      Wh47 d1d j00 541, 31337 15n't t3h r0xor5 ne m0r3???
    12. Re:bullshit by zr · · Score: 1

      congrats, YOU are poster example of being both, the victim and the culprit of javascript's reputation of "kiddie language".

      news flash, its not. it has good parts and bad parts. same as any other language. in some ways its crappy and dumb. in some ways its pretty ingenious.

      here's the trick: use the good parts. don't use the bad parts. actually learning the language helps do that.

      the alternative is bitching about the hammer that its poor at driving screws. which is basically what you're doing.

      thumbs up on the rant though, nicely done.

    13. Re:bullshit by mrbester · · Score: 1

      If they'd known what they were doing they'd have left all that silly class based inheritance to other languages that support it. Instead, they whined so much about how it didn't work "properly" that we've got syntactic sugar to keep the fucking idiots happy.

      --
      "Wait. Something's happening. It's opening up! My God, it's full of apricots!"
    14. Re:bullshit by dbIII · · Score: 1

      Why the hell does the internet run on 2 of the shittiest languages ever half-assed designed??

      Convenience.
      http://blog.samuellevy.com/pos...
      Step 1 in getting a website going is apparently easier for newbies with PHP than with something with all the security and extra features with almost anything else. Step 2 wiht PHP is buggy spaghetti, but it puts stuff on screens.

    15. Re:bullshit by Xyrus · · Score: 1

      ...It's just so fucking awful, and I've worked with some pretty awful languages in the past...

      Yep. Writing a short script here and there was what it was designed for. For large scale application development and maintenance? I can think of few worse.

      --
      ~X~
    16. Re:bullshit by Anonymous Coward · · Score: 0

      Why the hell does the internet run on 2 of the shittiest languages ever half-assed designed??

      For javascript the reason is that it runs clientside. Your other option for that is flash so while javascript is a horrible clusterfuck it is at least not intentionally malicious.
      For generating pages before serving them there isn't any technical reason to use PHP. I've written a page generator in C and you can do it in any language of choice. Sometime a simple bash script is sufficient for your needs.
      The reason PHP has gained popularity is because of how quick you can put crap together.
      It ties in well with the Agile fad. With PHP you can design your page mockup in HTML and just add code as the customer requirements changes. Your end result will be a complete unmaintainable mess but it will be what the customer asked for. A well designed page in a well designed language requires a well designed specification. You aren't going to find that when it is rare enough to figure out the requirements at all before the deadline.

      If you want to get rid of crappy write-only languages in web development you have to get rid of Agile first.

    17. Re:bullshit by Anonymous Coward · · Score: 0

      I'm guessing you've never had the "pleasure" of programming in netlinx then? If not, picture a cross between basic, assembler and fortran designed (in the loosest possible sense) to do event driven cooperative multitasking on extremely limited hardware that has been (de-)evolving in an apparently random manner since the 70s.

      But yeah, apart from obscure corner cases you're spot on. My theory is that someone deliberately chose the most brain-damaged, half-arsed pile of steaming dogshit they could find to make developing webpages just that little bit harder, thereby "culling the herd" of fellow developer/victims and reducing competition for employment. Well either that or it was chosen by a comity of drunk sadists armed with a ouija board and an MBA. Take your pick.

    18. Re:bullshit by Guildor · · Score: 1

      Microsoft did try to give us VB Script, but the world rejected it in favour of Javascript. We reap what we sow.

      I'm not saying VB Script was the be all, and end all, but it was at least a step in the right direction.

    19. Re:bullshit by murdocj · · Score: 1

      Yes. God yes. It's a disaster. Sometimes waiting to happen, sometimes unfolding right in front of your eyes. Thank you for your comment.

    20. Re:bullshit by Lennie · · Score: 1

      > Why the hell does the internet run on 2 of the shittiest languages ever half-assed designed??

      What design ?

      Really, Javascript was created in 10 days by 1 man without talking to anybody else.

      He had been thinking about how to go about creating a programming language so he had a lot of ideas, but Netscape wanted him to create a different kind of language so basically in 10 days he did what he was asked to do but included some the ideas he had about creating a language inspired by Scheme- and Self.

      --
      New things are always on the horizon
    21. Re:bullshit by TheRaven64 · · Score: 1

      There's a nice paper from the developers of the Apple Newton, which argues that class-based OO maps very well to model objects (where you have lots of objects that are mostly the same), whereas prototype-based OO is a better fit for views, where you want a bit of customisation for almost every instance. JavaScript is a language that is designed for UIs, with the back end being written in some other language, so it's hardly a surprise that it chose prototypes.

      My biggest complaint about JavaScript is that, even with Smalltalk and Self as examples of languages that did it right that the developers were intimately familiar with, they still managed to get numbers wrong.

      --
      I am TheRaven on Soylent News
    22. Re:bullshit by Anonymous Coward · · Score: 0

      > JavaScript is a programming language that's easy to pick up

      this statement is the single biggest source of damage to the ecosystem of javascript.

      The same applies to most other languages, regardless of how easy the actually are.

    23. Re:bullshit by Anonymous Coward · · Score: 0

      You have absolutely no idea how to use commas. Please go back to primary school and relearn English before you butcher the language again.

    24. Re:bullshit by Anonymous Coward · · Score: 0

      VB Script is evil. You can still use it, but it makes you evil too.

    25. Re:bullshit by Viol8 · · Score: 1

      Given that the languages that use classes were generally desiged properly by a team of engineers, and the ones that don't were usually designed by one guy calling people who like class based languages "idiots" is rather a pot and kettle scenario. Prototype based OO is inefficient, ugly, difficult to debug for any large scale object system and generally just a dumb dumb way to describe objects.

    26. Re:bullshit by DrXym · · Score: 4, Informative
      Classes are an incredibly powerful way to encapsulate functionality. Javascript has never had the proper concept of a class (let alone inheritance) so we have half assed equivalents such as prototypes, bind methods, or function constructors which attach functions to raw object classes. Aside from being half assed, they're inefficient in different ways. Even understanding how the "this" keyword works is a nightmare because unlike sane OO languages, "this" can point at the object, nothing, or something else such as a toplevel window object depending on where it's used from. So it's not uncommon to see code where someone assigns "that" to "this" to work around some issue. Add in other esoteric issues like scoping rules for var and it's just a nightmare.

      And of course no JS IDE is remotely as forgiving or useful as it might be because there is no way at compile time to figure out what an object *is* beyond some simple inferences.

      This is the reason the likes of Typescript, GWT and other JS generators exist at all. Javascript is treated as the problem to solve. e.g. Typescript extends JS with modules, classes, interfaces, typechecking and so on. The compiler can use those to catch errors at compile time instead of runtime and it can emit functionally equivalent JS. Stuff that allows an IDE to construct an AST and offer refactoring, method signatures and other useful functionality they've enjoyed for years in other languages. It even a specialised function where "this" behaves in a sane way. On the whole, programming Typescript is a lot more pleasant than JS but it's still a thin veneer.

    27. Re:bullshit by sanosuke001 · · Score: 1

      The biggest source of damage to the ecosystem of javascript is javascript

      --
      -SaNo
    28. Re:bullshit by AmiMoJo · · Score: 1

      Why the hell does the internet run on 2 of the shittiest languages ever half-assed designed??

      Because web development was not taken seriously in the early days, so people with no clue just used whatever seemed popular at the time or half-arsed something together (Personal Home Page). Like early web browsers and TCP/IP stacks things like security and clean implementation were not really thought about.

      Now we are stuck with them. People look the crapfest that is Javascript, kinda made it workable and then turbo-charged the hell out of the interpreters. Plug-ins are frowned upon and nothing else can get a foothold because it doesn't have browser support. At best you can write in a sane language and compile to Javascript, like Dart.

      I'm surprised Google hasn't tried to add a native Dart interpreter to Chrome, or something like that, to create a better alternative to JS that is actually usable. Native code in Chrome, compiled to Javascript for other browsers. Apparently JS is the new machine code for the internet... Oh, god, we are screwed, aren't we?

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    29. Re:bullshit by Anonymous Coward · · Score: 0

      Really, Javascript was created in 10 days by 1 man without talking to anybody else.

      JavaScript, the Atari E.T. of the internet and just like E.T.

      The companies creating both went practically defunct shortly after and only continue to exist as brand names. Both tried to hitch hike on the current hype (Java/E.T.). The programmers involved had only basic understanding of these originals and only had a rough similarity as goal. Lastly the errors they made were only slowly fixed, decades later, by other people not suffering from unrealistic time constraints ( yes someone managed to make E.T. playable by binary patching most bugs ).

    30. Re:bullshit by Anonymous Coward · · Score: 0

      I'm surprised Google hasn't tried to add a native Dart interpreter to Chrome, or something like that, to create a better alternative to JS that is actually usable.

      AFAIK most languages that get compiled to JavaScript suffer from its short comings, a Dart interpreter would either have to copy the same insanities you encounter in JavaScript compiled mode end up incompatible. An example I heard from GWT is that the JavaScript number type leaks into Java code, you have to explicitly convert integers to integers using a binary operator | 0 or similar since JavaScript only has floating-point numbers.

      The only way to deal with it is asm.js for all other browsers and that has downsides of its own.

    31. Re:bullshit by Anonymous Coward · · Score: 0

      So this is what Stockholm Syndrome looks like for coders.

    32. Re:bullshit by Anonymous Coward · · Score: 0

      What good parts? The only good part about the language is that it's in all the browsers.

    33. Re:bullshit by UnknownSoldier · · Score: 1

      > What design ?

      Haha, Touche !

    34. Re:bullshit by Anonymous Coward · · Score: 1

      Could you go further on this:

      "they still managed to get numbers wrong."

    35. Re:bullshit by Anonymous Coward · · Score: 0

      > Really, the greatest thing about JavaScript is that you're very unlikely to run across ridiculous things like an "abstract factory factory".

      Yeah Angular.JS approach of service factory component is way better.

      Just admit that you failed the OOP classes at the university.

        I hate Java, but it's at least readable, is boring as fuck but if you don't know what an abstract class or an interface is you should get the fuck out of programming and never return.
        Javascript is just an unholy mess, the proof is the broken by design frameworks that creep out of the programming sewers every now and then. I've tried the most popular, they are fucking idiotic, and they undo all the hard work that was done to bring the web to coherency with standards. Just look at Angular and it's unholy mess of dynamically loaded modules and impossibility to debug. React with it's oh let's write the DOM in Javascript! (someone should be shot for that idea). And Backbone... well yeah add an abstraction layer that offers 0 advantage vs vanilla.js. Ember is the most sane of the bunch that somehow works, but still you have to load a whooping 2 MBytes of files for it to work.

      A little Javascript was ok, but now that it has become essential to operate the most basic websites it's clear that it's not good for bigger applications.

    36. Re:bullshit by Daniel+Hoffmann · · Score: 1

      I actually really like the prototype system, it makes introspection (also know as reflection) really easy. Surely class based has its advantages and I actually believe that could exist in a single system and be used where it is more appropriate. In my opinion once you start getting too big class hierarchies you should start using mixins and prototype based OO.

    37. Re:bullshit by Tetravus · · Score: 1

      I actually really like the prototype system, it makes introspection (also know as reflection) really easy. Surely class based has its advantages and I actually believe that could exist in a single system and be used where it is more appropriate. In my opinion once you start getting too big class hierarchies you should start using mixins and prototype based OO.

      The only part of introspection that's easy is to figure out if a function is defined immediately on a class instance via `hasOwnProperty.` Everything else is very difficult.

      For example, to build their dependency injection system AngularJS actually converts functions to source via `toString` then runs a regex on that to parse the count and names of function parameters so they can figure out what params to pass. This works (mostly, there are problems with minified code) but is a hack that pushes what should be compiler activity to runtime and slows startup.

      That said - I agree with the rest of your comment. Towering class hierarchies are no ones friend and mixins allow for the quick creation of instances that would otherwise require one-off classes.

    38. Re:bullshit by Daniel+Hoffmann · · Score: 1

      That is a good point you make, but I myself never needed to introspect method fields. Does the way that Angular does it take into account arguments used through the arguments object? Like:

      function() {
              console.log(arguments[0] + ": " + arguments[1]);
      }

      My guess is that that is the reason they did not include method field introspection. In retrospect the way that java handles multiple parameters is better, you have to actually set on the method signature that your method can receive an indeterminate number of parameters.

      This field introspection thing will probably never be fixed, even though the fix is probably simple (all that was needed was some sort of Function.parameters array). Due to lack of backwards compatibility (you can't just stop supporting the arguments object) this will probably never be fixed.

    39. Re:bullshit by Anonymous Coward · · Score: 0

      I still cant understand why the hell so many people use Angular, its a goddamn convoluted mess.

      The irony of using an MVC framework on a website which is itself the V in an outer MVC is just too funny.

    40. Re:bullshit by Anonymous Coward · · Score: 0

      that you grumpy programmer?

    41. Re:bullshit by irrational_design · · Score: 1

      Maybe that is because you are stuck on OOP and aren't willing to consider other methods of modeling your domain. Don't try to force OOP onto Javascript. Instead learn about Javascript's prototype. You will be a lot happier using JavaScript if you go with the natural way of doing things instead of trying to force it to work the way OOP languages work. Its like trying to force a square peg into a round hole. This article might be of use in opening your eyes. http://steve-yegge.blogspot.co...

    42. Re:bullshit by irrational_design · · Score: 1

      Or...just don't try to do OOP in JavaScript. Learn about prototypal inheritance and let go of the need to try to force JavaScript to behave like an OOP language.

    43. Re:bullshit by Anonymous Coward · · Score: 0

      This is one of the main complaints that I have had with every language I have used since Smalltalk. The implementations for numbers are just no where near as good as Smalltalk. That language spoiled me.

    44. Re:bullshit by Anonymous Coward · · Score: 0

      Sounds like you are having trouble adapting to Javascript. You rant and use bad language and yet provide no insight or details about how it's actually bad.

      I call BS on you. No one who has learned that many languages should have trouble with Javascript unless you are using it incorrectly (oh, I must use classes!) or maybe you are just worn out and need to retire.

    45. Re:bullshit by gweihir · · Score: 1

      Well, JavaScript is sort-of a programming language that makes it easy to write things that sort-of work, but really cause more problems than they solve.

      In actual fact, programing is never easy or simple and requires considerable experience and talent to get right, regardless of language used. In languages targeted at the incompetent (JavaScript, Java, ...) it is simpler to get things to run, but it is not any easier to make them run well, as in reliably, securely and efficiently. That requires as much skill as doing the same in C and it may even take more effort. Personally, I think languages should not make it too easy on the coders, as that just allows the bad ones (i.e. most of them) to stay hidden for longer and do a lot of damage.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    46. Re:bullshit by narcc · · Score: 1

      Classes are an incredibly powerful way to encapsulate functionality. Javascript has never had the proper concept of a class (let alone inheritance)

      Now I know you're deeply confused. Prototypal inheritance is far more powerful and flexable than classical inheritance. This page should give you a basic overview. This paper should clear up any remaining misconceptions.

      Even understanding how the "this" keyword works is a nightmare

      That's because you don't understand the basics of the language. If 'this' worked the way you described, the language would be fundamentally broken. Take 30 seconds and learn how 'this' works. It's neither complicated nor confusing and makes perfect sense in the context of the language.

      You seem to have very strong opinions on the language while you don't understand even the very basics. Try learning the language first. You'll find that your criticisms will quickly disappear.

    47. Re:bullshit by Actually,+I+do+RTFA · · Score: 1

      Prototypal inheritance is far more powerful and flexable than classical inheritance.

      Well, your link said it's as powerful as C++ multiple inheritance. Which no one uses. Because the complications that arise are not worth it. In the same way, the power from prototypical inheritance is not worth the complexity. I've seen some crazy stuff Some of my friends work on... well, it's a famous JS engine in a popular browser. The things they have to be able to allow make the JIT compiler far more complex, and therefore error-prone, then it needs to be. And the inheritance model is a huge source of security holes.

      --
      Your ad here. Ask me how!
    48. Re:bullshit by Anonymous Coward · · Score: 0

      You sure it isn't the fact that it runs like shit and can't do the same thing twice on identical computers?

    49. Re:bullshit by DrXym · · Score: 1

      Thanks, but I understand the "very basics" and I've "learned the language". And no my criticisms don't "quickly disappear". Javascript sucks. The only reason we're talking about it is because it is the lingua franca of web browsers, not because it is any good.

    50. Re:bullshit by narcc · · Score: 1

      If you understood the language, you'd understand why 'this' works the way it does -- and why it wouldn't make any sense for it to work any other way. Your objection would vanish as you'd recognize that it's nonsense.

      You also seem to misunderstand classical oo, as you see inheritance and encapsulation as essential, even though one violates the other. I'm not sure you're really capable of making a competent evaluation.

    51. Re:bullshit by mrbester · · Score: 1

      You're still thinking in classic OO and applying that to JavaScript. JavaScript doesn't have inheritance. It has delegation.

      Forcing it to look and feel like a class based language is the idotic part. Yet somehow it is the language's fault that it is subsequently slow and inefficient due to the hoops it is forced to jump through.

      --
      "Wait. Something's happening. It's opening up! My God, it's full of apricots!"
    52. Re:bullshit by Anonymous Coward · · Score: 0

      Yegge's a clever guy and a funny writer and all but he and people like him who are in love with lambda calculus and the other mathematical aspects of CS forget that there's an actual CPU and hardware that has to run all this shit. And CPU's don't execute lambda calculus; that's why all the wankery that JavaScript requires to do what it does absolutely kills performance.

      I had to do some work in JS recently after nearly 20 years in embedded systems and systems programming and I was absolutely incredulous that anyone with an understanding of computer architecture would think that such a language is even remotely a good idea.

    53. Re:bullshit by Anonymous Coward · · Score: 0

      Prototypal inheritance is still OOP, it's just not class-based OOP.

    54. Re:bullshit by TheRaven64 · · Score: 1

      In Smalltalk, there are two integer types that can be used pretty much interchangeably. SmallInt objects are stored inside a pointer, so they are typically 31 or 61 bits, with the low bits used to distinguish pointers from small objects (on 64-bit platforms, some float values can be safely stored in a pointer too). If a SmallInt operation overflows, then the result is a BigInt object. BigInt objects are real (immutable) objects that encapsulate an arbitrary-precision integer. They're much slower to use than SmallInts, but you generally don't think about which you're using, you just use an integer type and let the language / libraries handle making it efficient. Floating point values are handled similarly, though they don't grow precision (I don't remember what the Smalltalk-80 spec mandates, but some implementations provide high-precision floating point classes that you can use instead of the efficient hardware-sized floating point).

      In contrast, JavaScript provides an IEEE double and nothing else. Implementations try very hard to avoid actually using doubles to implement them for values that are actually integers, because floating point operations are a lot slower than integer ones on modern CPUs. Because operators are special in JavaScript (anyone know what object + array is?), you can't provide any kind of number with increased precision. Try dealing with any data that comes with 64-bit values (e.g. file offsets on a modern FS) in JavaScript and you'll see the pain.

      The JavaScript implementation from Cadence that's used for scripting various IC design systems avoids this by providing the full Smalltalk set of number types (it's actually implemented in NewSpeak, which is implemented in Smalltalk, for extra fun).

      --
      I am TheRaven on Soylent News
    55. Re:bullshit by Anonymous Coward · · Score: 0

      Implementations try very hard to avoid actually using doubles to implement them for values that are actually integers, because floating point operations are a lot slower than integer ones on modern CPUs

      In a general sense, floating point should be slower than integer operations, but in practice it depends on many things including use of cache, multiple cores, SIMD, length of pipelines, compiler optimizations etc.

      There's a good discussion of it here:
      http://stackoverflow.com/questions/2550281/floating-point-vs-integer-calculations-on-modern-hardware

      The consensus seems to be that it's a wash, and unless you're having noticeable performance problems with FP, there's no reason to favor integer operations.

    56. Re:bullshit by angel'o'sphere · · Score: 1

      There is nothing inherently better or worse regarding class based OO or prototype based OO.

      Both ways have their own set of limitations and features.
      (You do know that SmallTalk is class based while SELF is prototype based?)

      The problem with JavaScript is that there are several ways to define "classes", several ways to have static methods/attributes etc.

      At some point, when you stop arguing about type conversions (which is a mess in JavaScript) and the limited base library, you realize that JavaScript is quite elegant.

      Bottom line the inventor realized: a function to call is just a "thing" that has its "attributes" (parameters) on the stack. And an object is just a "thing" hat has its "attributes" on the heap. And both can have "sub functions" that serve as "methods".

      Having said this: I only use JavaScript to script other Applications like IDEs (Eclipse or the Code Composer from TI), because the syntax/confusion in JavaScript is nothing for me (learning Japanese Kanji is more easy).

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

      OOP does not require classes.
      Prototypes are OOP!

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

      Well, if "this" is so easy, why don't give us a 30 seconds summary (even if it takes you more than 30 seconds to write?).

      However I agree that prototype based inheritance is far superior to class based ones, except for the fundamental need of runtime dispatch and potential "slowness". I remember SELF somehow could eliminate runtime dispatch very often, but I don't remember in which cases.

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

      Well, your link said it's as powerful as C++ multiple inheritance. Which no one uses. Because the complications that arise are not worth it.
      That is nonsense. Everyone uses MI. There is only *one single* complication: inheriting from the same base class multiple times. And that is in 99% of all cases a design error.
      Hint: look at a modern C++ library or read a modern book about C++.

      And the inheritance model is a huge source of security holes.
      That is complete nonsense, too again.
      Being mutable or not, that is a security thread. And to ensure immutability you often enforce that certain classes can not be extended classed like "final classes" in Java.

      The inheritance as a concept in itself has absolutely no relevance.
      In the same way, the power from prototypical inheritance is not worth the complexity.
      That is complete nonsense, too. The problem of JavaScript is its syntax. Nothing else. If you would use a an OO language that is based on prototypes people like you would not even realize the difference between a prototype based and classed base hierarchy.

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

      Most of the internet runs on C/C++ and Java.
      Not on PHP nor on JavaScript.

      OHHH?!!! You meant the "world wide web"? Well, most of it is running on Unix like servers that are programmed in C/C++ ... only the "web pages" might be in PHP etc. and those are again hosted on Apache (C/C++) and most other stuff is hosted in Tomcats/Jetties and JBosses etc.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    61. Re:bullshit by Actually,+I+do+RTFA · · Score: 1

      Everyone uses MI.

      I've never seen a coding standard that didn't wave giant caution signs as multiple inheritance. Google's is easy to find, but dozens more from big companies are available.

      Interfaces are different, but (a) that's not really enforceable under JS and (b) that would be totally different from your assertion, which only talked about avoiding the diamond antipattern.

      you would use a an OO language that is based on prototypes people like you would not even realize the difference between a prototype based and classed base hierarchy.

      You're missing the point. I'm not talking about syntax. I'm saying that the "power" that prototypical inheritance exposes is not worth the complexity that that power costs. Nothing to do with the syntax. Everything to do with all those arguments you made initially for using prototypical inheritance increasing the complexity.

      Being mutable or not, that is a security thread. And to ensure immutability you often enforce that certain classes can not be extended classed like "final classes" in Java.

      Except, you cannot declare a prototype final, pretty much because then it's no longer a prototype. And that's actually not going to solve the problem I bring up either.

      You can change the prototype that an object is based on in runtime. I have no idea what useful purpose it serves. But that simple fact produces a ton of complexity in the code. This complexity has been the historic source of bugs and security holes.

      --
      Your ad here. Ask me how!
    62. Re:bullshit by Pherdnut · · Score: 1

      If your code as verbose as what it took you to establish:

      * I've been writing code for a very long time
      * JavaScript has dumbness that shouldn't be defended
      * I don't like it's type system

      I could see why you might not like JavaScript. But really you strike me as yet another dev who didn't want to learn it, skipped ahead to "The Bad Parts" of the highly overrated "The Good Parts" which are mostly either pointless quibbles that have more to do with how the author would prefer every language operated or represent a failure on the author's part to understand the language in terms of the paradigm it operates in. That same author has an entire secondary speaking/writing career that hinges on being an apologist for JavaScript catering to devs who are frustrated by the fact that JS has similar syntax to Java or C but is VERY different in terms of language design.

      I learned JS first but I have worked with C#, Java, Python, PHP, Ruby via Rails and am starting to dabble in C/C++ because I like the idea of having JS at an architectural level with C/C++ bindings handling stuff closer to the chrome. Of those languages I have plenty to criticize but really only find Java to be exceptionally silly. A language and culture so mired in protecting you from your own stupidity and the stupidity of other mediocre developers that it's impossible to get anything done without a thousand lines of code.

      Is it possible your decade in Java has taught you some bad habits? Because I for one find the popularity of notions like test-first TDD to be an indicator that we have a whole hell of a lot of developers who have less confidence in their code than they should have before they've gone and committed to a maintainability disaster by loading tests in front of every little piece of it rather than actually learning to leverage architecture to test at key points but also make the code a lot more maintainable/modifiable without a dozen whack-a-mole-bugs or the equivalent, tests breaking, at every little tweak.

      I have found that of all the messed up janky legacy codebases I've ever inherited it's the Java devs who appear to understand basic fundamental OOP concepts the least. They basically write procedural C code with pointless class syntax wrapping everything and they make a god-damned awful mess.

    63. Re:bullshit by angel'o'sphere · · Score: 1

      You can change the prototype that an object is based on in runtime. I have no idea what useful purpose it serves. But that simple fact produces a ton of complexity in the code. This complexity has been the historic source of bugs and security holes.

      That might be true for JS, if you wanted to focus on that.

      However you easy can imagine prototype based languages where the prototype is final and can not be exchanged.

      I'm saying that the "power" that prototypical inheritance exposes is not worth the complexity that that power costs.
      That is nonsense. Care to show a single "complex thing" in using prototypes over classes?

      I've never seen a coding standard that didn't wave giant caution signs as multiple inheritance.
      Then you have not worked in "interesting" but only in "boring" projects.

      I suggest to start here and figure if you can get some of the books about Talingent: http://en.wikipedia.org/wiki/T...

      Or simply read a modern C++ book ... except for the "diamond pattern" there is no reason to reject MI. Neither complexity, nor performance. Except that the typical examples in books with swimming and flying are super bad examples :D

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    64. Re:bullshit by Actually,+I+do+RTFA · · Score: 1

      That might be true for JS, if you wanted to focus on that.

      Well, this is a discussion about JS, not some platonic ideal. Their prototype system is really really bad.

      Then you have not worked in "interesting" but only in "boring" projects.

      I suggest to start here and figure if you can get some of the books about Talingent

      Talingent, the thing that when I skim the wikipedia article (you linked to) says never got it's development act together, was the ur-example of a project death march, and was abandoned and never completed.

      And if you think projects are made interesting by MI... well, in general I prefer projects where I try to solve interesting problems, not dick measuring contests.

      There isn't a performance issue. It's not a compiler question. It's "what is going to require the least work to decipher when someone new comes onboard." "What's the safest/least likely to break."

      --
      Your ad here. Ask me how!
    65. Re:bullshit by angel'o'sphere · · Score: 1

      Well, you argued that MI is "bad" and that "prototypes" are bad, when the discussion already had shifted away from JS.

      I don't care about JS as I rarely use it (and certainly not in the DOM, and mostly even without classes).

      MI I only use in C++ where it works extremely well.

      No idea about your idea about Talingent. The companies behind it decided to scratch it. That has nothing to do with "project death march" and "never completed".

      It's "what is going to require the least work to decipher when someone new comes onboard."

      And a class using MI is hard to decipher? Hope you never have to read source code of the STL or boost.

      "What's the safest/least likely to break."
      What the heck should break in an MI context that would not break equally in a non MI context?

      All platforms/languages that originally did not support MI are adding it now with piggi pack solutions, see Java (Interfaces with default implementations), Scala (traits) and Groov (traits and categories).

      You sound like someone who read the wrong page of the wrong book 20 years ago and missed the path of time ;D

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    66. Re:bullshit by StewBaby2005 · · Score: 1

      I'm now a Unix administrator after years of Cobol/PL1/C experience. That's why I refuse to get dragged along when my fellow SAs want to write the latest scripts in Perl and Python. Why do I need to learn a new language that is poorly typed when I can write the same stuff in a Posix shell ?

  4. None by Anonymous Coward · · Score: 0

    Brush up on Node or Io and you should to be good to go, bro.

  5. Depends on the job by Anonymous Coward · · Score: 1

    If it's a web design job, you probably just steal someone else's modules and code like most web designers. Complete with not even changing the link back to their website.

    For other jobs, why the hell are you using the abomination that is JavaScript anyway?

    1. Re:Depends on the job by AFCArchvile · · Score: 3, Funny

      It's the "If all you have is a hammer, then everything looks like a nail" factor. Which unfortunately is ultra-high for JavaScript right now.

      About the only JavaScript I know right now is Array(16).join('wat' - 1) + ' Batman!'

      --
      "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
    2. Re: Depends on the job by Anonymous Coward · · Score: 0

      "Array(16).join('wat' - 1) + ' Batman!'" lol

      Untyped languages are like a game of Jenga. It's only a matter of time before someone writes the equivalent of ... a="Batman" + 5 ... And the entire system melts.

    3. Re:Depends on the job by Anonymous Coward · · Score: 0

      Except javascript isn't even really a hammer. It's just a rock that happens to be available, which is just barely good enough to pound in nails. Also, there are no actual tools laying around for you to use.

  6. Ahh Dice by Verloc · · Score: 4, Funny

    Last week it was "How much C++ do you need to know for an entry level job"

    next week it'll be "How much Python do you need for an entry level job"

    Must be nice crowd sourcing your job requirements from Slashdot.

    1. Re:Ahh Dice by Anonymous Coward · · Score: 0

      C is for noobs yo.. every1 knos the futr is cloud! yay cloud!

    2. Re:Ahh Dice by Livius · · Score: 5, Insightful

      Followed by,

      "I know all the languages; what else do I need to get an entry level job. Any job. I haven't worked in years -- I'm desperate! Please!"

      High unemployment has a terrible social cost.

    3. Re:Ahh Dice by I4ko · · Score: 1

      Like what... birth rate control? One child per family if enough. The planet and all other intelligent life forms that chose not to destroy it like we do will thank you for it.

    4. Re:Ahh Dice by Anonymous Coward · · Score: 0

      Hehe, I just read today how the biggest oeprator in my country actually announced that the future of ISPs' service production is in the cloud (providing networking and various ICT systems). Like.. what? If it's the ISPs selling their networking services from the "cloud", doesn't that just make the cloud operator the *actual* ISP? In my humble opinion all this cloud nonsense is mostly just about people trying to be clever in shifting expenses around in their balance shets. Much like how rental work ended up being: hiring directly is cheaper, but to investors it looks better on the balance sheet.

      I think the concept of cloud computing is an excellent technological advancement, but it's also one of the most misused technology currently. Can't wait for the IoT to get into the mix...

    5. Re:Ahh Dice by Anonymous Coward · · Score: 0

      next week it'll be "How much Python do you need for an entry level job"

      How much Duplo do you need to own for an entry level job in engineering?

      The popularity of javascript and python is partly because how easy they are to play around with. That doesn't mean that you will get good structured maintainable code.
      If you need a Python or javascript developer, ask for a C or C++ programmer. They might write crappy code, but at least they will acknowledge that the code is crappy.

    6. Re:Ahh Dice by Anonymous Coward · · Score: 0, Flamebait

      Why not retroactive birth control?
      We can start by retroactively birth controlling you.

    7. Re:Ahh Dice by Darinbob · · Score: 1

      How much Dice do you need to get an entry level job?

    8. Re:Ahh Dice by Anonymous Coward · · Score: 0

      Yeah, the DICE experiment is getting fucking old.

      A debate about programming languages is always fun for me, but market research slipped in as a twisted version of slashdotness is infuriating.

      The AC 're:bullshit' breakdown is exactly why I come to slashdot. That it is in a thinly veiled bit of meatsack data mining is seriously sad.

      I miss the funny polls with no ulterior motives. :(

    9. Re:Ahh Dice by Anonymous Coward · · Score: 0

      Are you fucking stupid?

    10. Re:Ahh Dice by Anonymous Coward · · Score: 0

      Reducing physical assets in fact might make an organization look more "agile" and hence more attractive to investors. Offering cloud-like elastic services as an ISP is nothing new, but offering such services as an ISP from another provider sounds stupid.

    11. Re:Ahh Dice by tompaulco · · Score: 1

      How much Dice do you need to get an entry level job?

      More than exists right now apparently. I've never gotten a job through Dice, though I have tried at several points in the past.

      --
      If you are not allowed to question your government then the government has answered your question.
    12. Re:Ahh Dice by Livius · · Score: 1

      Like what... birth rate control?

      Is that what you think social workers spend their time on?

  7. Re:Yuck by Anonymous Coward · · Score: 5, Informative

    Java != JavaScript; not even close, really.

  8. Enough to get you by! by Nukem,Duke · · Score: 1

    Next question.

    1. Re:Enough to get you by! by CastrTroy · · Score: 1

      I would say it really depends on the job. When the post says "When someone lands their first JavaScript job", I envision the job as being possibly a website done in Node.JS with a lot of Javascript on the client side as well. I that kind of job, you'd better have a pretty good understanding of how javascript works, or you're going to have a hard time being productive. However, if you're "javascript job" is at a place where they use .Net, J2EE or some other language on the back end, and do most of their stuff in HTML, with a few javascript functions thrown in on the browser side for basic input validation, then you probably don't need to do a whole lot.

      Also, there are all kinds of "entry level" jobs, because there are all kinds of people getting their first job. Coming out of university for instance, there are those who did nothing more than the required assignments, and have very little actual, real world, programming knowledge. These people don't know any language well enough, and they certainly don't know how to go about creating a large project that is organized and runs well. You will have to teach them basics like how to use a debugger, and how to use source control. The proficiency in the language will be the least of your worries.

      There are also students who did a fair amount of work outside class, and may have actually done some actual "released to the public software" (such as app store apps) independently. They are quite fluent in a couple programming languages and are very well versed in using common tools like debuggers and source control. I would say that some people going for their first real job, aren't even looking for "entry level", as entry level is more what I described in the previous paragraph. Even if these people haven't had a formal job with a paycheck, they have surpassed the qualifications for "entry level", and are ready to move on to the next stage. Ideally, everybody would get this out of the way before graduating either through self learning or co-op/internship positions. But such is not reality.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:Enough to get you by! by tompaulco · · Score: 1

      In my experience, most companies hiring for "entry level" are defining the wage as entry level, or straight out of college wages, but the actual skill requirements they are looking for typically imply 3 to 5 years of work experience.

      --
      If you are not allowed to question your government then the government has answered your question.
    3. Re:Enough to get you by! by Anonymous Coward · · Score: 0

      Hmmm....3-5 years - thats almost as much time as they spent in college! How unfair!

  9. Hard To Say by sk999 · · Score: 1

    For a number of websites that I visit routinely, I disable javascript - too much overload. If you want to work for those websites, I will ignore you. Learn to code clean html without javascript - much better.

    1. Re:Hard To Say by Anonymous Coward · · Score: 0

      Learn to code clean html without javascript - much better.

      How did you post here? Surely NOT using the quick reply heh? Because D2.previewReply would not have worked. Gotta love trolls ;)

    2. Re:Hard To Say by sk999 · · Score: 3, Interesting

      No trolling, and even though you post as AC, you raise a good point. Slashdot is not functional without Javascript enabled, and so that is how I read it. Nevertheless, it is teetering on the edge of becoming unusable. The moment it crosses the threshold, I will stop reading it. There are many websites that I used to visit (some hosting content by very good writers) but the Javascript jockeys have turned them to mush. The submitter seems to aspire to becoming one of those jockeys. What do I know? I'm just one person - a tiny mote in webserver logs. Whether I am a canary ...

      [Way OT - I just used the Post button. What's quick reply?]

    3. Re:Hard To Say by MechaStreisand · · Score: 3, Informative

      Slashdot is still quite useable without javascript if you use the Classic discussion system, I find.

      --
      Disclaimer: IANAL. This post is, however, legal advice, and creates an attorney-client relationship.
    4. Re:Hard To Say by rock_climbing_guy · · Score: 1
      It's not so much Javascript itself that sucks, but the document object model that it interacts with that sucks.

      For example, class names that are hyphen separated in CSS are camelCased in the DOM. WTF???

      --
      Wh47 d1d j00 541, 31337 15n't t3h r0xor5 ne m0r3???
    5. Re:Hard To Say by daveime · · Score: 1

      Yes, you could also rip the starter motor out of your car, and bump-start it each morning.

      The rest of us prefer a functional web, not something that looks like it belongs in 1995.

    6. Re:Hard To Say by Anonymous Coward · · Score: 0

      "For a number of websites that I visit routinely, I disable javascript - too much overload. If you want to work for those websites, I will ignore you."

      Typically for the delusional egomaniac, your greatest threat is that you will withdraw your attention. It never seems to enter the heads of people like you that for you to ignore someone is really no big deal to anyone else.

      Go ahead, turn off javascript on a site I work on - nothing will work, you'll go elsewhere, no one will even notice or care.

    7. Re:Hard To Say by Anonymous Coward · · Score: 0

      > Slashdot is not functional without Javascript enabled

      It depends on how you define functional. I've been reading slashdot for years with scripting disabled and it is as functional as I want.

  10. The Art (and Science) of Computer Programming by Anonymous Coward · · Score: 0

    When did the syntax of a specific language become more important than the art of computer programming itself?

    1. Re: The Art (and Science) of Computer Programming by Anonymous Coward · · Score: 0

      I agree. Languages are easy. The hardest part is learning all the API/library nuances.

    2. Re: The Art (and Science) of Computer Programming by Anonymous Coward · · Score: 0

      Even that is just practice. Someone else applied the theory and implemented the really hard stuff, so the high level language user wouldn't have to.

    3. Re:The Art (and Science) of Computer Programming by Hognoxious · · Score: 1

      Since personnel became HR.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:The Art (and Science) of Computer Programming by UnknownSoldier · · Score: 1

      /Oblg. /sarcasm Right around the time Python was created ...

      Sad, I know.

    5. Re:The Art (and Science) of Computer Programming by gweihir · · Score: 1

      When "coders" routinely became too incompetent to see beyond the syntax of the one language they somewhat know. This is the main reason so much bad code is around.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:The Art (and Science) of Computer Programming by Anonymous Coward · · Score: 0

      That's a little disingenuous, don't you think?!

  11. Re: Yuck by Nukem,Duke · · Score: 2

    Java sounds like a great reason to get out of IT entirely!

  12. 125 years of experience by penguinoid · · Score: 3, Insightful

    also 90 years of experience with Windows 10.

    --
    Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
    1. Re:125 years of experience by Anonymous Coward · · Score: 0

      also 90 years of experience with Windows 10.

      Will you take 20 years of experience with Windows 95?

  13. DOM is for the browser by angel'o'sphere · · Score: 0

    If you want to do JS in the browser you likely won't use the DOM but stuff like AngularJS.

    For the back e.g. nodeJS end you need no DOM either.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    1. Re: DOM is for the browser by Anonymous Coward · · Score: 0

      Nothing with "JS" in its name should be running on the back end.

    2. Re: DOM is for the browser by jopsen · · Score: 1

      Nothing with "JS" in its name should be running on the back end.

      I agree, but the only serious competitor at this point is go.
      Honestly, js on the server be nice... If you code it right, and declare things rather than code them. Also babeljs rocks.

    3. Re: DOM is for the browser by Anonymous Coward · · Score: 0

      >Nothing with "JS" in its name should be running on the back end.

      Noted. I'll rewrite everything from scratch.

  14. Most important Javascript skill of all by Anonymous Coward · · Score: 1

    ... is the ability to say "No" to an idiotic team leader who thinks it's OK to display nothing but a blank page when the client is behind a company firewall and JS is blocked or constrained or not available on a low-power embedded system.

    Graceful degradation seems to be a lost art among many so-called "JS experts" who seem to have no idea how to make a website resilient to client diversity. If you can deal with their nonsense and show them a better way, you'll be worth your weight in gold to the company.

    1. Re:Most important Javascript skill of all by Anonymous Coward · · Score: 0

      Unless of course the "better way" costs thousands in development time for at most a couple of hundred in return. Thats called being an idiot.

    2. Re:Most important Javascript skill of all by shaitand · · Score: 1

      That's great for a website but when you are actually trying to get your application to the lowest common denominator by making it browser based you are going to hit some walls pretty quick without javascript.

  15. Expert knowledge of tomorrow's framework by i_ate_god · · Score: 5, Funny

    While Angular and React might be all the rage today, you're expected to be an expert in whatever framework comes out tomorrow.

    You should be able to write the same Todo List application several thousand times, justifying the existence of each one.

    You should also demonstrate a strong desire to re-implement every single piece of software in existence in Javascript, including Linux (http://bellard.org/jslinux/), 8bit Console Emulators (https://fir.sh/projects/jsnes/), and possibly the software that drives your Kuerig. For example, I would expect you to tell me that you're just dying to start a new github project where you'll re-implement MS Flight Simulator 10 in Javascript, and how awesome the cockpit checklist feature will be.

    You must demonstrate a complete misunderstanding of the differences between asynchronous and concurrent, and you must also be able to give a short presentation on what "web scale" means, without being able to explain it. You'll probably win a few favors by throwing in the term "cloud".

    This and more, is what it takes to be a 21st century javascript developer.

    --
    I'm god, but it's a bit of a drag really...
  16. but it's here by Anonymous Coward · · Score: 0

    It's a shit language, but it's here to stay.

    And even as a shit language, it's still preferable to python.

    The biggest problem with it are the twits who are using it on the server. I learned 15 years ago that server side javascript was a bad idea; and now we have fucking node.js

    I'm anxiously awaiting the twits who insist on using that shit on the server to give the fuck up and go back to their browsers.

  17. None by Anonymous Coward · · Score: 2

    Real programmers use C and provide the foundation that web kiddies rely on to get anything done.

    Now get off my lawn.

  18. Re:Yuck by Anonymous Coward · · Score: 5, Funny

    Considering the comment, glad you did.

  19. 2 Weeks to learn enough by Anonymous Coward · · Score: 0

    to know that you don't want a job maintaining JavaScript. Okay, truth be told, "maintaining JavaScript" usually means "tear out this utter piece of shit I don't understand and replace it with useful code I developed." Then when the next guy comes along, rinse, repeat.

  20. Re: Guess who said this: by Anonymous Coward · · Score: 0

    someone that knows JavaScript is not Java

  21. Cockfoster's Law proven right once more! by Anonymous Coward · · Score: 1

    Your comment is a perfect example of Cockfoster's Law in action: When a professional computer programmer with decades of experience presents a thorough and insightful analysis of a contemporary programming language, some shithead will always come along and babble about getting off of lawns.

  22. WRONG QUESTION by Anonymous Coward · · Score: 0

    Anyone who can ask this question cannot possibly know enough javascript to get a job where they will be required to program in it.

    It takes a freaking rocket scientist to properly check for 'equals' in that language. If you don't think so, the odds are extremely high that you are doing it wrong.

    I would (almost) rather someone force me to learn PERL, rather than ever seriously programming in javascript again. I'm sure it's not the worst language ever invented, but they gave it the old college try, and unfortunately for the rest of us, it caught on.

    1. Re:WRONG QUESTION by tompaulco · · Score: 1

      I would (almost) rather someone force me to learn PERL, rather than ever seriously programming in javascript again.

      The thing I noticed about Perl is that 5 minutes after you have written something that works, you could look at it and it would be completely unclear how or why it works.

      --
      If you are not allowed to question your government then the government has answered your question.
  23. Blinders by Luthair · · Score: 4, Insightful

    I think the author is wearing blinders based on his previous positions. As someone who has spent the past 4-years 60-70% writing JS (and irregularly since the 90s) most of what he considers important is almost never used.

    1. Re:Blinders by Anonymous Coward · · Score: 4, Interesting

      I wholeheartedly agree.

      1) You mostly do not want to manipulate the dom directly. Use templates/css to do as much as possible (so your designer has the freedom to fiddle with it).
      2) List most object based languages, you do not want to actually focus on creating/extending a bunch of objects.

      Your goal is to map the data from the server (most likely JSON) into something the View can use (most likely related to your choice of template technology).
      Since you likely have multiple views using the same data, you may need to store it in a model to be handed to each of them or transformed on demand.

      So know JSON. Know data structures, (arrays, objects, maps, sets). Know how to bind functions. Understand scoping. Then know how to hook into templates.

      Also, for the sake of anyone who may work with your code in the future, learn a unit test framework. Use it. Understand the difference between unit and system tests and favor unit tests.

    2. Re:Blinders by Anonymous Coward · · Score: 0

      Which of these things are almost never used?

      1) creating objects with "new"
      2) using "this"
      3) arrays (I assume that's what he means by "list")
      4) passing functions as parameters (callbacks anyone?)
      5) closures (fat arrow in CoffeeScript counts)
      6) OK.... all the functions on Array.... Most people use the underscore library... If you are using CoffeeScript then list comprehensions are better, so I will allow this ;-)
      7) At the very least you need to know the difference between String objects and "string" objects.
      8) Debugger and Browser command line (even if I am a dyed in the wool printf-debugger)

      I would posit that if you are not using these things practically every day then you are not a Javascript programmer. You might be able to whack together a web page and make the odd jQuery call, but that's not being a professional programmer in my book. I honestly use every single one of these things every single day (except for the debugger -- console.log and unit tests suffice, but I would suggest that's a more advanced skill).

    3. Re:Blinders by Bite+The+Pillow · · Score: 1

      I read that as, "know knockout or some other templating library". Because are you going to write your own?

      And then you have to learn the library. Or the custom implementation. So you haven't answered what someone needs to know in that situation.

  24. You don't have 12 minutes? by Anonymous Coward · · Score: 0

    Because that's all it takes to learn Javascript...

    https://www.youtube.com/watch?v=Ukg_U3CnJWI

    1. Re:You don't have 12 minutes? by Anonymous Coward · · Score: 0

      Which is actually very impressive, because the author of that video condensed his training from "Learn Javascript in 24 hours" down to 12 minutes.

    2. Re:You don't have 12 minutes? by Guildor · · Score: 1

      Not read that book, but if that's everything, it's not even a beginners book! So I'm guessing he covered the first couple of chapters.

  25. Re:Yuck by johnsnails · · Score: 5, Funny
    http://stackoverflow.com/a/245... What's the difference between JavaScript and Java?

    One is essentially a toy, designed for writing small pieces of code, and traditionally used and abused by inexperienced programmers.

    The other is a scripting language for web browsers.

  26. Re: The Art (and Science) of Computer Programmin by Anonymous Coward · · Score: 0

    Is this Dennis Ritchie? Thanks for the enlightenment Einstein!

  27. A few major topics by mysidia · · Score: 1

    A few months working with jQuery.... Events.... DOM on realistic websites, some fiddling with Prototype.js, and you'll be fine.

    Thas' assuming you know programming in general, and not just Javascript, and had time to learn Javascript's language quirks, such as functions, variables, conditionals, ===, strings, integers, dates, custom objects, and basic structures.

  28. Re: The Art (and Science) of Computer Programmi by Anonymous Coward · · Score: 0

    We could all use a little K&R in our lives.

  29. Learning it now by Rinikusu · · Score: 4, Interesting

    Most of my career has been bumbling along doing systems programming in c, perl, python, and lately c# writing a lot of console apps/utilities. Unfortunately, everyone now wants web developers and the like, so I find myself in the unenviable position of playing "catch up" and facing the possibility of having to return to a jr. role due to "lack of experience", but I'm not so proud to do these things if it gives me a steady paycheck with room for advancement... I digress...

    I'm going through Eloquent Javascript at the moment with a look towards the SImpson "You don't know" series to get a little more in-depth in some of the areas that I see people having issues with.. followed by working with node and angular (basically, the MEAN stack). I don't know where this would put me vs "beginners", but it's the route I'm headed down.. :P

    --
    If you were me, you'd be good lookin'. - six string samurai
    1. Re:Learning it now by phantomfive · · Score: 1

      Most of my career has been bumbling along doing systems programming in c, perl, python, and lately c# writing a lot of console apps/utilities. Unfortunately, everyone now wants web developers and the like

      If you know SQL, then you can easily call yourself a backend developer with that skillset. No need to learn anything more.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Learning it now by Anonymous Coward · · Score: 0

      Most of my career has been bumbling along doing systems programming in c, perl, python, and lately c# writing a lot of console apps/utilities. Unfortunately, everyone now wants web developers and the like, so I find myself in the unenviable position of playing "catch up" and facing the possibility of having to return to a jr. role due to "lack of experience", but I'm not so proud to do these things if it gives me a steady paycheck with room for advancement... I digress...

      I'm going through Eloquent Javascript at the moment with a look towards the SImpson "You don't know" series to get a little more in-depth in some of the areas that I see people having issues with.. followed by working with node and angular (basically, the MEAN stack). I don't know where this would put me vs "beginners", but it's the route I'm headed down.. :P

      Same situation. I keep hoping that there will be a replacement that will take the development world by storm and allow an even playing field. Alas, I fear Javascript is here forever.

  30. STFU Dice by b1ng0 · · Score: 3, Insightful

    STFU already Dice. We won't fall for your click bait articles.

  31. Basics by Bringer128 · · Score: 1

    The basics of JavaScript you need to know are:

    • How to use arrays (push, pop, shift, unshift)
    • How type conversions work (i.e. if you do 1 + "2" vs "1" + 2 vs "1" + { valueOf: function(){ return 7; }})
    • When to use == and === and what if(variable) really means
    • What "this" means in all potential contexts (libraries help with this, e.g. JQuery and D3.js use 'this' as another method argument)

    Then, you need to learn the basics of the libraries that are advertised in the job posting, which will likely be:

    • The basic raw DOM stuff (e.g. document.getElementByxxx)
    • Basic JQuery stuff (e.g. $(".foo") and operations on selections)
    • Other library stuff (e.g. if they use Angular, learn the difference between services and factories, between controllers and directives etc.)

    Finally, you need to know how to look stuff up on Mozilla Developer Network, which is the only JavaScript documentation worth looking at anymore.

    1. Re:Basics by Anonymous Coward · · Score: 0

      you always use ===

  32. If I'm hiring the minimum you need to know... by CQDX · · Score: 3, Informative

    If you want an entry level programming job and don't have any experience, you'd had better made something non-trivial on your own time that you can show in an interview and explain the code. If I'm skimming your code and I see you picked a certain data structure or implemented a algorithm when there is more than one way to do it, you should be able to explain your reasoning for coding it the way you did. Also make sure you learn at least the basics of one of the popular frameworks and use it in your demo.

    So make a Javascript web app, or something on the server side with a free or low cost hosting account. Make it functional, make it as bug proof as you can, make the code clean and easy to read, and be prepared to show it to a skeptical audience. Think of your interview as an audition and your code as the music you're going to play.

    If you can't make something to show, you don't know enough Javascript yet.

    1. Re:If I'm hiring the minimum you need to know... by Oligonicella · · Score: 1

      Bingo. I'd add that what you create should be neither trivial nor Baroque.

    2. Re:If I'm hiring the minimum you need to know... by Anonymous Coward · · Score: 0

      Just FYI, these expectations are bordering on insane for an entry level job.

      Captcha: honest

    3. Re:If I'm hiring the minimum you need to know... by tompaulco · · Score: 1

      Ah, so the basic requirement to get an entry level job is to have done an entry level job already.

      --
      If you are not allowed to question your government then the government has answered your question.
    4. Re:If I'm hiring the minimum you need to know... by Anonymous Coward · · Score: 0

      And god help you if your current job or previous job was not a web developer job. You can do all that, and they'll still say something like "We currently aren't hiring for any IT help desk positions." (or whatever your last gig was)

  33. Technical skills or development skills? by NBarnes · · Score: 3

    It's interesting to me to compare Cogswell's post to Matt Briggs' one on the role of senior developers here. http://mattbriggs.net/blog/201...

    It seems to me that Briggs has the right of things; the skills that bring real value to development efforts are less connected with specific language functions or quirks and more associated with understanding how to develop software projects.

    1. Re:Technical skills or development skills? by Guildor · · Score: 1

      I agree, there's a lot of focus on language features, but that doesn't mean you write good code.

      Javascript was never conceived to be what it is used for today, but here we are. So now we need to drink in gallons of good programming practices to take the beast of bad code. Funny how that doesn't appear on the list. Yet interestingly, it's these very ideas that many people seem to be resisting. It seems to me that structure requires a discipline that can so easily be broken, and so often is.

  34. Crockford's JavaScript: The Good Parts by tepples · · Score: 4, Interesting

    You just need to read [JavaScript: The Definitive Guide].

    Read it cover to cover a couple times

    Why not just read the good parts? Bonus: knowing the good parts of JavaScript may help you tame the fractal that is PHP as well.

    1. Re:Crockford's JavaScript: The Good Parts by Anonymous Coward · · Score: 2

      Crockford himself said "I have reviewed dozens of JavaScript books, and I can only recommend one: JavaScript: The Definitive Guide (5th Edition) by David Flanagan."

      But anyways, you can study the language all you want-- it won't help you get a job that requires experience with jQuery, Angular, EmberJS, node, or any of the millions of other JS frameworks and tools in use out there.

      Your only hope is that you get hired by a boss who's savvy enough to let you learn on the job whatever specific JS mess(es) they're working with.

    2. Re:Crockford's JavaScript: The Good Parts by phantomfive · · Score: 3, Informative

      Why not just read the good parts

      Because that's not really a Javascript guide, but rather a concept of how to use Javascript once you already know it. If that's the only book you have, then you'll be missing a lot of Javascript.

      Which is not to disparage the book, it's an excellent book.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Crockford's JavaScript: The Good Parts by maroberts · · Score: 4, Insightful

      The problem is that whilst Crockford will teach you to write good JavaScript, as often as not you have to wade through and understand the crappy JavaScript that has been written by someone who hasn't read that book, or any others from all appearances. And then to top it off, the sick bastard has minified and/or obfuscified the fuck out of it.

      --

      Donte Alistair Anderson Roberts - hi son!
      Karma: Chameleon

    4. Re:Crockford's JavaScript: The Good Parts by Anonymous Coward · · Score: 0

      It's like Effective C++ in that regard then? Useless to n00bs and C programmers, solid gold to people who want to go beyond "C with objects".

    5. Re:Crockford's JavaScript: The Good Parts by plopez · · Score: 1

      That's maintenance programming in any language. I've done it in COBOL, JCL, C#, Perl, bash, Python, SQL, and now Java. It never changes.

      --
      putting the 'B' in LGBTQ+
    6. Re:Crockford's JavaScript: The Good Parts by phantomfive · · Score: 1

      It's like Effective C++ in that regard then? Useless to n00bs and C programmers, solid gold to people who want to go beyond "C with objects".

      Sort of, but "C with objects" are fairly obvious in C++.

      In Javascript, it's not so obvious (because it wasn't designed for that). So Crockford basically said, "Here is a way I found to make Javascript usable, even though the language is weird. Also, there are some Lisp techniques that work in Javascript that can make your life easier." But yeah, it's not helpful to n00b programmers, the target audience is more advanced.

      --
      "First they came for the slanderers and i said nothing."
    7. Re:Crockford's JavaScript: The Good Parts by Pherdnut · · Score: 1

      Crockford's role isn't to teach people how to write better JS. It's to makes Java devs feel better about struggling with the fact that JS is similar to Java in terms of syntax but very different in terms of design, which is something they struggle with because they never understood Java in terms of its design in the first place nine times out of ten.

  35. Minified JavaScript by tepples · · Score: 3, Interesting

    Pick a mainstream web page as an example of visually ugly [JavaScript] code! They're everywhere!

    That's because mainstream web sites have minified their scripts. This process removes blank space and shortens variable names in order to pass fewer bytes over the wire.

    1. Re:Minified JavaScript by Anonymous Coward · · Score: 1

      This process removes blank space and shortens variable names in order to pass fewer bytes over the wire.

      Couldn't they, maybe, you know, like not include 250 000 frameworks, trackers and other bloat instead?

      The amount of external references I have to white list in NoScript to get basic functionality is already crazy and that is not even a tenth of the remaining blacklisted garbage.

      Also we had gz compressed websites decades ago, I rather think the main goal is obfuscation of already badly written and insecure code ( server side validation, what is that again?).

    2. Re: Minified JavaScript by jrumney · · Score: 1

      If they do it properly, those 250 000 frameworks are loaded from the same CDN URL as every other framework laden site out there, so are mostly already in your cache. The problem is all the developers who have copied an old, security hole ridden version to their own server, which they never update.

    3. Re: Minified JavaScript by Anonymous Coward · · Score: 0

      UNTIL the developers change the behavior of the framework and the changed/updated/broken functionality trashes your own website. This has happened to me often enough that I *never* trust central repositories for JS code.

      Of your visitors do not allow 3rd party content (I don't blame them) and the script is never loaded to begin with. Of course if your site is properly coded this should not impact functionality.

      And finally, as an extension of my first point, what happens when the central repository shuts up shop and you're stuck without the libraries you need. Sure, it's unlikely to happen overnight, but with the recent trends from Yahoo and Google, it seems like *everything* is being turned off these days...

  36. jQuery is not JavaScript by Dracos · · Score: 1

    Stop trying to say that it is. It happens with Node, Angular, and other stuff to a lesser extent, but jQuery seems to be the de facto JS gap-filler that everyone insists is part of core JS skills.

    But even worse are the feckless noobs who say they don't know JS, but know jQuery instead. That's like saying "I don't know English, but I know its verbs."

    1. Re:jQuery is not JavaScript by Anonymous Coward · · Score: 0

      JQuery makes javascript useful without reinventing the wheel. Same with libraries like Underscore, LoDash, or whatever your utility library of choice is. It's no different. JQuery is to Javascript as .Net Framework is to C#, or Spring is to Java. The frameworks make the language useful without a big investment in making your own proprietary library.

    2. Re:jQuery is not JavaScript by multimediavt · · Score: 1

      I'm sorry, but if you don't have a fundamental understanding of [insert programming language here] then knowing its associative frameworks won't make you a decent, let alone good developer for that language. You need to understand 1.) programming concepts in general, and 2.) the basic syntax and grammar of [insert programming language here] in order to qualify for a paying gig doing steady work with that language. Only knowing the frameworks and not the basics of a language tells me that you like to take shortcuts and are not interested in investing the time to really understand what you're doing, two qualities you DO NOT WANT in a programmer/developer. If you understand a language then you can work with any framework, not just the hip, hot one today, and that's what employers worth their weight want. If I'm hiring someone new to work with/for me to do JavaScript work, they damn well better know JavaScript and how to do things that the framework does without the framework. Sure, reinventing the wheel is dumb, but you better prove to me you know how to make a wheel before I let you use someone else's.

    3. Re:jQuery is not JavaScript by Anonymous Coward · · Score: 0

      "JQuery is to Javascript as .Net Framework is to C#, or Spring is to Java"

      Strictly speaking, thats not true. JQuery is to js what OGNL is to Java. It would be more accurate to say Angular is to js what Spring is to Java and .Net is to C#. There is no MVC pattern in JQuery, its (almost) strictly a tool for when the V is rendered or about to be.

    4. Re: jQuery is not JavaScript by Anonymous Coward · · Score: 0

      Amen. I've worked for enough employers that are hung up on following fads and fly into a rage at the idea of somebody actually knowing what's actually going on in the code.

  37. Node is DRY: Don't Repeat Yourself by tepples · · Score: 1

    The biggest problem with it are the twits who are using [ECMAScript] on the server

    Without using the same language on the server and client, and without repeating yourself, how else are you supposed to have both client and server perform the same input validation logic?

    1. Re: Node is DRY: Don't Repeat Yourself by Anonymous Coward · · Score: 0

      Maybe a good library that provides reasonable abstractions?

      Our team's library of choice lets you specify validation rules which run on the back end, but also automatically generate JavaScript to do the validation on the front end as well.

      No repeating myself, and no stupid JavaScript on the back end.

    2. Re:Node is DRY: Don't Repeat Yourself by Guildor · · Score: 4, Informative

      You've not used Microsoft's ASP.NET MVC, have you? you define a view model (class) and add attributes to the properties of that class that define constraints. When HTML is rendered to the client, the html-helpers make use of the attributes to add client-side javascript for validation. When a post to the server brings back the same object, you can check it's valid in your Controller, with ModelState.IsValid - and hence, you do get the same validation on the client-side as well as the server. Better still, is the MVC approach doesn't expect the javascript to even execute on the client-side. It's just nice if it does.

    3. Re:Node is DRY: Don't Repeat Yourself by TheSunborn · · Score: 1

      Java, and GWT(The java to javascript compiler) is the best solution for that. problem.

    4. Re: Node is DRY: Don't Repeat Yourself by tepples · · Score: 1

      how else are you supposed to have both client and server perform the same input validation logic?

      Maybe a good library that provides reasonable abstractions?

      In which language would this library be written in order to run on both the server and the client?

    5. Re:Node is DRY: Don't Repeat Yourself by tepples · · Score: 1

      you define a view model (class) and add attributes to the properties of that class that define constraints. When HTML is rendered to the client, the html-helpers make use of the attributes to add client-side javascript for validation.

      How does this work? Does it compile one set of properties to both CIL for use on the server and JavaScript for use on the client?

    6. Re: Node is DRY: Don't Repeat Yourself by angel'o'sphere · · Score: 1

      Java, with GWT?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  38. Reply to This, without script by tepples · · Score: 4, Informative

    Open the "Reply to This" link in a new tab and you'll get the no-JS version of the comment composition form, which I'm using to enter this very comment.

  39. When detail levels vary by screen size by tepples · · Score: 1

    Say you're designing the front page of a news or blog site. You want anonymous visitors on small "mobile" screens to see a list of headlines, but you want anonymous visitors on larger "desktop" screens to see headlines and a one-sentence summary of an article. Anonymous Coward says script is better than User-agent sniffing. How would you implement sending only headlines for mobile and headlines plus first sentence for desktop?

    1. Re:When detail levels vary by screen size by SirNorris · · Score: 0

      CSS Media Queries.

    2. Re:When detail levels vary by screen size by daveime · · Score: 1

      He said sending, not hiding. As in a different ajax request and DOM population based on device.

      CSS Media queries in this context just mean you have to download all the data anyway, and then selectively hide bits. Not an ideal solution is it?

    3. Re: When detail levels vary by screen size by Anonymous Coward · · Score: 1

      Create a small collection of elements that are shown/hidden by the same media queries that control the mobile/desktop display mode for your site, get the computed CSS visibility of these elements, make decision on what to load. Easy.

    4. Re: When detail levels vary by screen size by tepples · · Score: 1

      I disable javascript

      Create a small collection of elements that are shown/hidden by the same media queries that control the mobile/desktop display mode for your site, get the computed CSS visibility of these elements, make decision on what to load.

      How do the server "get the computed CSS visibility of these elements" without running a script on the client?

  40. Re: lots by Anonymous Coward · · Score: 1

    I swear to God, you can pick any 10 words at random from a dictionary and 4 of them will be the name of some half-baked framework.

  41. Share logic between server and client by tepples · · Score: 1

    So in what language do you write input validation logic for the server, which gets translated into JavaScript to be used as input pre-validation logic on the client? Writing it twice, once in JavaScript and once in your preferred server-side language, is repeating yourself and can lead to subtle disagreements in behavior between the two implementations.

  42. C deployment is more difficult by tepples · · Score: 1

    So how do you deploy your client-side C code to 14 different client platforms? Consider that some of these platforms have onerous developer qualifications designed to discriminate against startups, a devkit fee of thousands of dollars, and final veto power over apps. I guess perhaps you could use Emscripten to, well, compile your C into JavaScript.

    1. Re:C deployment is more difficult by Anonymous Coward · · Score: 0

      Package it using an exploit kit ;-)

    2. Re:C deployment is more difficult by Anonymous Coward · · Score: 0

      So how do you deploy your client-side C code to 14 different client platforms?

      Automake, bitch!

      Lawn.. off.. now..

    3. Re:C deployment is more difficult by tepples · · Score: 1

      Automake doesn't help when you're trying to deploy to platforms A. which don't all support the same libraries for presenting a user interface, or B. whose executable packaging process requires a code signing certificate that is expensive to obtain. Good luck porting, say, a Qt app to the PlayStation Vita.

  43. How much X do you need to know... by Anonymous Coward · · Score: 1

    Forall X? Honestly, the DHI shilling has a mediumish level of intrinsic offensiveness which is greatly exacerbated by lazy content-mill plugs and gender trolling. If you're going to abuse a non-captive audience, there's a cap on the level of abuse possible. And if you didn't know what to do with Slashdot, which you plainly don't, why buy it? What was the theory? Enrage, bore, and alienate the readership, then...profit?

    I think I'm going to go on a Slashdot vacation until there are no more dice plugs. Any suggestions for alternatives? Soylent news seems like it might be nice one day, but it currently has less traffic the official star wars holiday special forums. Reddit is full of beautiful microcommunities of people who can go days without experiencing a complete thought. Maybe I'll just go reread old k5 posts from 2000.

    1. Re:How much X do you need to know... by Anonymous Coward · · Score: 0

      Forall X? Honestly, the DHI shilling has a mediumish level of intrinsic offensiveness which is greatly exacerbated by lazy content-mill plugs and gender trolling. If you're going to abuse a non-captive audience, there's a cap on the level of abuse possible. And if you didn't know what to do with Slashdot, which you plainly don't, why buy it? What was the theory? Enrage, bore, and alienate the readership, then...profit?

      I think I'm going to go on a Slashdot vacation until there are no more dice plugs. Any suggestions for alternatives? Soylent news seems like it might be nice one day, but it currently has less traffic the official star wars holiday special forums. Reddit is full of beautiful microcommunities of people who can go days without experiencing a complete thought. Maybe I'll just go reread old k5 posts from 2000.

      I've been pissed and stopped logging in and visiting for a while, but you are spot on for how amazingly off-target the current management is with regard to removing any sense of community involvement from the content side of the house. It's getting to where I am really going to be sad and just go for good. It really hasn't gotten any better since the buy-out no matter what the community seems to say to management. The ship is just taking on too much water and it's time to scuttle her.

  44. mod parent +1 Funny by Anonymous Coward · · Score: 0

    because you know it's true

  45. Three equal signs by tepples · · Score: 1

    It takes a freaking rocket scientist to properly check for 'equals' in that language

    In both PHP and JavaScript, === checks whether two expressions have the same type and value. Anyone who read Douglas Crockford's JavaScript: The Good Parts knows that. Now can I work for NASA?

    1. Re:Three equal signs by Anonymous Coward · · Score: 0

      Sure, sure, that's all true. So, when you rely on "===", you are going to get the right answer.... except when someone else's code that you call has conveniently changed the variable type on you. If you don't check the type, your beautiful triple equal will fail. So no, you have insufficient imagination to work for NASA. Please try again.

  46. Wait, what? by s.petry · · Score: 1

    Your complaint is that a script language is not Object Oriented enough? Are you the same guy who complains about Perl and Python not being Semaphore ready? It's a scripting language! Scripting languages are not really intended to be object oriented, they are intended for task management with pragmatic functionality. JS has about the same Object Orientedness of Python or Bash. You can use those scripting languages for some pretty complex stuff and define all the functions you want. You have a massive performance penalty, but you can.

    There are surely a couple of valid complaints about JavaScript. Like:
    1. Lack of consistent implementation and/or libraries by every browser vendor and often even version to version in the same vendor.
    2. Lack of documentation on functions that are built in, so it's a huge amount of trial and error.

    To TFA's question, just like the same exact question 2 weeks ago about C++ it depends. If you are creating a custom front end for an ERP system, you had best be up on lots of JS, including all of the various browser implementations your app needs to support. If you are writing simple proxy auto configurations or simple web pages you need to understand coding more than subtleties with the language.

    --

    -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    1. Re:Wait, what? by Anonymous Coward · · Score: 1

      > Your complaint is that a script language is not Object Oriented enough?

      No, his complaint is that Javascript pretends to be an OO language and then fails at it. It doesn't properly implement inheritance so you can't inherit and encapsulate, therefore it fails to adhere a valid implementation of the three pillars of OO, and therefore is is, objectively, broken.

      The problem isn't that it's "OO enough" or not, the problem is that it has a broken OO implementation. That isn't subjective or opinion, that's fact. This stems nothing more from Eich's inexperience (or incompetence, depending on how kindly you wish to treat him) when he designed and created the language - we effectively have an amateuresque my first programming language attempt running the client side web through nothing other than a twist of history, rather than because it won in a competitive marketplace, or because it was a good idea, or because it worked well. It's there because it became entrenched largely by accident, and not because it's actually any good. It's flaws could be ignored in the early web where it was just used for a few small scripts, but as the amount of code has grown, it's become woefully insufficient for modern needs and is a major factor in holding back the web.

      We could have drastically more complex and useful web applications by now if failure of Javascript to scale well to large code bases wasn't holding us back. I know you'll probably try and blame the developers, rather than the language, but frankly, if even Google with all it's talent and resources has had to scale back flagship products like Google Docs because Javascript makes it too hard to maintain and support then it's not the devs, it's the language - it's objectively broken, and it's shit.

    2. Re:Wait, what? by DrXym · · Score: 1

      It's a scripting language! Scripting languages are not really intended to be object oriented

      And yet Python, Perl, Ruby, Groovy, Scala and countless other scripting languages manage a better job than Javascript.

      Being a "scripting language" is not an excuse. Nor should there be a hard distinction between "scripting language" and "programming language" these days at all.

    3. Re:Wait, what? by angel'o'sphere · · Score: 1

      Nor should there be a hard distinction between "scripting language" and "programming language" these days at all.
      But there is, and there ever will be. Not distinguishing fundamental design differences is just retarded. As well you could argue we don't need integers anymore as we have floats/doubles.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  47. crap code is who's fault? by s.petry · · Score: 1

    I have seen shit code in every language I have worked with. Starting with Cobol and Fortran, then to Pascal, C, Perl, Python, and various *SH. The language is not the reason for the shit code, it's the programmer.

    Want to read some great JS, go get a WordPress rootkit. JS is used to it's fullest in those (no I don't use them, I spent years learning how to hunt them down). PAC files are another area that usually has well written JS, and plenty of examples exist.

    --

    -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

  48. There is no core to Javascript. by Anonymous Coward · · Score: 4, Informative

    I've been working in JS for years and there is no such thing as some "minimal amount" you need to know; the language and the DOM are just too fucking disorganized and sprawling. The syntax is garbage and constantly evolving, who can remember the differences between innerText and textContent? Then there are the platform specific inconsistencies: event handlers or Ajax requests are maddening without external libraries. Then there is the pseudo-standard tooling for which there is always 2+ competing solutions: NPM and Bower for asset management, CommonJS and AMD and WebPack for packaging, Gulp and Grunt for builds, Closure Compiler and Uglify for minimization/compiling ... it's maddening!

    Trying to keep even a fraction of that in your head is impossible. If an employer wanted me to do an intense coding session without Google, I would laugh and just walk out of the interview.

    1. Re:There is no core to Javascript. by Anonymous Coward · · Score: 0

      While of course knowing the basic stuff would be something any employer should expect a potential employee to know, I totally agree with the last sentiment; search engines and various types of documentation are crucial in doing just about anything with JS. It's comparable to an employer expecting you to remember more than .05% of PHP's functions/methods (~10,000 in total atm)...

    2. Re: There is no core to Javascript. by Anonymous Coward · · Score: 0

      You're basically confusing lots of different aspects into one big mess and then associate that mess with the one thing you have a name for, JavaScript. Most of what you describe has nothing to do with the language. The browser DOM is a mess, yes, but totally decoupled from JavaScript. The variety of tools is an expression of a vibrant community ever on the lookout for a more efficient way to accomplish common tasks. That's a good thing. Nothing is as as bad as a language without a community, because it basically means you are on your own.. not being able to know it all is a fact in any field, don't dwell on it, but know *your* stuff well. At the same time, keep curious and learn. And moat importantly, always ask yorself: which part of the system is it really that I take issue with? Most often it's not the programming language...

    3. Re:There is no core to Javascript. by Daniel+Hoffmann · · Score: 1

      NPM and Bower for asset management, CommonJS and AMD and WebPack for packaging, Gulp and Grunt for builds, Closure Compiler and Uglify for minimization/compilin

      As opposed to Maven/Gardle, JAR vs WAR vs EAR? Really building a project is hard in any language, there is a reason many companies have people dedicated to it. Personally Gulp is panacea after dealing with Maven...

    4. Re:There is no core to Javascript. by Anonymous Coward · · Score: 0

      Sorry.. your list of asset management tools is out of date since you forgot to add JSPM. And what of system.js when you talk about web packaging? Let's not forget the fact you have to transpile for ES6 with your choice of transpiler. Or maybe you need to transclude something in Angular? Or maybe you need to drop overly nomenclature and go back to basics with a next gen framework like Aurelia? Or maybe it's a polyfill you need because it's likely that your browser doesn't run everything, yet? Or maybe you like to poll for changes with a digest loop and dirty check changes... or maybe you'd like to use Object.observe to do that for you or a polyfill? Or maybe you'd like to leverage the power of promises and manage everything with an observable/microtask queue? Or maybe you'd like to create another thread and easily manage and communicate between threads with a shared web worker? Or maybe you'd like to have intellisense and code refactoring like you do with Java/C#, so you need to implement TypeScript and JSDoc? Or maybe you'd like to use Ember Data, JSData or PouchDB for client side query caching? Or maybe you'd like to use the power of promises and generator functions to implement observable streams and relieve some of the limtations of event driven I/O? Or maybe you'd like to use the shadow dom, the virtual dom, or profile how all your "easy to understand JavaScript" works with chrome developer tools?

      JavaScript is not for beginners.

  49. I think... by nathan+s · · Score: 1

    ...the proper answer should be "none."

    I don't really care what languages people know when I'm interviewing. I care how they think, that they have the ability to solve problems, and that they know how to research to get themselves out of holes. The specifics of any given language can be learned on the job by a reasonably smart person who understands how to break problems down and solve them algorithmically, and if they know how to use Google they'll be able to pick up the syntax of whatever the language of the day happens to be.

    I really don't understand this fascination with checklists and expecting people to have memorized giant chunks of specific languages or libraries when it comes to programming. Just show me some stuff that you've built on your own time, in any language, and talk with me about it intelligently and convince me that you didn't plagiarize the code. That's what matters most at entry level, not whether or not somebody has used closures or promises or whatever. They can learn that stuff as they go, usually in short order, if they're actually smart.

  50. Re: bullshit bullshit by Anonymous Coward · · Score: 0

    This. This just shows the skills level of people working with the language. I have been programming for 30 years and have seen & used a ton of languages myself, including COBOL, Fortran, PLI, REXX, Pascal, Assembler on various processors & architectures, C, C++, Java, C#, Visual Basic, SAS/SCL, R, Matlab, Ruby, Perl, PHP, Python, JavaScript, not to forget the likes of 4GLs and document languages among which SQL, SAS, HTML, Script, Bookmark, LaTeX , XSLT, as well as a few batch scripting environments on all walks of operating systems. My programming mileage is likely on the upper side of 750'000 to 1 Mio LOC (estimate), not including the miriads of code reviews and maintenance jobs. In other words, I know my way around. Over the years I have also written several of what today goes by the name of DSL, internal and external.

    In my conclusion, by far the worst language by any standard is XSLT, right next to COBOL, quickly followed by Visual Basic especially in its scripting incarnation a.k.a. VBA, what a mess. Follow this up by the body of code written in (badly crafted) Perl, and you've got yourself a pretty descent nightmare. Oh and that's not even considering PHP, which even by the words of its creator is technically not a programming language - it is just a pile of crap built ontop of another pile of crap (Pile of Huge crap, on another Pile).

    However, JavaScript is certainly not a bad language, at all. It has a well thought out syntax, a consistent type system and a nice language-provided library. The ecosytem is vast and provides most everything you'd need and want. I've been using JavaScript's object oriented features both on client and server side, for almost two decades now, i.e. ever since the language existed, and long before it became mainstream to do so. All I can say is this: if you think JavaScript is a mess, you have yet to master a few basics of computer science & math, such as data structures and basic algorithms, and certainly higher order functions. Anyone with said set of knowledge and insight will immediately get how to write efficient and quality code in JavaScript. If you don't, and still think global variables are the best thing since sliced bread, so easy to access, more of that please, well then my friend, qith all due respect, it's not the language that sucks.

    On the OP article, the key skills that are totally missing on the list are to understand how to modularize applications, and probably even more important to know the commonly used tools for build and package management, like grunt, bower and npm, as well as testing frameworks like e.g. Jasmine or JSUnit.

  51. Don't study, write by WinstonWolfIT · · Score: 1

    Write a shopping list app. If you have a significant other, you'll be a hero, and besides todo apps are so 1990. Use a framework like angularjs to learn front end MVW, and learn how to consume web service calls that deliver json to populate your model. There will be enough javascript in this small app for you to wrap your head around it. In an interview, smugly say "I know jquery, but I avoid it". That much should at least get you out of the bottom of the pack.

  52. A class in logic should be mandatory for PHBs by Anonymous Coward · · Score: 0

    If you want an entry level programming job and don't have any experience, you'd had better made something non-trivial on your own time

    If someone has made something non-trivial, then they have experience.

  53. Re: lots by Anonymous Coward · · Score: 0

    Framework developers stopped using real words a long time ago.

  54. Are you Asian? by Anonymous Coward · · Score: 0

    Then you need not know any JavaScript. Otherwise, you need to have read at lead 2 books on JavaScript and have made several professional looking websites utilizing it.

  55. By definition, the answer is "none" by melchoir55 · · Score: 4, Insightful

    By definition, the answer is "none". An entry level position doesn't need to require experience in a given programming language. It needs to require some familiarity with programming, sure. There is all kinds of stuff you probably should look for in such an individual. Aptitude to learn (from your senior and mid level developers who you picked partly because they are good at sharing knowledge), existing understanding of symbolic logic, common software design concepts like when to use sets instead of lists, the list (pun) goes on.

    It is really absurd how snobby software developers are about who joins their ranks. Part of the absurd job req ads in tech aren't just due to hr managers trying to game the h1b system. They are in part there because of clueless software devs who have been moved into management because that is (for god knows what reason) considered a normal career path. Don't respond with "it is better to have no one then to have a bad coder!". You're right, but inexperience with a given language doesn't mean they won't be productive with that language in two weeks to a month. This is the very definition of entry level.

  56. No jQuery! by Anonymous Coward · · Score: 0

    For reference: http://youmightnotneedjquery.com/

    If you are "entry level", you should NOT be writing anything using jQuery unless jQuery is already used for a significant part of the project. So many damn times I see people load the goddamned jquery library just to do a lightbox effect that could be done in straight CSS!

    Before you do something in jQuery, make sure you can't already do it with straight CSS/HTML.

    Beyond that gripe, learn C so you know what you're doing. Learn to initialize variables, it's easiest to explain this coming from C context because you can run a program in C that didn't initialize variables, and it will work ONLY the first time. Every subsequent time it will use dirty memory and as a result not work. In Javascript, it's assumed that memory is pre-initialized. It is not. This is how a lot of drive-by malware exploits bugs in browsers. By finding that function that assumes memory was properly initialized and breaking where the instruction pointer should be reading data instead of code. Once you know why variables of are certain sizes, lots of things make a lot more sense in Javascript, and it makes it far easier to optimize by not needly creating global variables when you need locally scoped variables.

  57. What's the difference between JavaScript and Java? by Anonymous Coward · · Score: 0

    Script, plus everything else except comments. Both support /* */

  58. Re:Yuck by TheRaven64 · · Score: 1

    This would have been more funny 10 years ago when people still said 'Java applet' without laughing and both statements could have been applied to either language. I rather like the top answer though: 'Java and Javascript are similar like Car and Carpet are similar'.

    --
    I am TheRaven on Soylent News
  59. Which part of the Script the author didn't underst by c.r.croitoru · · Score: 1

    Assembler. C.

  60. LISP ! by Anonymous Coward · · Score: 0

    I'm also a programmer since the '70s, and the list of languages / OSes / systems from big iron down to the embedded that I've been involved in is almost similar to you --- except one

    LISP

    Have you tried LISP?

    Try it -- you'd love it!

  61. Care to spare a link? by Taco+Cowboy · · Score: 1

    There's a nice paper from the developers of the Apple Newton, which argues that class-based OO maps very well to model objects (where you have lots of objects that are mostly the same), whereas prototype-based OO is a better fit for views, where you want a bit of customisation for almost every instance

    Perhaps I'm kinda dense today ... I just couldn't find that 'nice paper' that you have mentioned

    If there is a link somewhere, would you kindly share the link with us?

    Thanks!!

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Care to spare a link? by TheRaven64 · · Score: 1

      I read a paper copy of it almost 10 years ago, so unfortunately I don't have one to hand, unfortunately.

      --
      I am TheRaven on Soylent News
    2. Re:Care to spare a link? by Anonymous Coward · · Score: 0

      "Using a prototype-based language for user interface programming: the Newton project’s experience"
      http://waltersmith.us/newton/OOPSLA95.pdf

      and

      "Class-based NewtonScript Programming"
      http://waltersmith.us/newton/Class-based%20NewtonScript%20Programming.pdf

    3. Re:Care to spare a link? by irrational_design · · Score: 1

      You might find this blog article relevant: http://steve-yegge.blogspot.co...

    4. Re:Care to spare a link? by Anonymous Coward · · Score: 0

      Perhaps this paper: http://waltersmith.us/newton/OOPSLA95.pdf ?
      Found on the Wikipedia page: http://en.wikipedia.org/wiki/NewtonScript.

    5. Re:Care to spare a link? by TheRaven64 · · Score: 1

      Hmm, that looks familiar. It was either that or an extended tech report version of the same thing that I was thinking of. Thanks!

      --
      I am TheRaven on Soylent News
  62. can you spell jquery? by bsdpanix · · Score: 1

    When I was a hiring manager the joke was "I'll hire anybody that spell computer"

    Do you know what jquery is? Do you know what DOM means? You're hired!

    1. Re:can you spell jquery? by wonkey_monkey · · Score: 1

      Do you know what jquery is?

      I don't listen to hip-hop.

      Do you know what DOM means?

      What I do at the weekends is none of your business!

      Err... I mean no. No I do not.

      --
      systemd is Roko's Basilisk.
  63. In my job? by bytesex · · Score: 1

    None. But it would be weird if you didn't.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  64. I would have LOVED... by mha · · Score: 0

    ...a "thorough and insightful analysis", but I only got a rambling post of ZERO value.

    1. Re:I would have LOVED... by Anonymous Coward · · Score: 0

      I disagree. There was value there, although it was in some ways a rant. JS is a bad language in most ways. It's not very clean. I've seen some "clean" JS by talented programmers, but it's because the programmer was talented, not because the language is very good.

      I really do miss the old days. Really, they were better despite the HW and SW being less advanced. But we didn't know better, did we? I miss Perl/CGI, I miss old-school simple HTML-driven websites with aold-school submit buttons. I miss writing simple Perl scripts to handle simple websites. I miss FreeBSD webservers, PostgreSQL DBs, even flatfile DBs. I miss Netscape Navigator and how the Internet wasn't as commercial. I digress...

      Sooner or later, someone needs to figure out something better than JS. It's really a hack of epic proportions. I still think Perl was better. JQuery and NodeJS are the only things holding the JS ecosystem together. It's convoluted. There are an explosion of libraries. All this leads to incompatibility and client-side bugginess, not to mention coding horrors on the server side. I digress. Perl keeps this intact with CPAN. Perl is not dead despite what anyone will tell you. Some of the most busy websites use Perl in lieu of JS. Perl is more able to withstand "sloppy" code than JS. There is more than one way to "cleanly" do something with Perl despite Perl's reputation for being nigh on unreadable. It really isn't. Again, it comes down to the programmer writing clean, efficient code that is also well documented, something that is falling by the wayside of late. With the advent of huge HDDs, abundant RAM, the "cloud", programmers have gotten sloppy. The backwards compatibility hell is coming with JS. It's being swept up under the rug at present, but come it will.

      I'm not advocating JS be replaced with Perl, what I'm saying is we have allowed JS to become some monster with incompatibilites creeping in and being swept aside. The payback for this "shoddy" maintenance is coming.

    2. Re:I would have LOVED... by mha · · Score: 1

      > There was value there

      There was just rambling! ZERO arguments, 100% opinion. You seem to be of the *opinion* that having a string feeling equals "arguments": It doesn't. I'm modded troll by a troll, and the parent post this is about is the biggest troll post of all. More and more little kids on Slashdot with "opinions" unable to express ANY argument.

    3. Re:I would have LOVED... by Pherdnut · · Score: 1

      Problems:

      * You are comparing Perl to JS as if one replaced the other. Perl was never a client-side language. Or if it ever was, it was never a popular cross-platform option that didn't require a plug-in but certainly it wasn't in the contexts you've been referencing. And JS was primarily a client-side web language long before it ever became available and ultimately popular as a server-side option.

      * You are reminiscing about things being long gone that are in fact still in place. I just wrote a Node app leveraging postgresql that in fact features an old-school submit with JavaScript intervening for client-side validation only.

      * There being an explosion of libraries is not generally considered a weakness in a language unless you are required to use every last one of them to get anything done. I assure you, you are not. I don't even link jQuery half the time nowadays because most of the value adds it brings are now available through native JS or DOM features and browser support for standards (i.e. compatibility) are actually better now than they ever have been, not worse as you suggested.

      It is not JavaScript's problem that you couldn't be bothered to learn anything new about the state of the technology since the first tech crash and given your client/server-side fail I'd wager you didn't understand what you were doing with the technology very well to begin with. And yes, it is obvious, painfully obvious, that you haven't learned a damned thing about web development since the late '90s. If you are lamenting the career that you no longer have in web development I highly recommend some introspection. If you're not up to learning something new every week, you're not cut out for it. And no, most of the new stuff isn't frivolous. It's evolution. There are some stupid and unfortunately popular libraries like Angular.js but I would never trade the DOM or CSS or JS as it is now for the way people had to do it in the '90s. It was a pain in the ass. And Node's had its growing pangs but overall it's !@#$ing amazing. Nothing else just works like core Node has across platforms for me (sadly, you can't make that claim about even some of the more popular modules just yet - too many Linux/Mac OS supremacists in the mix unfortunately).

  65. Promises/deferred's by Anonymous Coward · · Score: 0

    Wrap your head around promises/deferred's. Event firing and handling still has its place, but that place is shrinking.

    Probably the most heavily used technique in modern js is the async call wrapped in promise/deferred methods. Hell, more and more often non-async methods are wrapped in a promise for (apparently) no other reason than to take advantage of chaining.

    This is one area that is getting messy as hell real fast as there arent yet many established patterns for this shit.

  66. How many lists do you need to make fluff articles? by Anonymous Coward · · Score: 0

    Too many of these "how much X do you need to Y" filler articles!

  67. The key... by gigaherz · · Score: 1

    The key is to really understand how closures work (and by extension, why javascript "classes" look the way they do). If you manage that, the rest of the language just comes easy and shouldn't be an issue. ;P

  68. JS alone will get you nowhere. But it will win. by Qbertino · · Score: 2

    JS alone will get you nowhere. JS is part of todays web ecosystem. And developing for the web today is so hard, people doing it are either inexperienced and naive or - like me - sort-of specialized/focused in some vertical toolstack like LAMP + Wordpress + Bootstrap or something and never really happy with their results.

    The problem is, that you have to know HTML5, CSS3, DOM perhaps some jQuery UI or HTML canvas stuff + UX + responsice webdesign + Typography & Layout + a workable set of backend tools (LAMP or such) to do anything usefull with JS. Which makes the whole thing basically impossible for an "entry level" developer to learn.

    I suggest you find a team that has a working development pipeline, uses versioning (far to many webshops don't) and puts out good results and learn by doing.

    As for JS in general - there's a lot of academic ragging on JS here, but most of it misses the point about JS entirely:
    JS alone is like a mix of Python and Ruby made to look like Java (yeah, I know) and doesn't look very modern. However, what makes JS interesting is the fact that as a platform it is available basically anywhere. JS is todays PC of platforms. A toy, not taken seriously by anyone, but available for cheap/free everywhere. Which is why it is going to win in the long run, just like the toy-technology x86 did, eventually squishing every other architecture like a bug on it's way to total world dominance. In the early eighties, people would've laughed you out of the room for predicting that.

    I personally wouldn't be suprised if JS eventually replaces PHP, Java and Co. on the serverside and takes over everything but system development on the clientside within the next decade or two. Be it natively or with languages that cross-compile to JS ... We already have a ton of those. Google is heading for bringing the second half of humanity online, and as far as I can tell, they're succeeding. Which in itself does put JS in a future-safe position.

    JS, Browsers and the clientside webstack are a mess, but they are truely cross-platform, open and not controlled by a single entity. Very much like x86.

    So no matter what you're doing, getting into JS at a professional level one way or the other isn't the worst thing to do.

    My 2 cents.

    --
    We suffer more in our imagination than in reality. - Seneca
  69. Doing it wrong by Anonymous Coward · · Score: 0

    The right way to do that sort of thing becomes clear when you think about it for a bit: Most of the time the only discernible purpose of all that stuff is to slow down the "user experience", make it less intuitive because different from expected, and so on. The solution is to take all that javascript reinventing wheels, badly, and just doing away with it.

    It really isn't hard to take those bits of text and pictures that still make up the majority of websites, and generate the requisite html boilerplate around it once after editing, add a bit of css to dress it up, pre-compress everything, and serve it with a super-fast static-content httpd. No need for backend databases, CMSes, or javascript in the browser, stealing cycles at every page load in the client for what really should've been done once serverside and simply served up whole afterward.

    1. Re:Doing it wrong by tepples · · Score: 1

      Without a backend database, how does a site accept reader comments? Without client-side scripting, how does the site know when to send a particular image so as not to waste the server's and client's valuable data transfer quota on sending photos and illustrations that the user will end up not viewing?

    2. Re:Doing it wrong by angel'o'sphere · · Score: 1

      Without a backend database, how does a site accept reader comments?
      Last time I checked, files whee not abolished ;D

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  70. Re: bullshit bullshit by UnknownSoldier · · Score: 1

    > a consistent type system

    Mwuahaha. I was following you until you said that. With JS you get stupid automatic silent conversions that are the source of hidden bugs. And just to drive the point home (JS starts @ 1:22 )

    * https://www.destroyallsoftware...

    Javascript's == operator is fundamentally broken as this chart shows:

    * http://dorey.github.io/JavaScr...

    When even Douglass Crockford, who wrote the excellent "Javascript: The good parts" says @34:31 "Why am I betting my life on this piece of crap" in this video "Javascript: The Better Parts"

    * https://www.youtube.com/watch?...

    You know there is something horribly broken with JS.

  71. I Vociferously Disagree by Anonymous Coward · · Score: 0

    A few years ago, I worked for a very small, very talented IT security company that was acquired by a large multinational. When I started, there were maybe two Indian programmers in the entire company (~100 people). When I left a couple of years later, the entire development wing was Indians. I learned from a manager friend there that the Indians were being brought in and the Americans were being replaced because of cost. The Indians were being paid around 60k a year vs 90k a year for the Americans.

    This company was founded by two American men to secure American companies' networks. I call shameful. The founders were driven out and the company sold to the aforementioned multinational. The company now is 95% Indian. The friend survived a few rounds of layoffs and left because the smell of BO and masala was too much for him to handle (literally). He was literally not taken seriously by the Indians, who hired their own despite my friend being able to code rings around these guys. He said their code was "OK" but the Americans wrote better code.

    The Indians literally re-wrote things in Java and switched the DB over to Oracle because it was all they knew. The original stuff was all C/C++ running under BSD and PostgeSQL. The Indians converted everything over the Windows. As a result, the systems became hideously unstable and the mission altered. I still cannot, to this day, fathom why anyone would have bought this company after the bastardization of the mission and tech that was built from the ground up by very talented people.

    Look at Disney now. All the Americans are being replaced by foreigners and for why? To save a few shekels. American companies should be ashamed -- all for a little money. I'm thinking of starting my own IT company, and I can tell you this straight up. If you are not American -- born here -- I will never hire you. This can all be done legally.

  72. Can't RTFA by Anonymous Coward · · Score: 0

    Wish I could RTFA, but these annoying "social media" icons are plastered across the middle of the screen, floating with my scrolling.

    Yes, I know JavaScript can be used to remove them, but the point of TFA is (supposedly) that I don't know JavaScript. :P

  73. The question is a non-sequiter by dnwheeler · · Score: 1

    The problem with JavaScript is that it appears easy, but in reality it is a fairly complex language that requires skilled programmers to use correctly. I would be more apt to hire an entry level programmer for C/C++/C#, and leave JavaScript for the more senior developers who can use it correctly.

    Someone without a lot of experience with good coding practices and software architecture concepts may be able to write some "working" JavaScript, but it will probably be unorganized spaghetti code that is impossible to maintain, inefficient, and probably contains a ton of undetected bugs.

  74. We hire smart people, not ****.js developers by netsavior · · Score: 1

    I am a team lead, and If you want to get hired at the company I work for.. all you have to be is smart and not too socially toxic.

    Sure, we give a programming test that basically asks "have you ever written any code in any language?" 90% of applicants fail this test (Think Fibonacci or leap year level difficulty, not 9 queens or tower of Hanoi hard). Any applicant that passes the "have you ever written a line of code" test, we just talk.

    I don't care if you know node.js or angular.js or Knockout or whatever. Angular and node are both 6 years old. If I required every developer to know everything about a 6 year old framework, what happens when something better comes along? How hard will it be to get them to use the new thing, or learn it. If I hire a smart person who can learn whatever, then when something new comes along they can learn that too.

    Encyclopedic knowledge is not a selling point by itself. FAQs are free, brains are expensive. Hire the brains and feed them FAQs, not the other way around.

  75. .min.js.gz smaller than .js.gz by tepples · · Score: 1

    The minified JavaScript file is smaller than the corresponding file before minification even after both are gzip compressed.

  76. Great minds think alike .. by kbahey · · Score: 1

    Great minds think alike ...

    Wrote this yesterday on the other site ...

  77. Sony v. Hotz by tepples · · Score: 1

    So how do you deploy your client-side C code to 14 different client platforms? Consider that some of these platforms [are controlled by an entity with] final veto power over apps

    Package it using an exploit kit ;-)

    We saw how badly that went for George Hotz.

  78. keep it simple by Anonymous Coward · · Score: 0

    Javascript can be an interesting language if you embrace it and keep it simple. If you already know how to write eloquently in any language you can continue to do so in javascript (and the reverse is also true).

    I prefer to create classes (of course they are really just objects) to encapsulate my object and behavior. I use inheritance sparingly and when it is really obvious.
    I keep my classes generic (so each class refers to itself using the this keyword and not the implementation variable name) . This is important and it will force you to learn about scope. Unless you use inheritance keep your objects immutable.

    I use libraries (example jquery) as a convenience and only its simple syntax. For example $('#myVar').val() $('#myVar').html() but not some monstrosity like
    $('#myVar li .second .item span p.bold').html(). Keep it really simple and figure out how to write your code so you do not include this kind of nonsense.
    Do not depend on complicated functions in libraries. Behind the scenes they still need to do the work. If you use jquery realize the library has already iterated the dom so you can make use of it (for example: jquery delegate is rather cool and does not cost extra).

    I like this Simple JavaScript Inheritance library (John Resig): http://ejohn.org/blog/simple-javascript-inheritance/

    a lame (and quick) example of what I mean by class:
    var pform = {
            submit(args,callback){ ..ajax...}
            updateCities:function( this.submit(province,citiesSuccess) )
            showHelp:function(){}

            validate:function(){}
            init(){
                  delegate();
                  delegate();
                  delegate();
          }
    }

  79. i said it was a lame example :) by Anonymous Coward · · Score: 0

    something was missing:
    var pform = {
                    submit(args,callback){ ..ajax...}
                    updateCities:function( this.submit(province,this.citiesSuccess) )
                    showHelp:function(){}
                    citiesSuccess:function(response){{}
                    validate:function(){}
                    init(){ ...
                }
    }

  80. Javascript? by macbeth66 · · Score: 1

    I haven't, directly, needed to write any Javascripts in over five years. I've fixed a few nit-wits hand-coded JS, but that's it.

  81. lol by Anonymous Coward · · Score: 0

    because you're too fucking stupid to make money off them and rather be a broke has-nothing technocrat

    1. Re:lol by UnknownSoldier · · Score: 1

      I know I shouldn't feed the trolls ...

      My day job IS using Javascript.

      Don't assume.

      Grow up with the ad hominem attacks already.

  82. Cast then compare by tepples · · Score: 1

    except when someone else's code that you call has conveniently changed the variable type on you.

    If the type of the value your code gets from someone else's code is either not documented or not as documented, you can A. report this as a bug in someone else's code, B. cast the values to the expected type before doing anything with them, or preferably C. both.

  83. None at all by Anonymous Coward · · Score: 0

    When I was 15 I managed to get an entry level job washing dishes and they didn't even ask me about my programming skills generally, let alone about JavaScript specifically.

  84. You end up reinventing SQLite by tepples · · Score: 1

    Using files complicates concurrent attempts to write, such as if two users attempt to leave a comment at the same time. By the time you write a library that guarantees correct locking behavior for concurrent writes, you might as well just use SQLite and be done with it.

    1. Re:You end up reinventing SQLite by angel'o'sphere · · Score: 1

      Sigh, I suggest to read a unix "how to book".

      And: no one talke about writing into the same file, rofl.

      Every comment is its own file, obviously.

      How to structure a filesystem with directories and files is up to figure as an exercise for the reader ;D

      Hint: it works quite similar like creating an REST API.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  85. Torrent by NewYork · · Score: 1

    JavaScript: The Good Parts
    Unearthing the Excellence in JavaScript
    By Douglas Crockford
    https://kat.cr/douglas-crockfo...

  86. Re:Yuck by johnsnails · · Score: 1

    Yeah the Car/Carpet one is probably a better 'answer', but not as funny :P

  87. DarinBob = "Run, Forrest: RUN!!!" by Anonymous Coward · · Score: 0

    See subject "Forrest" & this -> http://tech.slashdot.org/comme...

  88. Running out of inodes by tepples · · Score: 1

    Every comment is its own file, obviously.

    This carries three disadvantages compared to use of SQLite:

    • With what unique name?
    • With what efficient means of text search, or even search by author or date?
    • Most file systems don't support tail merging, which means they have to round up each file's size to a multiple of the cluster size. Writing 256 bytes of comment to a file wastes an inode and the remaining 3840 bytes of the cluster.
    1. Re:Running out of inodes by angel'o'sphere · · Score: 1

      Why don't you think about it a bit, you figure easy how to organize a (unix) file system into a hierachical database with unique names and search functions that mostly work instantly and don't need any special "data base".

      Slashdot actually is a prime example for that.

      The only drawback is lack of easy ability to rollback changes, but that is not happening in a discussion system anyway.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:Running out of inodes by tepples · · Score: 1

      Because I could instead use SQLite and get my service up and running instead of sitting on my behind "think[ing] about it a bit".

    3. Re:Running out of inodes by angel'o'sphere · · Score: 1

      Less thinking leads to less brightness ...

      And honestly, it takes more effort to craft an SQL DB than considering how to use files if you ever once went through it.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:Running out of inodes by tepples · · Score: 1

      Less thinking leads to less brightness ...

      Worse is often better.

      And honestly, it takes more effort to craft an SQL DB than considering how to use files if you ever once went through it.

      Including full-text search? Several SQL databases have this as a built-in feature.

    5. Re:Running out of inodes by angel'o'sphere · · Score: 1

      Several SQL databases have this as a built-in feature.
      Several Unixes/Linux etc. have this as a build in feature as well, one command that comes to mind is: grep.
      If you want an index use Lucene.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  89. Lucene uses Java by tepples · · Score: 1

    one command that comes to mind is: grep.

    O(n).

    If you want an index use Lucene.

    So now you're recommending that the server administrator install the Java virtual machine, which is listed on the front page of Lucene's site as one of Lucene's dependencies, as a means of avoiding use of SQLite. Oracle's legal shenanigans aside, I was under the impression that switching to a plan that includes Java support was unaffordable to a lot of shared hosting customers.

    1. Re:Lucene uses Java by angel'o'sphere · · Score: 1

      It is no difference if you either install
      a) Java
      b) SQLLite

      Get a damn clue. You only arguing for arguing sake (as opposed to for the argument sake).

      What the fuck do I care which software I need to install?

      And SQLlite does not have the "ready made text search and auto index based on old searches text search feature" you mentions in your previous post.

      Point is: you have clue about software engineering. You think a SQL database is "the only reasonable solution" which it is not ... proof: hundreds of NoSQL databases exit.

      Coming up with "build in text search" basically nailed it.

      I only want to challenge your mind. It is not necessary to agree with "files right be the right thing in the right context". But riding on SQL only shows: you never really thought about anything different. You are likely one of those guys who logs error messages into the data base, (*facepalm*).

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.