ForwardJS Ottawa 2018: Everything Old is New Again

Mark Walker | April 20, 2018 | 3 Min Read

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 homegrown 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 practices. 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 practices 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.

This post originally appeared on Medium.

Get Email Updates

Get updates and be the first to know when we publish new blog posts, whitepapers, guides, webinars and more!

Suggested Stories

Health Information System Integration

In this webinar, we discuss interoperability in healthcare and answer attendee questions on Health Information System integration. Download the webinar Now.

Read More

Guide to Creating Engaging Digital Health Software

This guide shares our knowledge and insights from years of designing and developing software for the healthcare space. Focusing on your user, choosing the right technology, and the regulatory environment you face will play a critical role in the success of your application.

Read More

Accelerate Time To Market Using Rapid Prototyping

In this webinar, you will learn how to leverage rapid prototyping to accelerate your products time to market in one week, agile sprints.

Read More