9 ms·
Ask HN: Has web development become insane or am I stuck in my ways?
I've been working in web development coding mostly in PHP / Laravel since 2008. I enjoyed my time at the beginning when everything was procedural code and things started changing (for the better).
At the digital agency I worked at, we moved to frameworks like Laravel and the frontend side of things was pretty static with custom CSS and some custom Javascript. Everything was hosted on a big dedicated server that would eventually become a VPS per client. The web was really simple then but understandly so were users' expectations of what the web could do and so there wasn't this mismatch that I feel I'm finding now.
Fast forward to today and I'm doing primarily product development for early stage startups.
CSS is a problem that is solved with Tailwind (for me at least anyway, I know it's a contentious topic).
Backend is a problem solved with Laravel which truly does provide everything I've ever needed and in cases where it hasn't (for compute heavy services), I've pulled those areas out into a mini Go service and whacked it on a separate server.
Javascript is just a problem...
Anecdote 1: I've worked at startups that had Laravel Monoliths where they tried to decouple it into microservices of their own, but this failed; it introduced so much complexity, mental concentration overhead of switching between code-bases and reduced developer autonomy: unless you knew how to deploy these new things and how code libraries should be shared amongst the new services you might as well pack up your toys and go home; you're not smart enough for this. Anyway, the services were bought back into the main repository because it was getting out-of-hand and frustrating to work with.
Anecdote 2: I recently deployed a Laravel app for a startup on an EC2 server. It worked great. I used Laravel Forge to do it and it took me half a day at most (once the dependancies I needed in PHP extensions were sorted). The startup wanted to move to Docker and have a CI / CD system. Previously I could just push changes to `master` and it would deploy using Forge. I watched as a CI / CD system was built that when production moved to it, it kept falling over and not really working very well. Additionally my autonomy to fix things was then taken away because there are layers or technologies stacks some of which I know but some of which I don't in the way. The whole thing became so frustrating to see. What was a perfectly working server that took me half a day to setup has now taken over 3 - 4 engineers full time work to end up with something that gives 0 benefit (except the idea that the server can never die, but that doesn't seem to be the case because it kept dying on any deployment and ended up with more downtime than the EC2 server ever had).
So why are companies with technology stacks that really arne't getting huge amounts of traffic or require huge amounts of complexity, choosing to use microservices based architectures or build their entire application in something like next.js which requires wiring together so much stuff (Prisma, Auth0) etc. Why do we introduce so much complexity that needn't be to this entire thing?
At some point, even though my speed of delivery with my framework and stack setup is frankly very fast and I can provide real value to people, it seems the perceived value of the above shennanigans is greater than the value of actually shipping stuff that matters if you look at the job boards, technologies used and pay given. I would love to be Bilbo Baggins in The Shire minding his own business, but I worry that if I don't jump on the bandwagon of overengineering everything to make myself feel smart then I'll quickly become irellevant in the job market. Am I completely missing the point of why these things are being done or is modern web development choices with regards to language and architecture just certifiably insane?
- p0d 5y agoProgramming is like music and you are a Rush fan. Even Rush fans have their favourite periods of Rush. It wouldn't be a very fun world if we all had to like AC/DC :-)
- draw_down 5y agoMaybe take a look at what concerns are attempting to be solved for (whether those solutions are ideal is a separate matter) instead of just assuming it’s all overengineered garbage built by brain addled babies who are easily distracted by shiney things. After all if you’ve got such a perfectly simple way to handle all those concerns then your approach should win any day now. Right?
- PaulHoule 5y agoEvery happy web developer is happy in the same way, every unhappy web developer is unhappy in a different way. Other people would tell a story similar to yours except it revolves around Ruby on Rails, React, Docker, CSS, npm, emotion, or some other tools or standards. You either are in a state of peace with your tools or not, and that is something that can change over time. For my job I work on a React application that was started by other people that has some good ideas in it but has plenty of accidents built in. I was doing a side project and was tempted to make a little application in Svelte, which would have been a perfect fit. I used React instead because I wanted to build on and extend my experience. I had a 60kb bundle which might have been 20kb in Svelte but the graphics files are way bigger than that and it loads faster than a speeding bullet as it is. That's the way I attain peace.
- davzie 5y agoNice. I am at peace with the tools I use. I'm very confident that the tools, stack and setup I use, for my context (early stage startups) does provide them with real value. My concern is that the industry as a whole is moving away from seeing that as valuable based on the jobs I see advertised and I want to stay relevant so that if I ever want a job / contract in the future, I am seen as valuable to someone :)
- 5y ago