Web development has changed a lot since DevOps first hit the scene. The languages used have shifted, where languages are used has shifted, the likely back-end hosting environment has changed – but DevOps has folded these issues in and just kept plugging along.
Weโre going to approach this from two angles โ what languages youโre likely to use, and what DevOps offers. This is not a โBest Billion Web Development Languages for 2021!โ article; there are plenty of those out there, and you are more than welcome to read them. This is more about using these languages in a DevOps environment, which has become standard for web apps more than any other type of development.
Weโll start by observing that your web app is, more than likely, going to have at least three parts โ HTML, CSS and JavaScript. This is not news to those of you doing it daily, but weโre just setting the bar, here. Other languages may be used to generate or populate any/all of the above, but, in the end, these three languages get sent to the browser, so will be part of the equation.
Backends add an incredible amount of complexity to this equation. Iโve done Ruby backends that did most of their work in C++ and Java; Iโve done pure Java backends that spit out the required three components; Iโve done Node backends that had very little actual HTML/JavaScript source code, but generated a ton of both – itโs all there. And the hosting environments for backends have changed. When DevOps started, most hosts were virtual machines (VMs) or hardware, whereas now weโre mostly running cloud instances or containers. Those backends have to be configured and managed, too, along with all of the dependencies that your application requires. When you think about it, we really have created quite a messy environment.
But DevOps has risen to this challenge.
Iโve long been an Atlassian fan, and find them to be a great tool for managing the agile side of DevOps. Add in Ansible, for the operations side, and you have a good thing going. I recently looked into GitLab, and GitOps – through GitLab – offers a compelling alternative to Atlassianโs offerings; more so since Atlassian made some rather unpopular changes right about the time I was wrapping up my look at GitLab.
The key is that Git holds all the code. By adding in the scripts to spin up those increasingly complex backends and secure the entire infrastructure, you get an โApp in a (virtual) box.โ No matter what DevOps toolchain you use, tying this in is simple, because it already works well with Git and associated tools.
Developers tend to care more about the development side of the equation (imagine that!), so letโs talk a bit about whatโs going on out there.
PHP is hanging on solidly, with a bulk of applications and (perhaps more importantly) libraries to keep it in the running. PHP is one of the original โgenerate an HTML pageโ languages, and is slowly being displaced. It isnโt a bad choice for your web projects, but it isnโt the only โ or at this point, the most popular โ choice.
Java is still somewhat popular, and while it offers good support for web development, it is โฆ heavy? Is that the word? It’s something for this type of development, and has ceded ground to other languages when it comes to pure-play web development. The skills are transferrable to other targets, so it is a good broad-use language. Like the other serious players in this space, there are web-centric libraries and frameworks that make Java hum. Iโm a fan of Spring, but the options are pretty broad.
JavaScript wins this race today. It is used on both client and server, there are a ton of developers and DevOps people available who can be productive in JavaScript from day one, and it is increasingly used in other contexts โ meaning skills could transfer to other projects. Like any language, there are trade-offs, but the portability aspect makes the trade-offs things that many are willing to work to overcome. Libraries and frameworks abound to make JS development faster and more dynamic. Personally, I like Node for server-side development, and Angular for clients that need more than straight HTML/CSS offers (probably because itโs the one Iโve used the most).
Python is definitely a contender in this space, as it is in most others today. With Django (or whatever your framework of choice), it functions well for web development, and its popularity has given it a host of support libraries to get things done. Developers are easy to find, and skills are broadly applicable, as Python is used in most areas of Dev and Ops at this point.
Windows aficionados are still using C#, and it does have good hooks into Microsoft DevOps tools, so any Microsoft shop should include it in evaluations. Iโve done C# on Azure for web apps, and for me it was โฆ different, but not broken. In a Microsoft shop, C# will be familiar, and at this point, most developers are familiar with web clients, so merging the two is only a tiny bit of a learning curve, but not a major one.
Ruby does seem to have ceded its spot to Python. It is unlikely youโll find a steady flow of ruby developers to fill those positions, but it is a highly intuitive language that you can train Java, and even Python developers in, if necessary. Ruby is well-supported for web development; indeed, it feels more natural using Ruby for web work than command line tools (at least to me, YMMV). There are web frameworks to make Ruby more intuitive in web development, and jRuby offers deep integration with Java to make use of already existing Java classes.
All in all, JavaScript should be the strong contender for a new project today, but any of these tools will serve the need. They are all well-supported, and DevOps tools start with integration to most of these languages. Do whatโs best for your environment, and keep rocking it.



