Live data from Hacker News

Ask HN: Why did back-end development explode in complexity?

news.ycombinator.com

31–40 of 78 posts

Re: Ask HN: Why did back-end development explode in complexity?

#31
post #8

Oh you sweet child, you haven't seen complexity until you have deployed J2EE services generated using WSDL, running in an OSGi container, interfaced with EJBs packaged using Ant and deployed into GlassFish, integrated with IIS running on a Windows Server. Try finding a starter kit for that.

I’m 27 and my first job was OSGI at a Java shop.

That was some convoluted shit. Class path errors, coupled to blueprint XML and fancy IDE stuff.

I’ve worked in different languages and frameworks since and love the simplicity of Go. Excited to learn Rust

Re: Ask HN: Why did back-end development explode in complexity?

#34

I really don't think this is a productive question or will produce productive answers that aren't tribal and arbitrary. Some folks will blame "the system" or "the man", others will claim it's not hard and you just need to RTFM, still others will explain how much harder it was "back in their day", and some folks will question the question (like me). But nobody is going to drop some single piece of information or knowl…

Lovely answer, should be cross posted to the frontend thread :)

Re: Ask HN: Why did back-end development explode in complexity?

#35
post #11

Earlier quoted context omitted.

I did Java EE, Glassfish, JSF/IceFaces for my first job and at the same time I could have ftp'd a PHP/Perl script on a free host and called it a day (had I known better). I think Devops has a played a huge role in why things have gotten more complicated. They want Kubernetes to be the solution to all problems. Heroku has fallen out of fashion for literally no reason. They won't even consider ElasticBeanstalk or App r…

You're oversimplifying the problem and/or not viewing the problem for the organization. Maybe for an individual developer it's easier to create a Dyno or a Beanstalk deployment, but it's not necessarily easier for the organization . IMO, Kubernetes solves a lot of issues for both camps but most of the Kubernetes detractors I've met are only hostile to it because of ignorance, not any reasonable criticisms. "It's diff…

Easier to deploy for the developers is better for the organization. The dev team should own this process since they are the ones that probably have to support it. Objectively, deploying on any of the more managed AWS services, App Runner, ECR, Beanstalk is better for the org. Less risk if someone is leaving, vs the 3 terabytes of Kubernetes scripts required. The team knows how to manage and deploy their stuff so when they're on call they know how to fix it. Why would someone learn Kubernetes when you can spend 5 minutes learning Beanstalk or App Runner?

Things were never a problem when devs just managed this stuff. We used Heroku or Capistrano on plain EC2 and it was fine. Once you hit scale and things become more expensive then Docker on ECR / Fargate is fine. This whole dev ops fad just has to go.

Re: Ask HN: Why did back-end development explode in complexity?

#36
The products we're building are more complex than they used to be, but I don't know if its true that backend development has inherently become more complex than it was in the past.

I've worked on everything from dinosaurs older than me to new greenfield projects using all the latest tech. I think over-complexity emerges in many ways, notably: too much abstraction, ignorance, dogma, and just straight up carelessness.

I think the abstraction problem is the most common and severe though. In enterprise software, I've spent an entire day in the past combing through several layers of services and repositories just to get the full picture of how a response object is being created for a single controller method.

Let me give another example: think about the great debate over ORM vs No-ORM. It's fundamentally a battle about the balances and costs of abstraction in software development. On one hand, you have a (hopefully) simple interface for defining a db's schema, but do I really want to obfuscate the developer from the implementation details of that `findBy` method and trust that the ORM will be 1) used correctly and 2) generate a performant, sensible query? What about security handling? Should I have my developers concerned about preventing potential SQL injections, or just let the ORM take care of that too? The answer depends on a lot of things.

Anyway, I believe for every abstraction:

- something significantly useful should be added (this seems like a truism as I write this, but i've seen a startling amount of useless abstractions)

- the cost should be carefully calculated

- understand where complexity is being added and subtracted

I believe thinking about abstraction in this way would've cut down a lot of the complexity I've seen in softwares past.

Re: Ask HN: Why did back-end development explode in complexity?

#37
post #22

The scope of back-end development has grown considerably. In fact, it's precisely "one level of indirection" bigger: "commit is the new save", "push is the new commit", and "repo is the new module". Plus, "full-stack development" now includes containers and orchestration! Which is, of course, insane: distributed systems are, in general, not well understood. Expecting people to understand front-end, back-end, and then…

I have never met a full-stack developer that is comfortable with the full stack. I am also pretty sure full-stack was coined by recruiters and marketing folks to create a technical middle class.

Hmm. Yes. https://dev.to/cubiclebuddha/i-m-sorry-but-this-full-stack-m...

Re: Ask HN: Why did back-end development explode in complexity?

#38
post #22

The scope of back-end development has grown considerably. In fact, it's precisely "one level of indirection" bigger: "commit is the new save", "push is the new commit", and "repo is the new module". Plus, "full-stack development" now includes containers and orchestration! Which is, of course, insane: distributed systems are, in general, not well understood. Expecting people to understand front-end, back-end, and then…

I have never met a full-stack developer that is comfortable with the full stack. I am also pretty sure full-stack was coined by recruiters and marketing folks to create a technical middle class.

I dont even have a clue what a full-stack even means these days, its just a resume wank-word somewhere between "cloud" and "framework"

Re: Ask HN: Why did back-end development explode in complexity?

#39
To respond to OP's edit: frontend catches more shit because it's largely gotten worse at the same time as getting more complex. This isn't (only) outsiders looking in leveling that criticism—it's people who worked on GUI software in the 90s looking at the state of things and wondering why it's both constantly changing and, in many ways, worse than it was back then. Slower, worse tools producing slower, worse software, while constantly demanding that frontend developers run on a churn-treadmill for—it sure seems—no good reason.

Backend suffers from some similar issues, but not to the same degree. Frontend seems to be subject not just to the effects of the apparently-eternal fat/thin client cycle, as the backend also is, but to some other pressures that lead it to be constantly changing but not really getting better, and even getting worse over time.

Re: Ask HN: Why did back-end development explode in complexity?

#40

I don't think it has. We just have a fashion trend where people love to brag about managing 100 micro-services using Kubernetes. But there's still companies out there where the entire back-end is a single binary on a single beefy server, potentially with a hot spare server running alongside it.

Would you happen to know where I can find such companies?

[deleted]
Post reply on HN