As a first-time JSConf attendee, I happily embraced the welcoming culture and fun atmosphere – surfing, anyone? But I was even more impacted by the presentations centered around JavaScript expanding beyond the browser, using JavaScript to help others, and the focus on community. Of course I’m an avid JavaScript engineer and believer (why else would I be at JSConf), but I left feeling awed and inspired after seeing how progressive and impactful the JavaScript ecosystem can be.

JavaScript Helps You Build Amazing Things

The realm of what can be done with JavaScript is rapidly expanding and JSConf provided some exciting examples of what is on the horizon. These talks, while entertaining, also highlighted different parts of the web stack and showed important approaches for building apps.

Some highlights:

  • Sophia Shoemaker demonstrated how she helped make a web application which can work offline for a nonprofit in Africa using a PWA and service workers.
  • Florian Rival showed how he used React and WebAssembly to rebuild a native game editor app using web technologies.
  • Alexandra Sunderland outlined her journey of creating a Node.js server and a custom Android browser to compress and send webpages over SMS to reduce bandwidth consumption.
  • Bryan Hughes explained how to make smooth LED animations using JavaScript with a rig for the bike he’s taking to Burning Man.
  • Activity Day = NodeBots Workshop

    Day 2 was activity day where attendees could go offsite for an adventure or stay onsite for workshops. I chose the workshop and was glad I did!

    I attended the NodeBots workshop (other choices were NodeArt, NodeBoats, and NodeRockets) which came with a JohnnyFive Inventor’s kit. I had programmed microcontrollers before, but it was really cool to use JavaScript to control the devices. With the JohnnyFive library, it is surprisingly natural to use an event-based system to control the devices. By the end of the workshop day I got my device working with several components including an atmospheric sensor and a display to show temperature and humidity values.

    My coworkers created their own hardware devices too, including a game with buttons and LEDs and a controller for music visualizations. It was exciting to go beyond seeing demonstrations and have a direct experience using JavaScript in new ways.

    JavaScript for the Good of Mankind

    A major theme of JSConf US 2019 was that JavaScript is no longer limited to the browser. Theodore Vorillaz reinforced this with his talk demonstrating the braille device he is creating using JavaScript. Using mostly off-the-shelf components and a 3D printed case, Theodore created a device which can dynamically form braille letters. He envisions these devices being sold at a much lower cost than the braille devices currently available. With more than 50,000 children in the U.S. who are legally blind and many more across the world, devices like this could go a long way in curbing the low literacy rates among blind populations.

    There were other reminders of the need for greater access to technologies as well.

    Patricia Realini discussed the challenges faced by those without internet access at home. We are building amazing websites like online education services, but if someone doesn’t have internet connectivity at home, the library is often the only place for them to access these tools.

    Jeremy Wagner made the related point that we as developers should “Make it Boring.” When using high-power devices with great network connections, it is easy for developers to focus on exciting development experiences for building interesting websites. However, making things simpler usually results in better experiences for users because it maintains consistency, is less prone to failure, and usually provides better performance.

    Building Communities

    I commend JSConf for acknowledging and addressing the importance of community. I came away with some great information about how to bring together people around the software. One of the highlights was Tierney Cyren‘s talk about Open Source communities. He explored the important social aspects of software development in order to build a thriving community around open source software.

    Peter Aitken’s talk centered around Global Diversity CFP Day which promotes diversity in conference speaker lineups by training diverse speakers on how to put together a talk. It was encouraging to see the collection of conference organizers who were on board with this initiative as well as the speakers who had gone through the program.

    JavaScript and Web Development Require Managing Code

    Of course, there were talks about how our industry can do our jobs better. Since components are all the rage as a helpful way to separate code, many talks dove into techniques for maximizing components.

    Luke Herrington demonstrated how his company has passed components as data, instead of hard-coding them into the application, allowing NBC to make multi-platform changes with a server-side change. As part of his talk Luke explored how we choose to decouple systems (typically backend and frontend) and where that division takes place.

    Components also affect how we test and the practice of Test-Driven Development is often disregarded when dealing with presentation components. Tim Doherty challenged this, demonstrating how writing React components using TDD informs the development process, producing well tested components in the process.

    End-to-end testing also is a helpful practice that developers often skip because of the extra time and thought required. But Nicholas Boll showed how we can separate pieces of end-to-end tests into reusable components just like we do with using interfaces. These separations sometimes match with a framework level component, but more generally allow reusing a test of functionality that is independent of implementation. Even selectors can be packaged into reusable pieces to help coordinate between component development and testing.

    CSS styles are another aspect of web development that some JavaScript developers avoid. However, Lara Schenck made the case that we should respect CSS as a programming language and therefore do a better job of managing our CSS code. As declarative code, our style sheets need thought and organization to be maintainable. Style sheets also should get refactored to improve their quality, possibly aided by tests like snapshot tests.

    Dates and times are another aspect of programming that are constantly underestimated as Daniel Cousineau comically and pointedly demonstrated in his “Time is a Social Construct” talk. Using the simple example of wanting to remotely feed his cats, Daniel dove into the idiosyncrasies of how hours disappear, daylight savings keeps changing, UTC isn’t always the answer, and Florida is willing to change time and space to live up to its title as the sunshine state. The reality is that time is complex, and should be thoughtfully considered in web applications. Until browser standards evolve, libraries are an important tool to having accurate timestamps.

    TalkScript Podcast

    My experience was topped off by participating in the TalkScript activities throughout the conference. The TalkScript team interviewed 14 JSConf speakers and took part in the live lunchtime panel where we had fun dispelling straw-man arguments we encounter in the community. With help from some special guests, we explored and dismissed the myths of the reclusive the 10x developer and perfectly tested codebase.

    Conclusion

    I truly enjoyed my time at the conference and was proud to attend as a representative of SitePen, a gold sponsor of JSConf US 2019. The magic of JSConf is largely the hallway and mealtime conversations. Being able to interact with other developers in person is a great antidote to the heated JavaScript development topics that go viral on Twitter and Hacker News. It was interesting to hear the problems that other developers are struggling with and discussing the pros and cons of the tools available now. There is also a lot of excitement about what can be done with the JavaScript language and web platform. I’m optimistic about the future of JavaScript and the many, overarching applications for it.