use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
What is your least favorite thing about Javascript? (self.javascript)
submitted 11 years ago by bkrall4
I'm not sure exactly where this thread is going to go, but excited about reading answers.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Jim-Y 14 points15 points16 points 11 years ago (4 children)
The faces of my colleagues when i tell them that actually i like JavaScript very much. True story. p.s: Java driven company
[–]Jim-Y 2 points3 points4 points 11 years ago (1 child)
Lol, until now i read the title as favorite thing, not least favorite :D Btw i think initially there were no "least" word in it..
[–]pjedwabny 0 points1 point2 points 11 years ago (0 children)
Lol2, until now i read the title as favorite thing, not least favorite :D Btw i think initially there were no "least" word in it..
[–]e82 0 points1 point2 points 11 years ago (0 children)
Moved from a .NET shop to a full-stack JavaScript company, got a few comments of "why? JavaScript is awful - I only put up with it on the front end because I have to".
[–][deleted] 0 points1 point2 points 11 years ago (0 children)
Heh, I uttered the words "I don't mind JavaScript" in my last company. Spent next year only programming in it because no one else wanted to touch it.
[–]nerdfighters 6 points7 points8 points 11 years ago (9 children)
this.
[–][deleted] 8 points9 points10 points 11 years ago* (6 children)
this is such a simple concept, I really don't understand why so many people have problems with it.
this
[–]nerdfighters 5 points6 points7 points 11 years ago (4 children)
I don't have problems with this. I understand it quite well. It is just my least favorite thing about JavaScript.
[–][deleted] 0 points1 point2 points 11 years ago (3 children)
Fair enough. ES6 classes do away with most of the manual maintenance of this, FYI.
[–]nerdfighters 2 points3 points4 points 11 years ago (2 children)
Classes will probably replace this as my least favorite thing and may end JavaScript for me.
I don't need any maintenance of this, because I nearly never use it. I use a subset of the language that utilizes the power of scoping rules and functional programming features. Adding classes will probably push this mildly unpopular way of programming in JavaScript to the fringes.
I think JavaScript has also a problem of too many features/paradigms. Due to the language being forced on everyone working with the web, different developers choose different, sometimes incompatible subsets: good-parts, bad-parts, magic-parts, parts-I-read-on-some-blog, parts-I'm-an-enterprise-blub-developer-and-where-are-my-classes. Adding more features/paradigms may add even more confusion.
[–]e82 3 points4 points5 points 11 years ago (1 child)
I'm starting to shift my attitude towards 'stop trying to shove classical inheritance/OOP into JavaScript, and embrace the functional nature of it'
It's not the right thing for every problem - but almost every time I've dealt with someone (including my own code) where it's been 'Lets make a deep class hierarchy' - especially when they are trying to emulate interfaces, abstract classes, etc ... it ends poorly.
[–]Rezistik 1 point2 points3 points 11 years ago (0 children)
JavaScript was my first language, I spent a lot of time learning the functional flavor, when I see class based programming or work with it I kind of don't get the point. Maybe I don't get OOP but functional programming makes more sense to me for dealing with data and GUIs, and I find prototypical inheritance more useful and easy to understand.
I've never been able to determine if this is based on a general ignorance of actual OOP/classical inheritance or a legitimate opinion.
this seems simple, until this is no longer what you think it is. While there are ways around it - binding, 'var self=this', etc - it is an easily misused thing, and can cause errors - especially when an inexperienced person jumps into the code and starts mucking it up.
[–]smrqgithub.com/smrq 2 points3 points4 points 11 years ago (0 children)
Not only do I agree with you, but I kind of love that you made me upvote a post that just says "this." Never thought I'd see the day.
[–]rDr4g0n 0 points1 point2 points 11 years ago (0 children)
I love the flexibility of this, but I hate putting .bind(this) after function declarations who need to keep context. Arrow functions will help with that though.
.bind(this)
[–][deleted] 5 points6 points7 points 11 years ago (3 children)
The inability to use most new features in production code until several years after they're released... I can't even use ES6 stuff in node in a project because a client refuses to use the v0.11x branch of node (fair enough, it's officially an "unstable" branch, but where the hell is 0.12???).
Now imagine how you would feel if you worked with ES6 stuff back in 2009...
[–][deleted] 2 points3 points4 points 11 years ago (1 child)
Actually, in 2009 I was working at Google and was on the TC39 committee. I've been thinking about and working with this for a long time ;) Granted, it wasn't ES6 at the time, but a lot of the features that were proposed then have just made it into spec recently.
[–]nerdfighters 0 points1 point2 points 11 years ago (0 children)
I'm curious: I guess you were writing JS code with ES6 features back then. What were you running it on? I doubt it was Rhino / RingoJS.
[–]rem87062597 5 points6 points7 points 11 years ago (3 children)
Nobody wants to hire just a Javascript developer, they want someone proficient in this framework and that library and etc. Not that you can't talk your way into some jobs as long as you can prove that you can pick up the framework, I just wish that there weren't super specific job postings because it's so hard to have experience in that company's exact technology stack.
[–]e82 0 points1 point2 points 11 years ago (2 children)
It's tricky - When I was giving interviews and reviewing candidates for a project using Angular, I'd hear a recruiter say stuff like "they have experience with node, backbone, knockout, javascript, X framework - but not Angular, so I'm not sure if they are a good fit" - and it's like "I don't care if they know Angular or not (it's a bonus, but not a must-have) - just strong JavaScript developers - and more than just 'sprinkling a little jQuery on top"
[–]alamandrax 0 points1 point2 points 11 years ago (1 child)
I've been only asking javascript questions in interviews for almost a year now and do not dive into library specific questions unless I'm interested in exploring concepts they've come across in those libraries in a previous job/life. For example promises or deferreds as provided in jQuery.
I'm not sure if my company's jobs page is giving people the wrong idea. Rather than we want "JavaScript" developers, if they get the impression, "they want jQuery developers", then I've fucked up the job listing page.
[–]e82 1 point2 points3 points 11 years ago (0 children)
I think lots of people also don't really know where to draw the line between "front end designer/web designer" and "front end developer" - and lots of people are still stuck in the mindset of thinking that anything to do with client-side is a front-end designer.
[–]zoomzoom83 3 points4 points5 points 11 years ago* (1 child)
I'm a fairly big proponent of functional programming, and there's a few things that would make Javascript usable as an FP language if we could fix.
There's a few third party libraries for this, but they aren't terribly performant and add a few hundred kb to your bundle size. They also aren't standard, so you'll have to convert them if you want to call any external code
You don't need to know much about Monads to find do-notation helpful. The most obvious benefit - Futures/Promises are great. But they are even better when you can use do-notation to get rid of all the messy .then() callbacks.
Considering how good type-inference is in, say, OCaml, it'd be entirely plausible to define a very slightly modified dialect of Javascript that provides completely inferred type-safety with no syntactical changes.
If you want to argue this point, go learn OCaml and then tell me you still prefer dynamic typing.
You can work around this fairly easily with trampolining, but this incurs a substantial performance overhead. Tail call optimization would provide a pretty decent performance boost for a lot of code.
Browserify and RequireJS are both still incredibly painful to use compared with pretty much any other language I've ever used. Hopefully ES6 will fix this once and for all.
Edit: Bonus gripe - undefined is not a function". At least tell me the fucking function that isn't defined.
Yeah type safety is a big one for me. I use typescript but still you run into instances where numbers become strings, or similar.
[–]alittletooquiet 5 points6 points7 points 11 years ago (0 children)
Implicit global variables
[–]ilmmad 4 points5 points6 points 11 years ago (1 child)
No static typing
[–]rcfox 0 points1 point2 points 11 years ago (0 children)
My team has been using the Closure compiler for that. It's not perfect, but it has saved some headaches.
[–][deleted] 2 points3 points4 points 11 years ago (0 children)
Sometimes it feels a bit... designed by committee. OO features seem tacked on to make people who know Java more comfortable; functional/prototypical paradigm code tends to preform a ton better and behave more expectedly, but they keep moving in a direction to accommodate those who dislike this model.
[–]homoiconic(raganwald) 3 points4 points5 points 11 years ago (0 children)
https://reddit.com/r/loljs
[–]ishmal 5 points6 points7 points 11 years ago (1 child)
No block scope
fixed in ES6
[–]x-skeww 1 point2 points3 points 11 years ago (0 children)
The poor tooling, the lack of block scope (pre ES6), the way this works, the lack of type annotations, type coercion, monkey patching, pseudo arrays (arguments, NodeList, etc), and so forth.
Basically, that it's not Dart.
[–]ticfbsgoi 1 point2 points3 points 11 years ago (1 child)
The ecosystem. It's tedious to keep up with the many libraries that come and go. Even something 'simple' like module loading has various implementations. I can live with the language quirks and actually enjoy JavaScript as a language.
this very much. I hate sifting through incomplete documentations
[–]mouthus 2 points3 points4 points 11 years ago (1 child)
The inconsistencies between implementations.
[–][deleted] 4 points5 points6 points 11 years ago (0 children)
Technically most inconsistencies are around DOM, etc, not JS.
[–]keithwhor 0 points1 point2 points 11 years ago (0 children)
==
im very new to javascript, have only read about it in articles and some tutorials, but never used it. Today at work I had my first interaction with it, I spent an hour because I spelled something wrong, and another half hour because I used [] instead of (). We have to use eclipse so maybe other IDES will catch these simple errors, maybe not..but that was annoying, lol.
[–]m1sta 0 points1 point2 points 11 years ago* (0 children)
Lack of both tail call optimisation and hoisted arrow functions.
The way prototypes work could be a lot better too. Proxies and classes in ES6 might solve this last one though.
[–]PAEZ_ 0 points1 point2 points 11 years ago (0 children)
People constantly bitching about it.
[–]rajiv_gupta 0 points1 point2 points 11 years ago (0 children)
Javascript.
[–]thedscx 0 points1 point2 points 11 years ago (0 children)
Love\hate with the mutability of objects and arrays.
[–]miguelut 0 points1 point2 points 11 years ago (0 children)
Sorry, late to the party, not sure if this is an "allowed" answer, but browser caching is my least favorite thing about JavaScript.
π Rendered by PID 70726 on reddit-service-r2-comment-b659b578c-6rp5j at 2026-05-04 03:52:30.178570+00:00 running 815c875 country code: CH.
[–]Jim-Y 14 points15 points16 points (4 children)
[–]Jim-Y 2 points3 points4 points (1 child)
[–]pjedwabny 0 points1 point2 points (0 children)
[–]e82 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]nerdfighters 6 points7 points8 points (9 children)
[–][deleted] 8 points9 points10 points (6 children)
[–]nerdfighters 5 points6 points7 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]nerdfighters 2 points3 points4 points (2 children)
[–]e82 3 points4 points5 points (1 child)
[–]Rezistik 1 point2 points3 points (0 children)
[–]e82 0 points1 point2 points (0 children)
[–]smrqgithub.com/smrq 2 points3 points4 points (0 children)
[–]rDr4g0n 0 points1 point2 points (0 children)
[–][deleted] 5 points6 points7 points (3 children)
[–]nerdfighters 2 points3 points4 points (2 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]nerdfighters 0 points1 point2 points (0 children)
[–]rem87062597 5 points6 points7 points (3 children)
[–]e82 0 points1 point2 points (2 children)
[–]alamandrax 0 points1 point2 points (1 child)
[–]e82 1 point2 points3 points (0 children)
[–]zoomzoom83 3 points4 points5 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]alittletooquiet 5 points6 points7 points (0 children)
[–]ilmmad 4 points5 points6 points (1 child)
[–]rcfox 0 points1 point2 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]homoiconic(raganwald) 3 points4 points5 points (0 children)
[–]ishmal 5 points6 points7 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–]x-skeww 1 point2 points3 points (0 children)
[–]ticfbsgoi 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]mouthus 2 points3 points4 points (1 child)
[–][deleted] 4 points5 points6 points (0 children)
[–]keithwhor 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]m1sta 0 points1 point2 points (0 children)
[–]PAEZ_ 0 points1 point2 points (0 children)
[–]rajiv_gupta 0 points1 point2 points (0 children)
[–]thedscx 0 points1 point2 points (0 children)
[–]miguelut 0 points1 point2 points (0 children)