My Talk At Devsum 2016 And Some Interesting JavaScript Links
Hi! Last week was intense!! I came back from spending a greeeeat long week in New York, powered through jet lag and a nasty cold and did my talk at Devsum 2016 about the mysterious, arcane and obscure art of JavaScript-mancy!
It was a ton of fun as usual. The conference was awesome, the organizers did a great job, everything ran super smoothly, the speakers were very kind and great to hang out with, the attendees were engaged and great to have a random conversation with here and there, and the people at Active Solution were a blast to be around. So thank you everyone for making it happen!
I think my talk went pretty well although perhaps there was a little bit too much information and speed towards the end. You’ll be able to be the judge of that because there’s going to be a recording coming out in the near future (which I am looking forward to watching myself by the way hehe).
Anyhow, here are my slides and a bunch of useful links that serve as a superb companion for the presentation.
And the links in a similar order to the slides:
Part I. JavaScript Arcana (weird parts of JavaScript that are unexpected and very different to C#)
- Up until very recently (ES6) JavaScript variables have had function scope. This does not only affect how we declare and use variables but with the lack of modules elevate the role of functions to that of a basic building block for JavaScript applications. Not only a way to encapsulate a small piece of functionality but as a fundamental way to structure JavaScript programs.
- Interested about which features are coming to JavaScript? Is async/await coming soon? Decorators? Cancellable Promises? Observables? Then take a look at the ECMAScript TC39 repository at GitHub which contains information about all proposals and their current status.
- Would you like to know which features of JavaScript are supported in the different browsers and runtimes? Then take a look at this copmatibility table
- The compatibility table highlights that the support for the latest features is not very uniform and that, if you want to use ES6, ES7 or upcoming features you’re going to need something that converts new features to something that can run in the current browsers. That’s what Babel.js can do for you. This is the de factor transpiler for ES6 and above, with a plugin model that let’s you decide which features to enable. If you are interested in taking advantage of the ES6++ features today, take a look at this article about using Babel with Gulp.
this
in JavaScript is NUTS (Not Usually The Stuff you were expecting). Here’s a step by step example that illustrates howthis
works in JavaScript and here’s a whole article about it.- ES6 Arrow functions let you write ultra concise code and give you a hand with the
this
issue in JavaScript. This article contains a lot of information about how you can take the most advantage of arrow functions and how to avoid their pitfalls.
Part II. Fluent.js (Embracing JavaScript and Becoming fluent in it)
- There’s a ton of interesting and great ES6 features that are going to improve the way you write JavaScript. These are three resources that can help you learn more about ES6:
- There’s a lot to object oriented programming in JavaScript. You’ve got a lot more options than just doing classical inheritance like you are accustomed to in C#. Take a look at this interesting series of OOP articles that not only show you how to do classic OOP in JavaScript but also a lot of alternative techniques that truly take advantage of JavaScript’s prototypical inheritance and dynamic nature.
- Did you know that JavaScript has LINQ? Take a look at this article to learn more about it.
- Functional programming is a lot about creating small functions to encapsulate small pieces of behavior and composing them together with other functions to create greater abstractions. This example shows you how to do that and how to compose functions in a very declarative way by taking advantage of ES.next decorators.
- If you are interested in learning more about functional programming in JavaScript then take check out these books:
- Interested in learning more about JavaScript async and Promises? This amazing tool let’s you interactively visualize how Promises work.
Part III. JavaScript Tooling (Modern Web Development Tooling has come a loooong way)
There’s a big gap between the ideal world in which we would like to develop application (ES6+, SASS, LESS, postCSS, automation of different tedious tasks, etc) and the real world with the features that are supported in browsers or other JavaScript runtimes. We need something to bridge the gap, and that’s what modern web tooling is here for:
And if you want to learn more about JavaScript in general check:
- Barbarian Meets Coding on JavaScript
- The Zero Bullshit JavaScript Guide to Surviving in the Wasteland
- JavaScript the Right Way
- JavaScript Weekly
- PonyFoo
Have a really great week ahead!
P.S. There were great speakers at the conference and awesome talks about the hololense, bots, IoT, Azure and anything that you can imagine. My colleagues from Active Solution talked about VSTS, Azure Remote Apps, Harnessing the power of Azure using JavaScript and taking advantage of the IoT Hub with lego mindstorms. I’ll keep you posted as soon as the videos are up so you don’t miss them!
Written by Jaime González García , dad, husband, software engineer, ux designer, amateur pixel artist, tinkerer and master of the arcane arts. You can also find him on Twitter jabbering about random stuff.