Macadamian Blog

ForwardJS Ottawa 2018: Everything Old is New Again

Mark Walker

Senior Software Engineer, Mark Walker, recently attended the ForwardJS conference in Ottawa – an event bringing together many experts from all corners of the JavaScript ecosystem. Mark provides takeaways from the conference and explains a case of déjà vu.

I recently attended the ForwardJS conference in Ottawa, Canada. There were a number of knowledgeable speakers from all corners of the JavaScript ecosystem. However, what really struck this coding curmudgeon is that what was presented were largely solid engineering practices that those of us in more mature development languages had been using for decades. Everything old is new again. It seems that much as the generation of home grown C, C++ and Java programmers discovered when moving from coding alone in a basement to larger and larger software teams, the same discoveries are being rediscovered by developers in looser, scripting evolved languages such as JavaScript: i.e. that solid engineering practices become more important as we work in larger teams.

You Might Also Like: JavaScript Promises Explained.

JavaScript has moved on from the days of some guy with a text editor that tests his code by refreshing the browser, not the least of which that it’s no longer only “some guy” that is doing it, rather it is a larger and more diverse team of developers. These days we’re not all fuelled exclusively by Pizza and Coca-Cola; some of us have been known to eat vegetables.

Even the old argument over compiled languages development cycle, versus that of interpreted is somewhat moot by the move towards static checking of code and an integrated CI/CD pipeline. With today’s powerful machines, the compilation time of compiled languages is negligible compared to that which would be taken in the test cycle. In addition, the wider adoption of other languages such as TypeScript which transpile to JavaScript effectively adds a compilation cycle to the development process — all this without mentioning the new kid on the block: Web Assembly.

You Might Also Like: Coterminous: Blurring Javascript Boundaries.

There was a presentation on code review and a whole day session on the Continuous Integration and Delivery Lifecycle (CI/CD) which emphasized testing best practises. Code review was presented as an opportunity to learn and mentor younger developers, but also emphasized that the code review is not a place where minutiae of style is to be reviewed — that can be accomplished by static checking, but rather where design decisions are reviewed, i.e. a code review is more of a design review than of code per se. The CI/CD session focused on having testing as a continual part of the development process, automating as much as possible and thus allowing QA to concentrate on difficult corner cases rather than general program flow. All of the above have been long standing best practises in more mature development organizations, but are now being adopted by the “cool kids” of JavaScript.

You Might Also Like: Creating a Holistic Strategy for Software Quality Testing.

Which is not to say that some very good points were made; the obsession with object-oriented design (OOD) — or to be precise the general misunderstanding of what OOD actually entails — leading to heavily coupled, inflexible systems. Getting back to message flows and single responsibility as being the core ideas that they always were (smalltalk, anyone?), rather than inheritance obsession. The object obsessive problem comes down to the very poor teaching methods used when teaching OOD concepts, particularly in Java.

All this to emphasize that the old school code curmudgeons of any organization have a lot to teach the new kids on the block and they can also stand to learn some things from them.

Did you attend ForwardJS Ottawa this year? What were your thoughts on the conference?

This post originally appeared on Medium.

Insights delivered to your inbox

Subscribe to get the latest insights in IoT, digital health, and connected products.