4 ms·
Yes, it's such a great language that `{} + []` is a valid program.
by YorickPeterse 7y ago
Yes, it's such a great language that `{} + []` is a valid program.
- s_y_n_t_a_x 7y agoWhat an extremely weak criticism that has been played out. 1) Don't concatenate them in the first place 2) Use TypeScript Pro-tip, if the world is going JS and you don't get it, it's probably you. With JS (TypeScript) I can develop on every platform natively (React Native). I can compile to native code. (AssemblyScript). I'm not saying you can't do those things on other languages, but JS is becoming a powerhouse thanks to it's ecosystem. Also, you see many other communities like Rust copying lessons learned from web developers (React/Redux/etc)
- caiocaiocaio 7y agoJavascript is such a good language that, even after two decades of fixes, it's only good when you use a different language - specifically created to address JS's many problems - that compiles to it.
- s_y_n_t_a_x 7y agoTypeScript is JavaScript. They follow and contribute to the Ecmascript spec. It pretty much just strips the typing out when "compiling". All the JS problems have been solved in ES6+ There are many languages that have supersets.
- ptx 7y ago> develop on every platform natively (React Native) If "native" means bundling a runtime and having your program pass serialized messages to a different thread where the actual native platform code lives, the same can be said for any language. You just need to build the wrappers for the native API – which is a lot of work but could be done for QBASIC running in DOSBox just as well as for JS running on V8.
- s_y_n_t_a_x 7y agoYes, but it hasn't been done for any other language.
- nobleach 7y agoDo you find yourself accidentally doing that often? A few of the things from the "Wat" video fall into that category. "Things no one would have ever thought to try, yet a dynamic language will fully allow". If you want to point out valid concerns with JS, the double-equal implicit coercion is a far more frightening "gotcha".
- b0rsuk 7y agoFew people do that outside of code obfuscation contests, but the point is JS has heaps of gotchas like that, each waiting to bite you. How about: x = 5; (no var declaration). Extremely easy to do by accident. Lots of these will be left for backwards compatibility. In JS errors often go silent and I developed a strong dislike for any language that does that, including Vimscript and Lua (and I do like Vim).
- jimws 7y agoProblems like this can be easily caught by linters like eslint or standardjs.
- nobleach 7y agoI'd agree that global declaration is far more egregious. A sibling comment recommends a linter, and I'd probably agree. It's sad that it was ever allowed as one that is copying and pasting code to another location can easily cause this case to happen.
- s_y_n_t_a_x 7y agoNo JS developer would do that. We all know that is global. Nowadays you use `const` or `let`. Any JS developer will have a linter that will tell them incase they somehow made that mistake.
- tombert 7y agoEh, I actually like JS but I have definitely forgotten to add a "var" or "let" a few times, or sometimes I will do it correctly, get a bit overzealous with cutting, and accidentally remove the initial var declaration. I'm not saying that it breaks the language, but it definitely is irritating, especially if you're not using a linter.
- mpfundstein 7y agoEvery read about the crazy things you can do with C?
- ngcc_hk 7y agoBut at least you know ... it is not dangerous if you know you are in danger kind.