4 ms·
JavaScript is great. I do enjoy all the posts about how it sucks. First it was a toy language. Now people complain that it's a weakly typed language replacin
by wavefunction 11y ago
JavaScript is great. I do enjoy all the posts about how it sucks. First it was a toy language. Now people complain that it's a weakly typed language replacing strongly-typed languages they prefer... I'm interested to see the next iteration of this phenomenon.
Meanwhile I just enjoy developing in it every day. Other than having to maintain the odd ExtJS app, it's simply the best. cue triumphant sax
- monk_e_boy 11y agoThe first 30 lines of this file are a 'joy' https://github.com/js-cookie/js-cookie/blob/master/src/js.cookie.js https://github.com/js-cookie/js-cookie/blob/master/src/js.co... I'm sure js could be nice, but it never seems to be.
- tracker1 11y agoThe syntax could be a lot cleaner... the Universal Module Definition (UMD) pattern at the top makes it a bit quirky... A lot of people have moved towards using CommonJS (cjs/node-style) exports with tooling such as browserift/webpack and/or babel (for es6 modules) in order to clean up the source syntax. What you're looking at is a relatively poor example. In es6, that could be ... exports default function... without all the cruft around it, also the module itself could be cleaner. Similar to: var cookies = parse(); export function set({key, value, days=null}) { ... } export function get(key) { ... } export const remove = (key) => set({key, value:null}); export function parse(values = document && document.cookie || '') { ... }
- monk_e_boy 11y agoClasses and modules in almost any other modern language are much easier to read and write. Ruby, python, heck even php are better than JS. That's my real issue with JS. If we had a browser that had lots of languages baked into it, none of use would choose to use JS ;) node.js would never have been invented...
- _pmf_ 11y ago> Now people complain that it's a weakly typed language replacing strongly-typed languages they prefer... The first step would be to understand the difference between weak/strong and dynamic/static typing.
- krisdol 11y agoCan we just use the term "duck-typed" already? There's a significant difference between weakly-typed C, strongly-typed rust, and "strongly"-typed JavaScript/Ruby. Besides, weak-typing is relative. Javascript does some type conversion, but because it does less than C, it is more strongly typed than C, but it is more weakly typed than some other languages.
- jerf 11y agoNo, duck typing is not a very good distinguishing characteristic anymore. "Interfaces", "traits", and "concepts", to say nothing of other things, all in various ways make static languages have something that looks something like statically-checked duck typing. Duck typing isn't unique to dynamic languages.
- nanny 11y ago>Now people complain that it's a weakly typed language replacing strongly-typed languages they prefer Firstly, that's a strawman. I prefer strongly-typed dynamic languages and I still think JavaScript sucks. Secondly, I think you're confusing strong vs. weak with dynamic vs. static. JavaScript's weak typing is unequivocally one of the worst things about the language.
- adrusi 11y agoI'm not Javascript's biggest fan, but the weak typing argument is a little... weak. You never run into problems with weak typing as long as you follow a few rules like using === over ==. Javascript is poorly designed because there are these rules you need to learn and because there are some language features that you just don't use. Some other reasons too, but the way people write it, Javascript may as well be strongly typed.
- nanny 11y ago>the weak typing argument is a little... weak. I think you contradict this in the rest of your comment: >Javascript is poorly designed because there are these rules you need to learn and because there are some language features that you just don't use. One rule you've mentioned: >using === over == Which is a result of weak typing. So maybe weak typing is a language feature "that you just don't use"? Which, according to you, makes weak typing a reason why JavaScript is poorly designed.
- adrusi 11y agoIt was not my intention to imply that javascript is not weakly typed. And I think we have collectively determined (correctly) that weak typing is a burden in a general-purpose language. So yes, your conclusion is correct, weak typing is "a reason" that javascript is poorly designed. But your claim wasn't "weak typing was a bad design decision", it was "JavaScript's weak typing is unequivocally one of the worst things about the language". I think it's silly to call a mis-feature "unequivocally one of the worst things" when people who write javascript basically never run into, and when it can be completely avoided by using unintrusive tooling like a linter.
- Kurtz79 11y agoThe "problem" I have with Javascript is when people try to use it for everything. https://en.wikipedia.org/wiki/Law_of_the_instrument https://en.wikipedia.org/wiki/Law_of_the_instrument
- diek 11y agoJust out of curiosity, what other languages do you have experience with?
- moosterv 11y agoI started off developing in C, then C++. Then I did Java (late 90's till 2010 or so). I toyed around with PHP and perl somewhere in between. I love modern Javascript, and would be hard pressed to go back to something else.
- wavefunction 11y agoC++, Java, Groovy, C#, Perl, Python, PHP, Ruby, Smalltalk, Objective-C, *86 Assembly, and played around with Go, Swift, Lisp and Haskell oh, and Visual Basic!!! I didn't say JavaScript is all anyone needs for every situation, just that it's great imo.