JSConf US and the Expanding Web

The Growth of JavaScript

There is no doubt that the web is one of the most influential platforms of our time. The power and impact of the web in recent years can largely be attributed to the explosion of JavaScript. Its expansion out of the web browser and onto the server and other devices also continues to gain momentum. Along this journey, JavaScript has grown from a trivial “web-companion” scripting language to a standardized, robust programming language that is arguably the most-used of any in 2018. Due to its versatility and adaptability, as JavaScript creator, Brendan Eich states, “always bet on JavaScript”.

JSConf Embraces the Weird

JSConf is the premier organization of conferences worldwide that bring together JavaScript’s fans and advocates: those who create widely-known and universally-used libraries and products with it (think React, Babel, Node), to beginners, using their fresh perspectives to bring creativity, absurdity, and humor (think JavaScript-assisted knitting, video synthesizing, and pixel art) to the community. To truly understand JSConf’s ethos, it is worth reading the introduction from their website:

“We have given a platform for risky, wild, absurd, and amazing things to flourish into even bigger, more widely-known products, ideas, and libraries. We take incredible pride in the fact that many of the brightest things in JS over the last ten years have their roots deeply ingrained with JSConf. We push ourselves each year to take riskier and riskier speakers, because they define the discussion about JavaScript over the years to come.

Unlike other events, attendees do not come to JSConf to learn JavaScript. They come to have their minds blown about what they had never conceived JavaScript could accomplish.

Our aggressive self-dedication to spotlighting the next generation of ideas has been something fundamental to everything we do.”

As an attendee of JSConf US 2018 in California, these ideals rung true and I was continually blown away by the feats of JavaScript and the welcoming, creative community of which I am honored to be a part. A look at the talks that fill the schedule at JSConf is a good indicator of the coming trends in the JavaScript world. Those keen to stay ahead of the curve on the web would be wise to consider these talks as valuable research. JSConf is a two-track conference. As usual, there was a traditional selection of well-known or well-proposed speakers for the “AMPTrack”. There was also a freestyle Track B, where spots are filled on a first-come basis and provide a space for attendees to share whatever cool JavaScript knowledge, project, or passion they would like with the world.

Talks worth Talking About

Notable talks that I had the opportunity to see in this track included Amir Rustamzadeh discussing end-to-end testing with Cypress, a new, lauded, and reliable testing framework. What is unique about Cypress’ approach is that the framework has native-access to the DOM and your app itself, meaning what gets tested is what is actually seen by a user in a sequential, flake-free series. Because cypress runs tests in a chrome browser, you have access to the chrome dev tools and real-time reloading. Amir introduced Cypress’ newest feature, Parallelization in his talk, to parallelize the workload of tests within a Continuous Integration environment, speeding up the testing process. This works as a load-balancer of sorts, so multiple specs can be run in parallel and developer wait time is reduced. Another new feature he announced is Test Run Grouping to organize tests in one group and run all those tests together as a unit.

I was also happy to be able to watch Juan Caicedo’s talk about Pattern Matching in JavaScript. It covered the various reasons why JavaScript switch statements are lacking (non-standard syntax, prone to errors) and how other languages such as Elm and Rust rely heavily on this language feature with assurance. To incorporate such a robust pattern matching scheme in a redux action, which is, in effect, a large switch statement with the help of object destructuring, Juan explained the syntax and style behind the design of a reliable switching mechanism. This talk also introduced an early stage TC-39 (the committee that evaluates proposals for and maintenance of JavaScript) proposal for pattern matching, the new and improved version of switch statements for JavaScript.

Tim Doherty gave a talk titled “ES6 in Practice” that broke down the major 2015 updates to the JavaScript language in three broad categories: syntax changes, enhancements, and new features. He argued that new features were the most important category of the three as they are the driving evolution of the language whereas the updates that fall within the other two categories are refinements and maintenance of the current status. Syntax changes would include the use of arrow functions in place of the function keyword and the automatic binding of the this keyword to the lexical scope. Enhancements would include new array methods such as Array.prototype.find(), and Array.prototype.findIndex(). Features, being the most innovative category, include new language constructs such as Symbols, Iterables, Generators, Proxies, and Promises. Many of these new features are even still very much unknown and unused but they represent a considerable step forward for JavaScript as a language.

Creativity Reigns on the Web

The AMPTrack hosted many incredible talks as well from people known in the JavaScript community for creating an inclusive, inquisitive, and creative space. Jenn Schiffer spoke about pixel art and the evolution of JavaScript as a medium of art and expression. Rachel White spoke about creativity and imagination, and how the ability to communicate effectively to users with these tools can lead to unwavering support (think Disney!). Myles Borins discussed Ethical Computing and the human element of software that we as an industry must address now and always. And Feross Aboukhadijeh walked us through how he created the “Most Annoying Website” by using some obscure, but also some well-known browser DOM APIs to hijack a user’s browser window and create an almost-inescapable UX of confiscated cursor position, unclosing alert boxes, and relentless sound, regardless of a user’s computer volume. He showed us this web evil to prove the power of a browser and a developer’s ability to manipulate a user’s experience, even in 2018 with strict web standards and browser security. To close out day one of the conference, in the most rapid-fire of talks Justin Searls ran through a whopping 725 slides in 40 minutes about testing and how to use mocks effectively when writing your tests. Quite impressive!

The talk I found most interesting when discussing the landscape of the web was Laurie Voss’s, titled “NPM and the Future of JavaScript”. As the co-founder and COO of npm, Laurie has a unique perspective and field of vision when it comes to which packages are popular or fading, and which might be here to stay for a bit. After all, npm has 12 million users, and an average of 97% of a modern web app’s code comes from packages on npm’s registry, the remaining 3% is all that is unique to an app! He uncovered the rise of React’s popularity and showed us the trend graph of Vue, quickly catching speed. We saw the lifecycle of Ember in cycles of growth and decline, Laurie calling it the “comeback kid” due to its recent uptick in installs. He also pondered which packages were wise to bet on, given their growth curves. These include TypeScript, GraphQL, React, Vue, and WebAssembly. Given that web tools and libraries have an average lifespan of 5 years, the web is to remain under construction.

Finally, the talks and workshops that presented emerging technologies and cutting-edge capabilities of browsers and JavaScript were perhaps the most exciting parts of JSConf US. These included a talk about the new WebUSB API, that provides a way to safely expose USB device services to the web so your browser can natively connect to external hardware by Suz Hinton, Augmented Reality on the Web by Christina Kayastha, Virtual Reality on the Web by Billy Roh, and an in-progress release of a WorkerDOM API intended to ‘multi-thread’ and introduce concurrency into browser processes by Kristofer Baxter and Malte Ubl. Who could forget the full-day workshops to build robots (copters, rockets, boats, or choose-your-own-bot) using node and Johnny-Five - a JavaScript robotics and IoT platform!

Javascript Wants Your Input

In true JSConf fashion, JSConf US 2018 proved to be mind-expanding and ridiculously inspiring. The chance to get such a varied and both high/low-leveled look at the present and future of JavaScript and the ecosystem surrounding it is truly unique to JSConf. The connections and conversations made at this conference will influence the future of the community and ultimately, the entire web (and beyond) as a platform! If you are interested in how the web and JavaScript are ever-expanding, I wholeheartedly encourage you to consider attending a JSConf event near you!