Blog
Will Leeks

Web development is a broad field, bringing with it an enticing array of different challenges. Indeed, I think my peers would agree that one of the role’s many appealing qualities is its inherent variety. On any day a developer might be tasked with: building the layout of a new web page, requesting and manipulating data from a server, coding interactions and animations, or one of any number of other interesting challenges. That mix of responsibilities requires a developer to understand and implement a range of different mark-up, scripting and programming languages.

For the uninitiated, a quick primer:

First of all, and essential to the web, is Hypertext Markup Language (HTML) which provides the semantic structure and content of each page. HTML is the heart of a web page, allowing us to inform the browser that we intend to display a paragraph, a list, an image, or one of a number of other content elements. Moreover, the HTML contains the specific content that each of these elements should show to the visitor.

Following on closely behind are Cascading Style Sheets (CSS), which allow us to style the aforementioned content. Using CSS we can make the paragraph a different colour, adjust the spacing of the list, or increase the size of the image, amongst myriad other possibilities. Background colours, rounded borders, shadows, spacing between elements; all these things and more are specified with CSS. HTML tells the browser *what* the content is, and CSS tells it *how* it should look.

Furthermore, as websites increase in size and complexity, we typically make use of a database to store content and other useful data. This is where “back-end” or “server-side” languages enter the picture, so named because they run on the server rather than in the visitor’s browser. For this there are a range of choices — including Perl, Ruby and ASP — though we do the majority of our work in PHP, which powers platforms such as WordPress, Laravel and Drupal.

With the aforementioned covered in brief, today I would like to focus on Javascript (JS), a very useful and increasingly flexible language. Like HTML and CSS, JS typically runs in the browser and, traditionally, has been used somewhat sparingly to enhance the functionality of a page. This might mean powering a carousel of images or displaying an interactive calendar. However, more recently the development landscape has exploded with front-end JS frameworks such as Angular, Vue and React whose purpose is to provide a more convenient and structured way of implementing JS in the browser. Practically speaking, this means a smoother, more interactive experience for the visitor and, in theory at least, a neater, more logical approach for the web developer.

As if that wasn’t enough, JS has been broadening its horizons and, like PHP or Ruby, it can also be used as a server-side language via applications such as Node.js. These developments have opened up the potential to have entire web applications written in JS. This rapid growth has seen a surge in demand for developers with deeper and broader JS knowledge. With many of the web’s biggest players (such as Facebook and Netflix) using frameworks like React, it has become clear that JS is here to stay.

So, what does that mean for the team here at Coast Digital? Put simply: more JS in what we do every day. My colleague (and fellow developer) Dan wrote eloquently about WordPress’ new text editor Gutenberg, which we’re keeping a close eye on. Gutenberg makes use of the React JS framework — quite a departure for WordPress’ community of PHP developers — and so when the time comes to implement it in production projects, we’ll be tooling up our collective JS chops. In fact, as of writing, we’re starting to see React play a bigger role in a number of upcoming projects.

It’s not always easy to embrace change, especially when it comes in a fast-moving environment with decisions about production projects at stake. It’s fair to say that the recent rise of JS has been met with resistance from some corners of the web development community. In part, I am sympathetic — change brings cognitive strain and, if the tools in place are working well, sometimes the mercurial world of development tools can feel like change for change’s sake. We must be cautious not to spread ourselves too thin, but I believe in a pragmatic approach;

if a new tool brings genuine benefit, let’s dive in.

The world of web development moves quickly and, unlike other more traditional disciplines, there is no single hymn sheet to sing from. On one hand, that can make keeping abreast of the latest skills a challenge. On the other, we are fortunate to be part of an online community which provides a veritable smorgasbord of resources to draw from. That can be overwhelming, but it keeps us on our toes and certainly means there’s rarely a dull moment. JS is growing every day and our job is to grow with it. Developers can be a partisan bunch, and not everyone relishes change, but I’m excited to see JS becoming a bigger part of the work we do.

More on this subject