My wife is from Las Vegas. At New Years Eve just a week ago, Las Vegas swarmed with over 300,000 guests. Some of those guests left a lot richer than when they were when they arrived in Vegas, no doubt having won a sheer stroke of luck (or maybe skill, they claim). Others, not so much.
Learning new technologies can sometimes feel akin to gambling — especially if you feel that your time has value to it. You can sink hours of ever-so-precious personal time into learning some new framework, language, or programming paradigm only to watch it fall into obscurity 3 months later. On the flipside, there's tremendous gains to be won if you choose wisely and become an early adopter of "the next big thing".
Throughout the last year I did some gambling on which technologies I'd learn on my free time — I won a few, and had quite a few that didn't pay off as well as I'd hoped.
Anyways, here's some things I'm placing bets on & watching/diving into in 2018.
This is a safe bet...it's also hard to ignore that React is currently the 200-ton juggernaut in the front-end space, and it doesn't look like anything is going to usurp its position soon. I'm using React every day at work, and it's not too much extra effort to stay up to date on modern component architectures, API changes, best practices, etc. happening in the React space. In addition, the team behind React is doing an amazing job at staying at the cutting edge of modern web development.
In mid-November of 2017 Mozilla announced that support for WebAssembly ships by default in all major modern browsers (sorry, IE11 users, but you're not a "major browser" anymore). With growing support of this new web standard I think web development will start to see new paradigms and best practices pop up as many traditionally server-side & embedded systems programming languages suddenly become available on the web.
Web Components & Custom Elements
Web Components/Custom Elements allow for a ton of awesome things in front-end development. An obvious plus from using them is simple framework-agnostic sharing of styles & UI components. This means that developers using these components (whether it's you using your own, open source users, or other developers within your organization) don't have to bother about which framework/library/rendering engine you used to write components, they can simply use them the same way they use a
<button> or an
input tag. Furthermore, it will be interesting to see what front-end architectures arise as companies use custom elements more and more — some people are already advocating for a "microservices for the front-end" approach towards building UIs.
CSS Custom Properties (CSS Variables) are currently supported in the four major modern browsers. They essentially allow you to store values in a variable that is evaluated by the CSS parser at runtime. This is far more flexible & leads to more interesting usages than preprocessor variables that get evaluated in a compile step (especially when paired with a framework like React). I think that much like we saw tons of best practices & tutorials emerging for CSS Grid in the latter half of 2017, we're gonna see tons of developers discovering & sharing best practices around CSS Custom properties in 2018.
GraphQL got reeeallly big in 2017. Right now, the list of companies using this technology is a who's who of the tech scene: Facebook, GitHub, Pinterest, Intuit, etc. Basically, GraphQL operates as a "query language for your API", allowing the user of the API to retrieve only the data they've explicitly requested. However, I'm seeing a trend of beginning to use GraphQL for querying things other than API endpoints — Gatsby's currently using it to query all data & generate static sites, and I recently saw another project working to use GraphQL as a frontend state management tool. It's no doubt that as it becomes more familiar and we see more success stories from larger companies that it will only increase in adoption.
Let's set one thing straight here, though. It's 100% possible that I'm wrong about any of these predictions. After all, choosing technologies is gambling, and when you gamble sometimes you lose. However, these are all technologies that I've seen gaining traction in 2017 and I think they all show promise. It's also important to remember that this list isn't inclusive of everything that's interesting to me, but rather kinda a "top picks" specifically for the front-end web development space at this given point in time.