Languages and DevOps: Web Development
Web development has changed a parcel ever since DevOps hit the scene. The languages used have changed, where the languages are used have changed, the likely primary hosting environment has changed – but DevOps has internalized these issues and kept plugging in.
We will approach this from two angles: the languages you are likely to use and the DevOps offerings. It’s not a “Best Billion Web Development Languages for 2021!” item; there are many and you are more than welcome to read them. It’s more about using these languages in a DevOps environment, which has become the norm for web applications more than any other type of development.
But DevOps rose to that challenge.
I have long been a fan of Atlassian and find it to be a great tool for managing the agile side of DevOps. Add Ansible, for the operations side, and you’ve got a good thing going. I recently researched GitLab, and GitOps – via GitLab – offers a compelling alternative to Atlassian’s offerings; especially since Atlassian made some rather unpopular changes just as I was finishing my look at GitLab.
The key is that Git contains all the code. By adding the scripts to run these increasingly complex backends and securing the entire infrastructure, you get an “app in a (virtual) box”. Whichever DevOps toolchain you use, pairing it up is easy, as it already works well with Git and related tools.
Developers tend to care more about the development side of the equation (imagine that!), so let’s talk about what’s going on there.
PHP hangs on tight, with a mass of applications and (perhaps more importantly) libraries to keep it going. PHP is one of the original “generating an HTML page” languages and is slowly being moved on. It’s not a bad choice for your web projects, but it’s not the only – or at this point, the most popular – choice.
Java is still quite popular, and while it offers good support for web development, it’s… heavy? Is that the word? It is Something for this type of development, and has ceded ground to other languages when it comes to pure-play web development. Skills are transferable to other targets, so it’s a good language for wide use. Like other serious players in this space, there are web-centric libraries and frameworks that keep Java buzzing. I’m a Spring fan, but the options are quite wide.
Python is definitely a contender in this space, as it is in most others today. With Django (or whatever framework you choose), it works well for web development, and its popularity has given it a host of supporting libraries to get things done. Developers are easy to find and skills are widely applicable, as Python is used in most areas of development and operations at this stage.
Windows aficionados still use C#, and it has good hooks in Microsoft DevOps tools, so any Microsoft store should include it in the ratings. I did C# on Azure for Web Apps, and for me it was…different, but not broken. In a Microsoft store, C# will be familiar, and by this point most developers are familiar with web clients, so merging the two is just a tiny learning curve, but not a major one.
Ruby seems to have given way to Python. You’re unlikely to find a steady stream of ruby developers to fill these positions, but it’s a very intuitive language in which you can train Java developers, and even Python, if needed. Ruby is well supported for web development; indeed, it seems more natural to use 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 use existing Java classes.