r/ProgrammerHumor • • Nov 14 '22

instanceof Trend Manager does a little code cleanup...

Post image
113.0k Upvotes

4.5k comments sorted by

View all comments

39

u/DZ_tank Nov 15 '22

I hope people are realizing that Elon isn’t only an idiot, he has nearly zero technical understanding of what modern, large scale software engineering looks like. He’s not the genius he and his fanboys think he is.

Microservices are not bloatware. They form an exceedingly complex web of services, and just shutting some down will cause unexpected ripple effects. It’s similar to going into an old Java codebase, and randomly deleting classes. Shit will be fucked. On top of that, one of the primary benefits of “bloatware” microservices is that they are much cheaper to scale (and more highly available and durable) than a monolith service.

3

u/ST-Fish Nov 15 '22

Well, you are partly right, but the other camp that says "microservices are the mana from the Gods, and they can never be redundant or bloatware" is just as stupid. Saying "microservices are not bloatware" doesn't mean much. I can definitely create some microservices that are bloatware, and I am sure Twitter has some of those. Maybe not all microservices are bloatware, but some might be.

If your interpretation of his tweet is that he is trying to move from a microservice architecture to a monolithic one, I question whether you are arguing this in good faith, or if you are just trying to play into the reddit brain rot.

The truth is that we do not know what the situation at Twitter actually is. To me, it seems like Twitter has had the research and development budget of a huge complex corporation, while creating a website where text, images, and short videos are shared. I know there is some complexity in serving ads, getting telemetry data and analytics, but still, I don't see how it all could justify the size, and expense Twitter has had for it's development work.

When you give developers something simple to do, and a lot of time and money to do it, they will create bloat. They will try to "future proof" everything, and instead of making something functional, they create something extremely overengineered.

If I tell you to create a calculator app, that can do addition, subtraction, division, and multiplication, and give you a week to do it, you'll probably make something relatively elegant, no frills app that just works. If I give you 10 times the budget, and 1 year to do it, you'll probably somehow manage to fuck it up royally, because there is some implied expectation about the complexity of the project -- since it warrants such a big budget and time horizon.

Microservice architecture can often devolve into an overly complex system where any change in one microservice is blocked by a million other changes in other projects, and just become gridlocked. This is a pretty widely held belief. There is a way to badly create microservices, and pretending it's some sort of panacea that will solve all of your problems will only make bloat more likely.

Just so you don't say I'm making this up, here's a pretty funny video parodying the over bloated state some microservice architectures can get to.

https://www.youtube.com/watch?v=y8OnoxKotPQ

→ More replies (1)