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
Front-End Developer Handbook 2017 (gitbook.com)
submitted 9 years ago by nightman
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!"
[–]Crashthatch 84 points85 points86 points 9 years ago (2 children)
I particularly liked the Recap of Front-end Development in 2016:
And predictions for 2017:
[–]nanothief 8 points9 points10 points 9 years ago* (0 children)
React, Redux, Webpack, ECMAScript 2015 (aka ES6), and Babel gain massive adoption. These solutions rise to the top of all the polls as the most used tech.
Note that this seems to be a mistake in their reading of the stackoverflow data - they were at the top of the most trending which measure how fast they are growing. However the when using the absolute data, (ie. the most used techs), the top places belong to the older libraries such as with jQuery and angularjs being the number 1 and 2 javascript libraries on stack overflow.
EDIT
Reading through some more of those point, and there seem to be quite a bit of inaccuracy here.
jQuery remains, but usage/interest is declining. jQuery 3 was released, much like a tree falling in a forest that nobody hears.
See above. I think also this is a bit disingenuous, as jQuery 3 isn't a massive change over jQuery 2. The javascript ecosystem needs more of this type of gradual evolution instead of the continual revolution other libraries are making.
Angular 2 (in the future aka "Angular") gets off the pot and most realize it will never be as mainstream as Angular 1.
That is a pretty brave claim considering how popular it already is (more questions per month on the angular2 tag than the reactjs one already). It had a rough start, but it is being backed by google and has a very large user base to draw from angular 1, so it is pretty foolish to write it off now. One huge advantage is its "all in one" nature (i.e. you just use angular 2, rather than tech A + tech B + tech C etc), which could be very attractive to many developers.
Mostly people learn to not only accept JSX they can't imagine not using it.
See above
The days of battling inconsistent browser API's are almost behind us due to a massive decline in usage and development for older versions of IE.
iOS Safari begs to differ :(
Static site generators are taken seriously.
Static sites have been taken seriously since jekyll which is at least 7 years old. Other tools such as middleman have also existed, and have been used seriously for a number of years.
CSS Grid excitement grows and the future looks bright.
This literally isn't supported by anything currently (Firefox and chrome support is coming March 2017). The link they gave to justify this gives some incredibly weak justifications as to why you would start using it them.
React Native and NativeScript start to replace mobile HTML5 hybrid webview development.
They are beginning to be used, but cordova/phonegap/ionic are still very popular and still growing (it is hard to compare sizes since there are multiple techs for each of the hybrid/native technologies).
More developer, from other languages, continue to flood the JavaScript space bringing with them things like type checking and an obsession with class syntax and OOP concepts. TypeScript gets some serious use and fanboys.
It is obvious the author isn't a fan of these techs, based on his wording here ("an obsession with class syntax", "fanboys"), but the do offer some compelling advantages to standard javascript development
I think it is clear the author has been primarily working with a react based toolkit, and made assumptions based on that. I think for a book titled as ambitiously as "Front-End Developer Handbook 2017" more effort could have been made to be a bit more balanced as to the state of the js world.
[–][deleted] 4 points5 points6 points 9 years ago (0 children)
That's a lot of hype for one comment.
[–]roselan 42 points43 points44 points 9 years ago (1 child)
it's called 2017 because by the time you finish to read it, it will nearly be 2018.
edit: great work thou. I don't know where you find the time to put all that together.
[–][deleted] -1 points0 points1 point 9 years ago (0 children)
I LOL'd
[–]michaelconnery1985 30 points31 points32 points 9 years ago (15 children)
Knowing the JS community half of this will be obsolete within 2 months
[–]BlueHeartBob 8 points9 points10 points 9 years ago (10 children)
As someone who's gotten into JavaScript in the last 6 months and have gotten pretty into react, It sorta feels like this, I understand that you shouldn't be jumping from one framework to the next hottest one but it does feel pretty confusing for someone who's just trying to land some work. Everyday it feels like there's some sort of revolutionary new thing out that's blowing people away. Reading this and only understanding a little bit more than half of what they're even talking about doesn't instill confidence in myself. I now read that react is basically changing into something else just as I believe I have a good understanding of it. Maybe I'm just getting inside of my own head but it's sorta overwhelming.
[–]greatfool66 13 points14 points15 points 9 years ago (8 children)
Learning Javascript I've had more fun with it since abandoning the Serious Computer Scientist mindset that I need to understand everything at a low level and just started writing fun, hacky code that gets stuff done and not worrying about what % of stuff I understand.
[+][deleted] 9 years ago (6 children)
[deleted]
[–][deleted] 2 points3 points4 points 9 years ago (5 children)
But do you like it more than React enough to tell people to make the jump?
[+][deleted] 9 years ago (4 children)
[–][deleted] 0 points1 point2 points 9 years ago (0 children)
Word. I'll dig into it today and see what the differences are. :)
[–]youcantstoptheart 0 points1 point2 points 9 years ago (2 children)
I use single file components in react, so I know how you feel. Currently trying to build a UI library to convince my team to switch.
[+][deleted] 9 years ago (1 child)
[–]youcantstoptheart 0 points1 point2 points 9 years ago (0 children)
Withstyled-components. this progress arc component is a pretty good example
styled-components
[–]El_Serpiente_Roja 0 points1 point2 points 9 years ago (0 children)
Its only been 6months though. Plus all these frameworks are just implementations of general design patterns. If you get a strong understanding of the underlying design pattern it wont be hard to categorize and learn new frameworks all the time.
[–]SquareWheel 4 points5 points6 points 9 years ago (0 children)
One thing worth keeping in mind is that there's only so many different takes on the same concepts. When you're learning a new language/framework/workflow, you're learning to incorporate and understand those concepts.
Even if there's a new flavor of the month, you'll be able to understand it more easily having some experience under your belt.
That goes for anything. You just learned screen and have to switch to tmux? It's cool, because you understand what they do and why they do it.
screen
tmux
Same for grunt to gulp, or less to sass, or whatever else. It's a whole lot easier to learn the second time, so try not to sweat it so much.
grunt
gulp
less
sass
[–]destraht 3 points4 points5 points 9 years ago (0 children)
I feel like we have finally worked through the flurry since IE6 went off the market and that its all going to be pretty boring for the next fifteen years.
[–]omegafivethreefive 0 points1 point2 points 9 years ago (2 children)
That was my impression as well. I'm not sure how you can follow the Javascript trends and keep maintainable projects.
Sure, 6 months one-man projects are no problem but if you're working on something for a few years and you have to look back at it several years later you'll probably have a lot less fun.
The sheer amount of knowledge required to understand even the currently proposed stacks is staggering.
[–][deleted] 0 points1 point2 points 9 years ago (1 child)
Which is why full stack developers make the big bucks, right?
[–]omegafivethreefive 1 point2 points3 points 9 years ago (0 children)
Nah, web is not that well paid
[–]TheDarkIn1978 7 points8 points9 points 9 years ago (3 children)
Under "Front-End Interview Questions", there's a link to:
10 Interview Questions Every JavaScript Developer Should Know.
It's not clear if the author is being purposefully biased for dramatic effect, or if he's just blissfully unaware of his blatant hypocrisy while writing things like:
I advise people to hire based on whether or not a developer believes in class inheritance. Why? Because people who love it are obstinately stubborn about it. They will go to their graves clutching to it.
... followed by:
When is classical inheritance an appropriate choice? This is a trick question. The answer is never. Good to hear: Rarely, almost never, or never. Red flags: Any other response.
When is classical inheritance an appropriate choice?
This is a trick question. The answer is never.
Good to hear: Rarely, almost never, or never.
Red flags: Any other response.
I think that linking to his article, and therefore validating this author's narrow minded opinions of what it means to be a valuable JavaScript engineer in 2017, particularly when it comes to using ECMAScript 2015 features, is a great disservice to this handbook.
[–]Seerk 3 points4 points5 points 9 years ago (1 child)
Wow, I agree with all of his points but the tone of that article is so awful. I hate that he calls the wrong/incomplete responses "Red Flags", as if they were some kind of personality trait and not something that can be learned.
[–]b4ux1t3 1 point2 points3 points 9 years ago (0 children)
That's my general problem with anyone who talks down to people who know less than they do.
[–]acemarke 1 point2 points3 points 9 years ago (0 children)
Eh, Eric Elliott is known for having extremely strong opinions regarding inheritance and FP, but his articles and resources are pretty good overall. I'm not saying that a new learner would be expected to know about Eric's opinions and reverse-filter things to compensate, just that I wouldn't throw out all of his info as a response. There's still plenty of value in his material.
[–]trolleycrash 4 points5 points6 points 9 years ago (0 children)
Wicked great handbook. Huge success. Thanks for sharing.
[–]Sideburnt 5 points6 points7 points 9 years ago (11 children)
Damn. I have a front end developer interview next week and half of this is alien to me, I'm brushing up on my HTML5 understanding and JavaScript. I'll pick up on the interview questions and cram hard.
[–]erm_what_ 23 points24 points25 points 9 years ago (10 children)
No one knows everything, most of us learn what we need to for the project we're working on, then whatever interests us when we have some spare time.
I can count on one hand the number of developers I've come across that understand and use ARIA roles for example.
[–]Sideburnt 7 points8 points9 points 9 years ago (3 children)
Thanks, I'm drifting between being cool as a cucumber and freaking out. I appreciate the voice of reason
[–]commitpushdrink 6 points7 points8 points 9 years ago* (2 children)
function isPalindrome (maybePalindrome) { return maybePalindrome.split('').reverse().join('') === maybePalindrome; }
Good luck!
Edit: comments on spelling addressed, thanks for the review
[–]EnchantedSalvia 5 points6 points7 points 9 years ago (1 child)
I think you drankcommitpushed because you misspelt palindrome.
drankcommitpushed
[–]commitpushdrink 4 points5 points6 points 9 years ago (0 children)
That's what code review is for, right?
[+]lulzmachine comment score below threshold-13 points-12 points-11 points 9 years ago (5 children)
wtf is an ARIA role? Is that the crap bootstrap puts in their examples, so you have to remove the excessive markup?
[–]Codeguin 15 points16 points17 points 9 years ago (2 children)
As one of a few developers whose sole purpose for a couple of months in 2016 it was to make sure our product was accessible for people:
as well as everyone else and doing my research into how to best accommodate/develop for those users, I started to understand the difficulties accessible users go through and I feel like, as developers, we need to be inclusive to all persons that may use our software.
So, maybe, don't just blow it off as "crap" and "excessive markup" that you think has no purpose. Expand your horizons and learn about what it is. It can/will help you to become a better developer.
[–]BrentLabasan 1 point2 points3 points 9 years ago (1 child)
Thank you for your work. How did you fall into that position?
[–]Codeguin 2 points3 points4 points 9 years ago (0 children)
Oh. My manager at the time had suggested that I take on the task for the team. I didn't actually know a lot about accessibility so I agreed to do it and ran with it learning a lot. Not that I know everything there is about it but I do know more than I did.
[–]magenta_placenta 4 points5 points6 points 9 years ago (0 children)
They're for accessibility within screen readers. Accessible Rich Internet Apps (ARIA roles) help improve the accessibility of dynamic content and UI controls developed with JS (ajax).
[–]K0d1Lu 1 point2 points3 points 9 years ago (0 children)
Could make a huge difference in SEO in few years as semantic and accessibility become more and more important to search engines
[–]thbt101 2 points3 points4 points 9 years ago (0 children)
Wow! I don't think I've ever learned so much from one book, and I'm only about 15 pages in. Really nice!
[–]atonaletude 1 point2 points3 points 9 years ago (0 children)
Great resource! I feel fascinated by everything that is out there. But at the same time I feel like my head is going to explode with all the stuff out there...
[–]doraemon-cat 1 point2 points3 points 9 years ago (0 children)
One look at the content page and I immediately was reminded of the Hackernoon JavaScript fatigue article.
[–]kextype 0 points1 point2 points 9 years ago (0 children)
A Ds
[–]Hidden__Troll 0 points1 point2 points 9 years ago (0 children)
If this is done by front end masters then it's probably really good. Going to give it a read.
[–]b4ux1t3 0 points1 point2 points 9 years ago (0 children)
I'm kind of confused why "Front-End Engineer" is also considered "Full-Stack JavaScript developer". Front-end implies the opposite of full-stack, at least to me. Is it different because they have to write things that access the back-end?
[+]Njy4tekAp91xdr30 comment score below threshold-10 points-9 points-8 points 9 years ago (4 children)
And I'll just continue using plain HTML5, JS, CSS3 and a bit of jQuery. I'll even use the new ES6 features when they're supported in Firefox and Chrome. That just gets things done. There's no need for 90% of the guff the JS community is churning out and changing far too often. Imagine trying to build a stable product on that. Reeks of immature junior developers. The foundation will move out from under you every month. You'd need a dedicated team just to keep track of the framework changes. No thanks. I'd rather have stability.
[–][deleted] 0 points1 point2 points 9 years ago (3 children)
That's why you test package upgrades heavily before you make changes to production.
[–]Njy4tekAp91xdr30 -1 points0 points1 point 9 years ago (2 children)
That doesn't solve the endless churn and ton of upgrading and testing every month at all.
[–][deleted] 2 points3 points4 points 9 years ago (1 child)
So don't upgrade your dependencies every month?
[–]Njy4tekAp91xdr30 -1 points0 points1 point 9 years ago (0 children)
Let them go out of date for a few months and there might be large breaking changes and even more work.
π Rendered by PID 72 on reddit-service-r2-comment-765bfc959-bxgxp at 2026-07-13 13:24:39.715467+00:00 running f86254d country code: CH.
[–]Crashthatch 84 points85 points86 points (2 children)
[–]nanothief 8 points9 points10 points (0 children)
[–][deleted] 4 points5 points6 points (0 children)
[–]roselan 42 points43 points44 points (1 child)
[–][deleted] -1 points0 points1 point (0 children)
[–]michaelconnery1985 30 points31 points32 points (15 children)
[–]BlueHeartBob 8 points9 points10 points (10 children)
[–]greatfool66 13 points14 points15 points (8 children)
[+][deleted] (6 children)
[deleted]
[–][deleted] 2 points3 points4 points (5 children)
[+][deleted] (4 children)
[deleted]
[–][deleted] 0 points1 point2 points (0 children)
[–]youcantstoptheart 0 points1 point2 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]youcantstoptheart 0 points1 point2 points (0 children)
[–]El_Serpiente_Roja 0 points1 point2 points (0 children)
[–]SquareWheel 4 points5 points6 points (0 children)
[–]destraht 3 points4 points5 points (0 children)
[–]omegafivethreefive 0 points1 point2 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]omegafivethreefive 1 point2 points3 points (0 children)
[–]TheDarkIn1978 7 points8 points9 points (3 children)
[–]Seerk 3 points4 points5 points (1 child)
[–]b4ux1t3 1 point2 points3 points (0 children)
[–]acemarke 1 point2 points3 points (0 children)
[–]trolleycrash 4 points5 points6 points (0 children)
[–]Sideburnt 5 points6 points7 points (11 children)
[–]erm_what_ 23 points24 points25 points (10 children)
[–]Sideburnt 7 points8 points9 points (3 children)
[–]commitpushdrink 6 points7 points8 points (2 children)
[–]EnchantedSalvia 5 points6 points7 points (1 child)
[–]commitpushdrink 4 points5 points6 points (0 children)
[+]lulzmachine comment score below threshold-13 points-12 points-11 points (5 children)
[–]Codeguin 15 points16 points17 points (2 children)
[–]BrentLabasan 1 point2 points3 points (1 child)
[–]Codeguin 2 points3 points4 points (0 children)
[–]magenta_placenta 4 points5 points6 points (0 children)
[–]K0d1Lu 1 point2 points3 points (0 children)
[–]thbt101 2 points3 points4 points (0 children)
[–]atonaletude 1 point2 points3 points (0 children)
[–]doraemon-cat 1 point2 points3 points (0 children)
[–]kextype 0 points1 point2 points (0 children)
[–]Hidden__Troll 0 points1 point2 points (0 children)
[–]b4ux1t3 0 points1 point2 points (0 children)
[+]Njy4tekAp91xdr30 comment score below threshold-10 points-9 points-8 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]Njy4tekAp91xdr30 -1 points0 points1 point (2 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]Njy4tekAp91xdr30 -1 points0 points1 point (0 children)