I've been working as a full stack web developer for the last 15 years during this transformation and this couldn't be further from the truth.
No full stack developer feels they aren't a real developer. But I think more than anything the full stack's have been the drive of a lot of this complications because all these complications make everything way easier for us.
Web development today is easy (compared to 15 years ago) once you know this toolchain. And for professionals, tools that take a long time to learn but increase productivity tremendously are much better than tools that are easy to learn but slow to use.
Of course we'll figure out how to simplify this toolchain over time. But things have been improving across the board for professionals.
It is unfortunate that the barrier to entry seems to be raising even higher. But a trade-off we seem to be fine making.
Chris Coyier did a fantastic talk recently that covers how "front-end" development has ended up subsuming a lot of functionality that was traditionally "back-end". Highly worth reading the slides:
I would greatly appreciate, given your 15 years as a full stack developer, that you explain what you are using today, and (hopefully) why. I'm also curious if you might have some vision for the future?
Like internal tools, consumer facing tools, content site, social site, etc. Is it an MVP? Rebuilding an old system? Is this a build it, ship it and move on? Or build, enhance and maintain for foreseeable future? What's required lifetime of it? What's the desired lifetime?
As well as resources. You want to use different setups if you are a single person compared to a team of 15.
Generally speaking the smaller the team the simpler the architecture needs to be. And the larger, the more isolation you want between pieces.
Personally I currently like Rails and React best. Both are fairly mature frameworks and work well together. Not to say there aren't better alternatives just those are the two that have worked best for me. There's so many good options that no one knows them all well enough to make a fair comparison.
I think Rust is very promising as a much faster alternative to Ruby and expect to switch over to it sometime in the next decade. But I don't feel the web frameworks for it are mature enough yet that I can justify a switch to it to my employer.
> Web development today is easy (compared to 15 years ago) once you know this toolchain
Web development is harder for the simpler tasks that were common 15 years ago. It's harder so the harder (or impossible) tasks of yesterday, today and beyond, are easier for some values of harder and easier related to time and custom coding.
I disagree with the first part (they are real developers!), but agree with the second. We have grafted an application platform on top of a document delivery platform.
I should probably rephrase that part, because yes you are right, they are real developers. But there is this misunderstanding that what they do is simple and it couldn't be further from the truth.
So off they go and try to prove that perception wrong by piling on the complexity.
I don’t think added complexity is a ‘feature’ us front end devs strive for. Instead, there are a lot of useful UX abstractions that are increasingly expected by users and are becoming extraordinarily tricky to roll on your own. Yeah there’s tons of extra crap, but the 8000+ projects in most node_modules has become more or less the standard library for that projects developer. It’s nuts, but JavaScript is the Wild West so it’s what we deal with.
i think it is more likely that "real" developers who started working as web devs missed the hierarchical ecosystem and built up one out of straws. Of course, that's a cargo cult.
What would an application platform look like that isn’t a ‘document’ delivery platform? In my opinion, the ability of your browser to be essentially the OS of the web was responsible for the second great explosion in usefulness of computers (the first being the PC itself). Mobile apps were the third, but it’s unclear to me if there’s any benefit to rewriting many (most?) web applications as desktop applications. Discoverability, complexity and debugging costs all go up in such a world.
It's hard to imagine given we've been stuck in this world for so long. However, I have to believe there is a better way. Building an app with HTML/CSS/JS just feels like a mess. I'd start by looking at some good ideas from the past... Sun NeWS perhaps.
Sure, I do. And it doesn't seem that people that still have to support Internet Explorer have a much easier time considering that they seem to have settled on using a whole additional layer of abstraction !
It really comes down to ease-of-updates. Web apps are trivial to update. No build / cross-platform / deployment issues that you encounter with native apps.
Velocity of updates is also important. If I update a package, it can take weeks, months... maybe years... before end users update. If I update a web site, it's instantaneous.
there is a UI framework on top of a document platform, running on a VM inside a browser program running in a sandbox of a host operating system . Occam would be furious, and i think this extreme duplication of UI functions is bad for the environment, bad for the users' nerves and bad for the MTBF of computers.
And we've been using them that way for a long time. The reason is it's so simple to deploy an app, no more developing cross-platform apps for Windows, OS X and Linux along with installers for them. I remember working on simple apps where the installation and deployment took longer than developing the app itself!
HTML/JavaScript isn't the best way to develop an app, but it's good enough and you can develop very good apps with it.
So now we have meme frameworks and transpilers and hysterical build toolchains all for a platform for sharing documents.