“Language bad!”
You'll hear opinions that X language is bad. But are they?
A few days ago as I was mob coding with a few members of my team, I got the following question:
Hey, do you think PHP is a bad language?
For context, our main languages are C (the OG C, none of that C++ or C#), Go, Python, and Rust. Plus the usual front-end languages.
PHP has this bad rep from the “more serious, grown-up” language-user crowd that it’s a silly little toy language that only hobbyists use because they’re not good enough to learn a “serious” language like C, or Go. I suppose WordPress had some hand in this image of PHP becoming more prevalent.
This is extremely gatekeepy though. The only metric we should be judging a piece of software is this: does it get the job done?
Who cares that it’s a weakly typed language? Who cares if it’s an interpreted language? Who cares if it can be used to produce bugs? Every single language can be used to produce bugs.
Is Excel a bad language? Its functions and macros and other capabilities are surprisingly robust. When someone asks me to write a piece of software, the first questions I ask are:
- do you already use Excel at work, and
- have you tried solving this issue in Excel?
I mused about this on Twitter in 2019: https://twitter.com/javorszky/status/1191300192793976832
Microsoft Excel is amazing. Show me another purpose built business intelligence tool that can Excel raw data and pivot tables.
I get that there’s a mantra of “look at what people are using Excel for and then build a service to replace that,” but what if we build a tool to export raw data that we can plug into Excel easily and let it do what it does best?
I bet it would also be a lot cheaper to build and maintain, there’s no vendor lock in, and raw data is as general as you get.
On top of all that you don’t need to upload or sync your data with anything, there’s no risk of the service getting compromised, and now your financial data is being sold.
What’s not to like?
Back to the languages bit. Does it get the job done? Is the language you’re using appropriate for the task you’re trying to do? Do you want to do server side stuff and use a server side language, like PHP? Excellent, it will get the job done.
I do believe that any conversation around “but PHP isn’t compiled,” and “PHP is single threaded,” and “PHP doesn’t have long running processes or queues or monads or whatever” is mostly an academic discussion. Who cares? I mean probably you do, because the question is “is PHP compiled?” but for businesses, who really cares? Why should a business care how a something is solved as long as it meets their business needs?
Why should a solo developer, or a small startup, or whatever care what language their app / SaaS / project is built in, as long as they can ship it in front of paying customers and provide them a delightful experience?
Do you, as a software engineer / developer, feel bad about your choice of language because someone made you feel bad about it? Please know that there’s absolutely nothing wrong with whatever language you chose, and if anyone wants to make you feel bad about it, they’re a gatekeeping asshole.
Photo by Artem Sapegin on Unsplash