Hacker News new | ask | show | jobs
by StephenJGL 1689 days ago
I agree with your disagreement. I've been in involved in web dev for 30 years. There is more moving parts, but IMO they better align with the actual complexity. This is likely only true for professional, production grade apps where the full range of concerns are in play such as security, maintenance, testing, migrations, scaling, etc. Deploying a simple app is more complex. For the apps I built I don't have to plan server purchases months out. I don't have to coordinate multiple apps on one machine. I don't have to worry about swapping out LBs and Firewalls as a nightmare connectivity issue. I don't have to scale file storage regularly. I can scale up service DBs as needed. All of that reduces total complexity.

Beyond that, in some instances even for simple apps there is less complexity once you know the technology. That's not complexity though. That's a buffet of useful options.

Good architecture decision are even more critical today.

1 comments

> I don't have to worry about swapping out LBs and Firewalls as a nightmare connectivity issue. I don't have to scale file storage regularly. I can scale up service DBs as needed. All of that reduces total complexity.

You're wrong. Complexity has increased by a huge magnitude so much so that it's actually unmanageable by a single person.

What's going on in your case is that the complexity of all of this has been abstracted away from you by amazon. They have entire teams of people making sure you don't have to deal with the actual complexity. That's the difference. This isn't an actual abstraction in the same way a high level language abstracts the details away from you. This is an abstraction where a team of people take care of you. It is not a true abstraction because you cannot wield this abstraction yourself in the same way you can wield a high level programming language.

Make no mistake, the actual complexity of it all has increased by huge orders of magnitude.

I think they mean that it reduces the complexity that a single developer has to deal with.
Right, but this redefines "developer" to "consumer of a cloud platform's services".
Complexity I don't have to deal with doesn't exist. Only if I really don't have to deal with it. We use BigQuery to report on 100s of terabytes of data. Behind the scenes it is massively complex. I don't have to deal with it. It's not meaningfully complex for me.
Wrong. Just because you don't deal with it doesn't mean someone else is. A true abstraction abstracts complexity away so no one deals with it.

Amazon abstracts complexity away by having someone else deal with it. Big difference. One would imagine software progressing towards abstractions that are simpler and allow one person to do more, what we are getting is instead abstractions that only make it seem this way when in reality it's going in another direction.

Complexity is increasing to the point where one person can do less, but companies like amazon don't let you realize this by hiding the true complexity behind other people who deal with it.