Live data from Hacker News

How it feels to learn JavaScript in 2017

medium.com

151–160 of 167 posts

Re: How it feels to learn JavaScript in 2017

#151

Earlier quoted context omitted.

Well, OK, but by that argument almost anything is just an upgrade issue, so I'm not sure that really gets us anywhere. In particular, it doesn't solve the practical problem that even with all the recent developments in the JS ecosystem, as things stand today a lot of front-end web developers don't have access to language features and programming techniques that are widely available in other environments. Unfortunatel…

> Well, OK, but by that argument almost anything is just an upgrade issue, so I'm not sure that really gets us anywhere. That makes no sense. My argument is very narrow, clearly applies here, and I don't see how it applies to "almost anything". > In particular, it doesn't solve the practical problem that even with all the recent developments in the JS ecosystem, as things stand today a lot of front-end web developers…

Maybe we're talking at cross-purposes, but you seem to be saying that

(a) it doesn't matter that there was no support for a feature planned for IE, because it is planned for Edge

and

(b) IE and Edge are essentially the same browser, and one is just the upgrade for the other.

I contend that this is what Microsoft's marketing department would like everyone to think, but the reality in larger organisations (and for those developing web sites and apps aimed at those organisations) is that they are two completely different browsers. In many cases, the only way you can "upgrade" from one to the other would be literally upgrading the entire organisation's standard desktop environment, including the OS.

If you're going to contend that a missing feature in one product is only an upgrade issue because you can change the entire OS and then install a completely different product to do the same job and then get that feature then I don't know what wouldn't be "just" an upgrade issue.

Re: How it feels to learn JavaScript in 2017

#152

Earlier quoted context omitted.

>It's really trendy to complain about JavaScript changing too fast right now but the last few years have brought some great changes to JavaScript. I'd say they've made JS development bearable , but great is really stretching it. We still don't have a type system, static analysis, multi-threading, first-class IDE support, or any of a myriad of other features that are standard in any modern programming language in 2017…

Do you actually code in JavaScript? TypeScript addresses many of these issues and even statically checks for null variable usage which puts it ahead of some mainstream type systems in my opinion. I don't hear people making fun of Python for example and that has a huge following.

Another vote for typescript.

ATM Angular 4 w/Typescript in VS Code is in my top 5 favourite language/dev environment combinations.

It has working code completion and is fast. It lacks refactoring and doesn't help me with debugging though.

(Java with any of the three big IDEs occupies three spots but I haven't made up my mind about exact order except first place. Also these are my favourites - they are not necessarily everyone elses favourites.)

Re: How it feels to learn JavaScript in 2017

#153
post #52

Earlier quoted context omitted.

A language without a proper stdlib and with programmers who have no idea what the O notation is about has no place in any serious programmer's "to learn" list.

Aka "javascript is not a real language", I thought we were done with that since almost a decade :) Maybe you should consider that just because a language doesn't work like what you're used to, it doesn't mean it's a bad language. Because saying nowadays that javascript is not worth learning sounds pretty absurd. Sure, you can live without it. But that's probably the most useful language to know as a "second language"…

This is like saying "just because you are used to having a proper toilet, it doesn't mean you should have one and you should consider living without it"

Re: How it feels to learn JavaScript in 2017

#154
post #91

Earlier quoted context omitted.

>It's really trendy to complain about JavaScript changing too fast right now but the last few years have brought some great changes to JavaScript. I'd say they've made JS development bearable , but great is really stretching it. We still don't have a type system, static analysis, multi-threading, first-class IDE support, or any of a myriad of other features that are standard in any modern programming language in 2017…

> We still don't have a type system, static analysis, multi-threading, first-class IDE support Let me try to address these. Regarding type system, lot of great languages don't have type systems either. But if there's lot of discussion on type systems, it would be because of Flow vs TypeScript. As for static analysis, JS has seen evolution of JSHint, JSLint, JSCS, ESLint, and finally, Prettier. Flow is capable of perf…

> JS ecosystem has great code editors.

I'm with you on most of your points, but IDE support is still quite crude compared to (say) Java or Kotlin. Once you're fluent with these in a Jetbrains IDE it feels like you're directly manipulating an AST (or something near it) rather than 'editing text'. Javascript (even with Typescript in IDEA/Webstorm) isn't close to this yet.

Re: How it feels to learn JavaScript in 2017

#156

Earlier quoted context omitted.

>Why? Probably because it's one line in Vanilla.js: confirm("Message")

The vanilla solution doesn't offer as many features: * With the vanilla solution, the user can check a box that says 'Prevent this page from creating additional dialogs' (which can break the site). With a non-vanilla solution, the user cannot check that box * The vanilla solution can't be themed in tune with the rest of the site or webapp * The only options you have are 'OK' and 'Cancel' - you may wish to have other…

Of course there isn't perfect feature parity, but considering how much more complex a custom solution is, you should definitely think twice about what that complexity actually gets you

Re: How it feels to learn JavaScript in 2017

#157

Earlier quoted context omitted.

Or, perhaps instead of a library, use the built in browser confirmation dialog?

That's not an option for anything but maybe enterprise apps because the dialog styling is just too ugly usually.

This is completely subjective.

Re: How it feels to learn JavaScript in 2017

#158
post #117

Earlier quoted context omitted.

I mean, I do occasionally, but I think one big difference is that nobody is forced to use python. If they want a feature a normal language doesn't have, they can easily choose another. That's simply not true for JS.

> I mean, I do occasionally, but I think one big difference is that nobody is forced to use python. If they want a feature a normal language doesn't have, they can easily choose another. Most domains heavily constrain your language choice though...C/C++ for games, Java/Kotlin for native Android, Swift for native iOS, PHP/Node/Python/Java/Ruby for server-side. The libraries you need constrain the choice even more. I'd…

You can use practically any language for games or web servers; they are certainly not constrained to the ones you listed. Game engines are usually written in C++ but the logic usually isn't. Even more importantly, the reason they're written in C++ is because it's usually the best tool for the job, NOT because nothing else is available. Nothing prevents you from writing a game engine in Rust or JavaScript or assembly language or whatever you want. And on servers, anything really does go.

Re: How it feels to learn JavaScript in 2017

#159
post #133
post #47

Having used only re-frame and Clojurescript for two years now every time I look at where the Javascript guys are I roll my head. Is nobody even slightly wondering how OOP has infiltrated modern JS development? Old school Java web development has fully seeped into Javascript with JSX replacing JSP, OOP everywhere.. It looks exactly like the bells and whistles of early 2000 web development.

That OOP is only skin deep. Look at the way data flows, which pieces of code need to understand any given data structure. Look at the preferred way of extending classes - composition. I think what we have now is not old-school anything, but cherry-picked good parts together forming a New Thing.

Thank you for the clarification and insight!
Post reply on HN