Having used many of the 'Toyota Corollas' to build web apps, do any others feel a little pang of frustration that, here in 2025, teams have the choice of using TypeScript on both the client and the server and choose not to?
"Use this other language I know for the backend, it's the [reliable car model]. It's the {Latin, Swahili, English} of the programming world. It's JVM, it's PHP, it's Python, it's Ruby, it's C#'"
I feel that after a decade of jumping between systems, TypeScript is now the "good enough" language. We have to use it on the client. Now we can use it on the server.
The weird side-projects vibes node libraries had in the 2010's have matured into fully supported production systems in the 2020s.
And I've never been happier. It's a fine choice for the backend, and it's not really optional on the frontend. Which is important: like a lingua franca, TS/JS is not optional in a web app. This is not an attribute which PHP shares.
There are still some backend people who care about performance, or so I’ve been told
Is PHP more performant? That'd be surprising to me, given how many eng hours have been invested in V8
In my anectodotal experience, PHP is much, much more performant, even before I moved to Frankenphp - which is so much better than Express, it isn't even a joke.
And PHP is much easier to read and handle when the project gets larger. And more secure, as you aren't forced to rely on all these NPM packages (we use Composer, but nothing like the way we used NPM. PHP really comes with almost anything you need built in - and even if you use Laravel its still not a pyramid).
I have read through all the comments, and I really don't get it - I use Node and PHP a lot, and quite a bit of Python. Not to much experience with Go or Rust, but some with Java.
IMO, There is nothing that competes with PHP in speed, security (for web stuff at least), or ease of writing for the web.
PHP is decent enough - if Opcache is enabled and configured correctly then it does the job. I haven't tried the latest JIT stuff though.
The viable alternative is not PHP, its almost any sane compiled language.
My main gripe with TypeScript (and node/JS) on the backend, is that it's not trivial to scale horizontally. You start node and it's a single event loop.
Most people will tell you to use pm2 to start copies of the server. Well pm2 looks like a hack cobled together. And pm2 has conflict of interest with their paid pm2 server. There's incentive to keep pm2 free version limited.
Other's will tell you to use many docker containers. Seems a bit overkill for some applications.
Why can't it have a simple, mature, built-in multi-threaded server like .NET Kestrel or Go http?
Its unclear if Typescript has comparable backend ecosystem. For JVM you can find reliable, somehow well documented, widely used library for most of backend stories: driver for that database, SOAP-XML lib with support of niche security protocols needed for integration with some finance/healthcare institution API, logging, monitoring, etc.
But you kind loose the simplicity of these other languages. Like not needing a complex build setup, the unreliable dependencies. Compare to Django, Ruby on rails and Laravel. JavaScript doesn't have anything as feature complete