JavaScript and PHP: Why Do We Limit The Languages We Use?

A quick delve into Wikipedia tells us that there are well over 600 recognised programming languages, from the widely known (and used) SQL, C++ and Postscript to the more unusually named and rarely used HAGGIS, Cybil and Grasshopper. And this isn’t even touching on markup languages!

With such a broad category of choice, it can be a little daunting to know what’s what. Generalists do exist in our industry, but even full-stack engineers limit themselves to just a few core front and back-end technologies. We knew as a company and as individuals that there is a huge benefit to specialising, so this blog looks into what languages we chose and why.

 

 

Frameworks make the dream work

In our world, it’s all about back-end languages. A number of these exist and are heavily used by development agencies large and small, whether that’s Ruby, Java, Python or PHP. We made a conscious decision to limit ourselves to just a few of these. ‘Limit’ probably isn’t the best word to use, because it’s not particularly limiting at all. If anything, it’s a smart move.

As a developer, it’s impossible to know everything, and the same can be said for an agency. By focusing on specific areas and specialising, we can offer the best solutions we can with the workflows, processes and tools that we’ve chosen. Every single programming language has its own associated apps, tools, process and best practices. Imagine a small to medium-sized agency trying to accommodate all of this. Imagine how hard it would be to produce a portfolio or a set of case studies when you’ve only ever touched on a programming language once or twice.

Specialising in a core set of programming languages means that we can perfect what we do and how we do it, saving us time, and reducing risk and complexity.

 

What did we go with and why?

  • Back-end: PHP and NodeJS
  • Front-end: JavaScript, including jQuery and vanilla JS
  • Mobile: ReactJS and React Native

We’re proud to say that we’re veterans in the WordPress world, and with it being built on PHP, we have naturally focused on that as a core language. There are other frameworks out there, such as Slim and Laravel, and templating languages like Twig, but with PHP we are able to offer a lot more complexity and power in our projects, from fully-fledged ecommerce sites to restful APIs (an application program interface that uses HTTP requests to access and use data) and everything in between.

 

 

NodeJS allows us to fit this into our full-stack JavaScript flow, allowing us to build back-end solutions, including GraphQL API services – all in JavaScript. This reduces the number of languages we need to learn.

jQuery comes bundled with WordPress and works hand-in-hand with the platform, allowing us to deliver products fast. In recent years, frameworks and libraries like Angular (by Google) were released with the goal to allow developers to build single-page apps, improving load time and performance. Since then, many libraries, including VueJS and React, have joined the party and are widely used to build modern single page applications.

With React being a component-based, user experience focused front-end framework, it seamlessly integrates with NodeJS and GraphQL. It also provides additional tools for mobile development and even VR.. This made it a no-brainer for architecting and for building our own platform.

This is all great, but what are these languages you’re talking about?

That’s a good question. It’s easy for us to get technical, but we’re equally happy demystifying the dozens of terms that you’ll see agencies like ours using. So here’s a quick lowdown:

 

PHP

PHP is a hypertext preprocessor. Dating back to 1994, it is very popular and widely used in web development. You would use PHP to write dynamically generated web pages. A PHP script executes on the server, with the end result being sent to the browser. There are many benefits to using PHP, but the ones specific to us are that it’s open source, it runs across almost all types of server, and it performs very well in terms of speed.

 

JavaScript

JavaScript is a client-side scripting language, meaning that it runs in the browser. It adds interactivity to web pages, and it does this by manipulating the content returned from the server. JavaScript can modify the style or position of elements on a web page, control transitions and animations, and where necessary, display pop-ups or info messages to the user.

NodeJs was released eleven years ago and extends JavaScript into the back-end world, allowing it to run on a server – much like PHP. It provides a full stack and same language development experience… something we very much like.

 

React

Being a little different to the two languages above, React is a library of JavaScript. JavaScript libraries are collections of pre-written code that can be used for common tasks. React specialises in creating user interfaces. Some of the React components you may come across in day-to-day browsing include menus, search bars or buttons, and this might be on a web page or within a mobile application.

 

 

We don’t shy away from our technical tendencies, and if we’re honest, it’s something we live, breathe and feel well beyond the workplace. But we don’t bamboozle and blind our clients with the full intricacies of how we do things. Sure, we touch upon it, but for the most part, we let our work speak for itself, which is only possible with us safe in the knowledge that we are using the best tools and processes for the job, and building upon our experience with every single new line of code.

 

“Early in my career, I had the option to go down the Microsoft/ASP route, or the open source/PHP route, and I took the latter. I did this because it was open source, and the code and the techniques were widely shared amongst the community – something that really plays to our AndAnotherDay values today.”

Keiron Roberts, Founder, AndAnotherDay

 

Wondering how we run things from a process point of view? Check out our previous blog on how we work, Our Project Management and Development Process.