I Am Happy Not to Be a Web Developer Anymore
thecodist.com
thecodist.com
The way we do stuff today is just a better and improved way to do the same thing we used to do yesterday, the fact that we have so much tooling is just a reflection of the fact that the web was created to serve documents and now we need to serve apps, so we need transformers along the way that allow for that 100% change of scope. But we aren't changing the base (HTML/CSS/JS, which we should), just the wrappers on top of it.
Nowadays, after the long decision process to go serverless I choose Cloudflare from the 13 best serverless frameworks and VueJS from the 30 frameworks they support.
So I choose SPA from the four ways to deploy VueJS. I chose TS over JS. SFCs thank you very much. Setup syntax please! Composition over options all the way.
I'm in the promised land! Types! Components! No server admin! No DB admin! Let's actually make something!
Trouble is, 18 months down the line, the commercial charts library I wanted to use is pretty much unusable with this setup. I've been through about eight dropdown menu libraries. How many person-hours were wasted with abandoned vuejs dropdown menus I wonder!?
It's been easier to write a desktop application to do the same thing in about two months.
Things are much, much easier today and work better for our customers. A true win-win.
For me it looks there are only 4 frameworks in that category. htmx in my eyes feels like a welcomed step back from those. Closer to what we used to do before (server-side html generation and such), but with a small twist. I have not really used it, but React etc. never felt good fit for me, personally.
Is this good for business? Probably not. Is it fun for me? Absolutely. Sometimes the road calls to you more than the destination. We're all wired a little different.
Side note. I love the author's art and couldn't find a place to purchase it.
I’ve tried closure, elixir and a bit of haskell and all have so many great lessons that are yet to be learned elsewhere.
After developing professionally in PHP, ruby, python and javascript and trying out other languages and frameworks at some point one can see so many great ideas that you can’t really use because the language doesn’t allow it. Like how much more would we have to wait for a normal low level lib for javascript/node, or even things like the pipe operator.
Various frameworks and libraries allow you a glimpse of whats possible, but then when one reads ip on the inspiration behind them and tries them out in their “native” environment, it just kinda sad how much can be lost “in translation”.
5-15 years ago I couldn't write native CSS. Today? I prefer it. It's improved to such a degree that I think most people aren't even aware of how much better it's gotten, because they escaped to Sass / CSS-in-JS for years.
Programming is way closer to cleaning bathrooms or working the checkout line at the grocery store than most programmers are willing to admit. It's an endless slog to solve the same problems for the same companies over and over.
Your code really has no value without a business solution. A website or an app or some code is just an implementation detail, and it has no value by itself. It can lose value in an instant if something else comes around or the underlying problem that it set out to solve disappears.
There's nothing wrong with web development today. It's a tool for a job and it does its job.
I think a lot of developers have tunnel vision on what they actually do for a living. I don't really think it's the greatest gig. I think a lot of other corporate roles are more lucrative and easier. For example, fart out some business word salad for your MBA classes, get your degree (this is way easier than an engineering undergrad), and convince someone to hire you in a strategic business role.
You can't even really screw it up at a lot of companies, there's no need to be competent, the programmers and other grunt workers do all the actual work.
I like this aspect of it. It feels humble and practical. We're plumbers, but we pipe data not fluid. We don't have any science of data dynamics yet, so it's all word of mouth cargo culting. It's like being a plumber in the bronze age if plumbing was extremely valuable.
As to the ease of "and convince someone to hire you in a strategic business role". Yes, this is a job that people have, however it's extremely competitive and hard to keep. There's always someone else who can spit out MBA salad and who wants your job. I wouldn't want to be a BS artist, it's too stressful.
It helps to work on a product that you're into, or believe in, if you're lucky enough to find such a thing. I think one of the secrets is to become a product-centric engineer, and focus more energy on understanding the domain and what the business needs.
The whole process is definitely still a mess and I am not trying to defend the chaos, but I think it probably appears a lot worse from the outside.
I watched everyone adopt AngularJS and then have to migrated to Angular 2.0 and then everyone migrated to React. During this time, the backend folks wrote java services using SpringBoot and then migrated to SpringBoot and then when that wasn't abandoned, moved to SpringBoot.
Web development feels way too much like a hamster wheel to me.
A while ago, a few years I think, I learned react with class components. Hooks were never mentioned, so I don't know if they didn't exist yet or were in some nascent stage. I thought "huh neat this makes writing js not completely awful" - my only "frontend"-related background was in desktop UI development with Swing and Qt and such. As I mentioned, I'm mostly a backend dev.
Anyway, I wrote a small internal app for my job at the time and shipped it and it was neat, all the other backend devs (we had ~no frontend devs) were suitably impressed with how much less awful react was than vanilla JS.
Fast forward... I suspect 3-ish years. Suddenly hooks were popular and class components were not and people were being pushed to migrate (since newer versions of libraries were preferring hooks). My hard-won frontend knowledge is already outdated! And imagine my surprise when I learned SSR was back?? and something about next.js which I guess is still react but it's a server packaging of it as well and that bleeds over into letting you do more stuff on the frontend, something about server-side props? I was disappointed with how much had changed despite the actual product - the websites you can build - still essentially staying the same.
And this is just for React - the winner! I had managed to correctly pick the winner and there's still all this churn. Meanwhile, as you mentioned, rails is still almost exactly the same (all its churn has been trying to pick a not-awful way to integrate javascript, ironically) despite several major versions passing, Spring is the same, etc.
All I want to add is that today React is the winner, last week, backbone/ember was, week before that it was angular.
Even winners are transient and ephemeral.
If anything, new frameworks should be simple to use.
I've had the misfortune to work in an Angular codebase last year, I could hardly make heads or tails from it; I'm sure there's good theory behind it, but it was far too complicated.
Currently working in React, and it's got the annoyances of hooks, callbacks, effects, etc; basically, you as a developer are responsible for a lot of rendering behaviour, using what looks like magic trickery. Don't get me wrong, I like the basics of React, but as soon as it goes beyond simple props it's starting to lose me. I heard Vue solved this better or more intuitively, but it's still a layer on top of JS/HTML.
In parallel I've been working in Go, and while it's wordy and frequently annoying (like when using the correct design patterns, you'll end up copying a database struct to a business logic struct to a HTTP API struct, it's boring, wordy and bug prone code), it's still much more of a joy to work in because there's very little indirection or friction.
All this is to say that there are projects and communities that value stability with stagnating so you can still have “nice things” without feeling stuck on a hamster wheel.
That being said, I do love Astro. It's a very nice, easy experience.
It feels like a mountain to climb to get my head around that lot!
https://flowchainsensei.wordpress.com/2021/07/28/kent-becks-...
Like, how can you understand the tradeoffs between react, svelte or vanilla js until you have a basic knowledge of them?
Learning your first programming language is hard. There's a lot of details and idiosyncrasies. The second is a bit easier because you have a base of experience to reference it against. By the time you're picking up your sixth language or front end framework or node API framework, you should be able to much more quickly assimilate the details because you've got so much more experience to draw on.
It almost seems like people are getting off on the fact, that they manage configuration complexity in web projects, as if that makes them somehow qualified. Instead they should be saying:
Wait a minute, why am I configuring all this shit? Why is my web app so big, that using a minifier makes any significant difference? Does my web app really do that much? Couldn't I get by with just rendering templates and add a tiny amount of JS?
But people do not ask and continue riding the hype train and it even makes them more in demand, because way too many people think they need this.
now html is the gibberish output from some js build pipeline for wrapping 50 nested divs around some json values.
why i hate web dev now:
1. what used to to take 1-3 steps now takes 10-20. trade-offs are absolutely not worth it for 90% of cases.
2. web dev has become low value, highly saturated and competitive field thanks to learn2code and low barrier.
Web dev has been the low value, low barrier, entry level programming job for decades. I got my first web dev job in the mid 90s and it was low value, entry level work even then, that is why they would hire a 17 year old with no experience.
Yes there is Web dev work that is very advanced, and web devs doing stuff way beyond what most can do, but most web dev jobs in the world have never been that.
There are just more choices today. You don't query for the latest stack and work back words.
Are you building a dog house or a skyscraper? If its a dog house use vanilla js or whatever works. If your building a skyscraper then use a react stack or something that has wide developer support since now your working on a large team on a large web application and the requirements have changed.
Server side rendering for example is to solve the issue of first load but is that actually something the business must have? It also adds CPU processing to your back end and more complexity. Is the trade off worth it for your business?
The reason the business pays us money is so we learn the trade offs and make the correct technical decisions, not that we blindly grab the new hot.
Most hacker news links I see like this is a developer confusing their world (small shop, internal IT dev, large shop, enterprise development, contract work for medium size business, FANG company etc) with the whole world and think there is one solution that applies to all worlds.
I blame the audience. These JS frameworks and cloud-everything services exist to shave every possible millisecond off from the experience because we all have the attention spans of a goldfish now.
Now we stay like a kid in front of a candy shop and don't know what to choose.
Anything has pros and cons, but nothing really convinces us. It seems that all candies look great but taste like spoiled fish.
We are a small team and we don't have the time to update the app with every new version of a framework.
We stepped back and looked at our internal tools, which needed the least time of work for updates etc. and we currently think we use no framework. Only a really really simple one. That would possible need more time to build an app, but saves a lot to maintain the app. This tool would be used for the next 10 years (ok 20 years in reality).
Our oldest internal tool is 22 years old (manages customers, projects, domains, servers, etc.), got a little update some months ago to work with newest browser, update to newer php-version and that all within only 2 weeks. 2 weeks! That is today not enough time for a modern build setup ;-)
10 years ago, non of the current JS frameworks exists, or you have to do so much upgrade work to maintain you apps. 20 years ago? OMG unbelievable. Now think 10 or 20 years in the future. I think none of the current frameworks will then exists.
It's designed to be ensuring that projects remain maintainable even as time goes by. With its headless architecture, it can be used with custom styles or any UI library and data services. Maybe it helps you somehow
You can check the examples with source code: https://refine.dev/docs/examples/
Repository: https://github.com/refinedev/refine
I used ember too for a little own project, when it was version 1 (ONE), but i can't remember today why i not used it anymore.
Wanix - https://www.youtube.com/watch?v=qGFdtDKLI9o
Tech Thesis - https://www.youtube.com/watch?v=yKZ15O7zeHY
I find it funny when people from other domains complain about web development changing so quickly, when literally every other domain changes at about the same pace. React has been around since 2013 now, that’s the same age as Rust. Of course if you’re not in the industry and actively following it, it will feel foreign to you if you revisit it in 10 years. That doesn’t mean your industry hasn’t changed, it just means you haven’t noticed it because you’ve been following it all this time.
And you can still use plain JS, HTML, and CSS. And a lot of things have gotten way better using vanilla tools. You don’t have to use a super complicated stack if you don’t want to.
But the problem is, that most people automatically think to use a framework (me also).
[0] https://www.infoq.com/presentations/Simple-Made-Easy/ [1] https://news.ycombinator.com/item?id=37137110 [2] https://news.ycombinator.com/item?id=34771771
I’m a bit disappointed in the article. With the title I expected to read something about development that is not web (system, embedded…), and it made me curious. Sadly it isn’t; the author is criticizing an ecosystem they left a while ago, and regret not to be able to keep up with it. Pretty normal, isn’t it?
It’s very easy not to be able to keep up with something you’re not a part of anymore. We shouldn’t expect things to stay the same forever. It’s okay to take a step back and reflect on how things are (yes, maybe web dev becomes too complicated in certain ways), but it’s hard to judge when you’re completely out of it (the author stopped web development “in 2009”).
Is that much more straightforward? If I have an idea today, I can mostly just skip straight to the parts of that idea that interest me. I don't have to worry about writing my own database driver or windowing system or whatever — projects that could be fun in their own rights, but ultimately soul-sucking if they're just obstacles in the way of my actual vision.
On the other hand, though, not many developers get to focus mostly on new code. And generally, open source dependencies are going to be used, as it's considered wasteful to build everything from scratch.
But what’s a better specialty (more stable, doesn’t change every week, large number of opportunities)? iOS or Android development? Something else?
We can be Webmasters again!
Is the issue really that old is now new, or is it that abstraction actually becomes a liability when it gets too deep? A lot of that old tech hit the sweet spot on abstraction without taking it too far.
They all ring of, "my job got harder, not fair!", as they take home near top 5% salaries. Just do your jobs, stay informed, right tool for the right job, etc. Good grief.