It's increasingly harder to find non-legacy single page apps that aren't using React or Angular (Vue and Ember are distantly trailing behind). Corollary: it's increasingly harder to find jobs for anything other than React or Angular.
After technology du jour becomes popular, people will use it not because it's good or even necessary, but because it will ensure their employment. And then the rationalizations sink in afterwards.
The worst part about this is that it makes people (at work or in side projects) use these and other frameworks for every project ever for the resume padding. Doesn't matter if it's a CRUD app that just needs a form - it has to be a complex web app with a GraphQL backend and 50mb of React frontend.
Resume driven development is the way to go. Fulfilling the business case with minimal effort is good for the business but really bad for the engineer. You need microservices, NodeJS, react, cloud and whatever to stay employable. Even your own company won't be grateful for delivering a simple and robust solution.
Boy do I disagree with just about everything here. You need to keep your skills up to date, this is correct. Absolutely.
I think it's a much more important skill to acknowledge that you don't need things like microservices, node, and react when you can deliver a simple, robust solution without any of that stuff.
This is the difference between how it should be, and how it is. When you solve something simply and pragmatically it won't impress the non-technical or semi-technical manager. They also want to see microservices, bells and whistles.
Believe it or not for many managers "I refactored something and fixed the problem in an hour" isn't very desirable. When you go to your next interviewer they won't be impressed either, though they absolutely should be.
who is the gatekeeper in the company that is going to say "we don't need this"? Everybody has a vested interest in resume driven development, and these days "netflix/google/amazon do it, so we should too" seems to be like the good old "nobody got fired for buying IBM" (whether or not doing what a company at 100x your scale does makes sense)
The problem is when you look for the next job or even when the next project starts at your company you won't get credit for delivering a pragmatic solution. They often will bring in new people who have the cool stuff on their resume.
Sorry, I should have qualified it as Single Page Applications, not web apps in general. Still, hard to find a front-end job that isn't about SPA anyways.
If you're going to make a SPA, why the heck wouldn't you use one of the frameworks that has tons of tutorials, walkthroughs, supporting libraries, and a zillion asked and answered questions on SO? In other words why not use one of the top 5 frameworks of the current time? It seems efficient to do so to me.
It's expedient for many reasons to use a major framework, but it doesn't mean there are no drawbacks.
There are learning curves, inner platform effect (have to do the framework way of doing things), major breaking changes and outdated information, opinionated authors you may not agree with, huge dependencies for users to download, performance bottlenecks and gotchas arising from not using the framework properly or even the framework itself is slow. These things are basically guaranteed.
My personal problem is that people start to present themselves as "React" or "Angular" developers, which is kind of scary for me personally.
It is also hard to explain that you can pick up their framework (e.g. switch to Vue.js from React), many companies just say "no" unless you can provide strong experience. Some companies have better policies and they insist only on core knowledge and principles, but, unfortunately, I personally find them to be in a minority.
Yep. When I'm working on my resume it's a balance of trying to use the right relevant buzzwords to get past HR and enough content to get a callback from the person hiring. In my experience on the other side, HR doesn't often know that Rails implies Ruby or React implies JavaScript. Wrong buzzwords === wrong experience and not a fit for the job.
Many, many code horrors exist today due to a deep and abiding fear developers have of appearing insufficiently smart.
Most of the web apps that are being built today have no need for a complex front end and, if they do, it's only in a few places. But, as you quote, programming is pop culture, so every new Form => Datastore app is going to be built using a toolchain more complicated than quake was built with.
Wouldn't that also be the case if, for example, React/Angular were demonstrably superior technologies to the alternatives? groupthink doesn't have to be the only explanation.
JavaScript is the defacto standard... despite glaring issues and confusion (== vs === for example).
PHP is a massive player... despite incoherent implementations, inconsistent name spaces, glaring holes in functionality...
Both of those are popular not because they are the "Best"... but because they are popular. They came out at the right time and got the momentum in the right spots.
Granted... some of that might be my own opinion, but those languages have MASSIVE issues and shortcomings. They aren't at the top because of "demonstrable superiority". They are at the top in spite of the issues.
I'm building my new front around two cutting edge technologies, jquery and bootstrap. My UI should be fairly simple, why complicate development and bloat the download?
people will use it not because it's good or even necessary, but because it will ensure their employment
Utter nonsense.
Developers use these frameworks (a) because they like it, (b) because there is a wealth of knowledge on the internet about how to fix every little problem, (c) because it allows them to be productive with their peers and (d) because often they learn something new. People get bored doing the same thing over and over again for 30 years like you seem to be advocating for.
Imagine going to a doctor and getting a prescription because "they like it".
there is a wealth of knowledge on the internet about how to fix every little problem
Let's hope they're using the same version you're using.
because it allows them to be productive with their peers
Productivity without a framework must be impossible...
they learn something new
They learn something about the framework at the present time, which may be worthless after the next breaking change, and is not generally applicable to the web platform itself.
They learn something about the framework at the present time, which may be worthless after the next breaking change, and is not generally applicable to the web platform itself.
You are underestimating the appeal and intellectual stimulation gotten from learning something new regardless of merit.
It's not utter nonsense. I've seen it happen time and again in multiple jobs.
Right now at my current employer "we" are about to embark on replacing our entire data pipeline with a very popular queuing system designed to process hundreds of GB or more of data per day. Our current pipeline moves a few tens to hundreds of MB per day (not second, minute or hour) from the point of intake to our internal data stores. There are two reasons as I see it for the choice: resume driven development by the "architect" who proposed it (and management who want to put the management portion on their resumes) and laziness to address other issues regarding why there are delays at certain points in the pipe.
You by your own admission have no idea what the architect was thinking and the motivations behind the design. There could be plenty of reasons such as additional future data sets or design decisions that you simply aren't privy to. Or often the reason is related to non functional requirements for example the fact that most companies live and die by enterprise support.
Before criticising something as "resume driven development" it might be better to actually have a detailed conversation first.
I know enough of the current data pipeline and strategic roadmap to know that the proposed solution is overkill for the foreseeable future and doesn't actually address the underlying problems. Just because he's the architect doesn't mean everyone else is an inexperienced junior individual contributor.
I'm not even sure it's just to ensure employment; that's a very simplistic explanation.
Languages and frameworks are how programmers communicate with each other. The same argument could be made for the English language. Developers will naturally congregate around common language because there is value in that. It's wrong to dismiss that value proposition as mere pop culture.
I'm not going to argue for or against the existence of frameworks however any frameworks that exist become part of the conversation. They're a new set of nouns, verbs, and grammar to learn. And programmers will naturally try and avoid unnecessary duplication of this common language and focus around a few frameworks.
Personal anedocte: I decided to become a developer and studied first Javascript itself, then React; exactly for the reason of employability. A month ago I started at my first dev job, at a great place.... using Ember! :) I never had touched Ember before, and nothing on React around here.
Comments
Alan Kay was right, programming is pop culture.
It's increasingly harder to find non-legacy single page apps that aren't using React or Angular (Vue and Ember are distantly trailing behind). Corollary: it's increasingly harder to find jobs for anything other than React or Angular.
After technology du jour becomes popular, people will use it not because it's good or even necessary, but because it will ensure their employment. And then the rationalizations sink in afterwards.
The worst part about this is that it makes people (at work or in side projects) use these and other frameworks for every project ever for the resume padding. Doesn't matter if it's a CRUD app that just needs a form - it has to be a complex web app with a GraphQL backend and 50mb of React frontend.
Resume driven development is the way to go. Fulfilling the business case with minimal effort is good for the business but really bad for the engineer. You need microservices, NodeJS, react, cloud and whatever to stay employable. Even your own company won't be grateful for delivering a simple and robust solution.
Boy do I disagree with just about everything here. You need to keep your skills up to date, this is correct. Absolutely.
I think it's a much more important skill to acknowledge that you don't need things like microservices, node, and react when you can deliver a simple, robust solution without any of that stuff.
This is the difference between how it should be, and how it is. When you solve something simply and pragmatically it won't impress the non-technical or semi-technical manager. They also want to see microservices, bells and whistles.
Believe it or not for many managers "I refactored something and fixed the problem in an hour" isn't very desirable. When you go to your next interviewer they won't be impressed either, though they absolutely should be.
who is the gatekeeper in the company that is going to say "we don't need this"? Everybody has a vested interest in resume driven development, and these days "netflix/google/amazon do it, so we should too" seems to be like the good old "nobody got fired for buying IBM" (whether or not doing what a company at 100x your scale does makes sense)
The problem is when you look for the next job or even when the next project starts at your company you won't get credit for delivering a pragmatic solution. They often will bring in new people who have the cool stuff on their resume.
I agree with you that it should be that way, but in my experience it isn't. Jumping on the latest shiny stuff is a better strategy for most devs.
Well it took about 4 years for NoSQL fad to die out so I keep my fingers crossed.
Wow, no shit. A database that was made 21 years ago and is still maintained is actually better - who would've guessed?
Hard to find? How about the wast majority of apps don't use react or angular. Seriously, let's get out of the echo chamber that is HN.
I don't think they're wrong; so many listings ask for SPA frameworks (specific ones at that) even if the business being supported has no need for it.
Sorry, I should have qualified it as Single Page Applications, not web apps in general. Still, hard to find a front-end job that isn't about SPA anyways.
If you're going to make a SPA, why the heck wouldn't you use one of the frameworks that has tons of tutorials, walkthroughs, supporting libraries, and a zillion asked and answered questions on SO? In other words why not use one of the top 5 frameworks of the current time? It seems efficient to do so to me.
It's expedient for many reasons to use a major framework, but it doesn't mean there are no drawbacks.
There are learning curves, inner platform effect (have to do the framework way of doing things), major breaking changes and outdated information, opinionated authors you may not agree with, huge dependencies for users to download, performance bottlenecks and gotchas arising from not using the framework properly or even the framework itself is slow. These things are basically guaranteed.
My personal problem is that people start to present themselves as "React" or "Angular" developers, which is kind of scary for me personally.
It is also hard to explain that you can pick up their framework (e.g. switch to Vue.js from React), many companies just say "no" unless you can provide strong experience. Some companies have better policies and they insist only on core knowledge and principles, but, unfortunately, I personally find them to be in a minority.
TBF I think it's driven more by recruiters demanding it than programmers wanting to brand themselves that way.
Yep. When I'm working on my resume it's a balance of trying to use the right relevant buzzwords to get past HR and enough content to get a callback from the person hiring. In my experience on the other side, HR doesn't often know that Rails implies Ruby or React implies JavaScript. Wrong buzzwords === wrong experience and not a fit for the job.
Many, many code horrors exist today due to a deep and abiding fear developers have of appearing insufficiently smart.
Most of the web apps that are being built today have no need for a complex front end and, if they do, it's only in a few places. But, as you quote, programming is pop culture, so every new Form => Datastore app is going to be built using a toolchain more complicated than quake was built with.
Backend Python guy with no dog in this fight.
Wouldn't that also be the case if, for example, React/Angular were demonstrably superior technologies to the alternatives? groupthink doesn't have to be the only explanation.
JavaScript is the defacto standard... despite glaring issues and confusion (== vs === for example).
PHP is a massive player... despite incoherent implementations, inconsistent name spaces, glaring holes in functionality...
Both of those are popular not because they are the "Best"... but because they are popular. They came out at the right time and got the momentum in the right spots.
Granted... some of that might be my own opinion, but those languages have MASSIVE issues and shortcomings. They aren't at the top because of "demonstrable superiority". They are at the top in spite of the issues.
The reason they got popular because they solved a need, if I am not mistaken making dynamic web pages was a pain before PHP, PHP made it easy.
The "best" language is useless if most devs find it hard to use.
I'm building my new front around two cutting edge technologies, jquery and bootstrap. My UI should be fairly simple, why complicate development and bloat the download?
Utter nonsense.
Developers use these frameworks (a) because they like it, (b) because there is a wealth of knowledge on the internet about how to fix every little problem, (c) because it allows them to be productive with their peers and (d) because often they learn something new. People get bored doing the same thing over and over again for 30 years like you seem to be advocating for.
Imagine going to a doctor and getting a prescription because "they like it".
Let's hope they're using the same version you're using.
Productivity without a framework must be impossible...
They learn something about the framework at the present time, which may be worthless after the next breaking change, and is not generally applicable to the web platform itself.
You are underestimating the appeal and intellectual stimulation gotten from learning something new regardless of merit.
I have some very troubling news for you...
It's not utter nonsense. I've seen it happen time and again in multiple jobs.
Right now at my current employer "we" are about to embark on replacing our entire data pipeline with a very popular queuing system designed to process hundreds of GB or more of data per day. Our current pipeline moves a few tens to hundreds of MB per day (not second, minute or hour) from the point of intake to our internal data stores. There are two reasons as I see it for the choice: resume driven development by the "architect" who proposed it (and management who want to put the management portion on their resumes) and laziness to address other issues regarding why there are delays at certain points in the pipe.
You by your own admission have no idea what the architect was thinking and the motivations behind the design. There could be plenty of reasons such as additional future data sets or design decisions that you simply aren't privy to. Or often the reason is related to non functional requirements for example the fact that most companies live and die by enterprise support.
Before criticising something as "resume driven development" it might be better to actually have a detailed conversation first.
I know enough of the current data pipeline and strategic roadmap to know that the proposed solution is overkill for the foreseeable future and doesn't actually address the underlying problems. Just because he's the architect doesn't mean everyone else is an inexperienced junior individual contributor.
I'm not even sure it's just to ensure employment; that's a very simplistic explanation.
Languages and frameworks are how programmers communicate with each other. The same argument could be made for the English language. Developers will naturally congregate around common language because there is value in that. It's wrong to dismiss that value proposition as mere pop culture.
That common framework should be the web platform itself, not the various scripts on top. Hyper-specialization leads to risk of extinction.
I'm not going to argue for or against the existence of frameworks however any frameworks that exist become part of the conversation. They're a new set of nouns, verbs, and grammar to learn. And programmers will naturally try and avoid unnecessary duplication of this common language and focus around a few frameworks.
Personal anedocte: I decided to become a developer and studied first Javascript itself, then React; exactly for the reason of employability. A month ago I started at my first dev job, at a great place.... using Ember! :) I never had touched Ember before, and nothing on React around here.
sad but true, this echos much of my own observations in the industry.