This has been, and continues to be a dangerous and disturbing trend.
And you dig a little deeper into so many of these "trendsetting" technologies and you find strange perversions (I know these are a little dated, but bare with me, please...)
1. All the hype about no-sql databases ultimately lead to tradeoffs in the CAP theorum. While it's true sometimes you don't need to guarantee consistency, I've never had the luxury to work on such a system. And, why the hell would I use a datastore if I didn't want my data to be consistent? If I didn't care, I'd have used a file. (or dev/nul!)
2. "Do all" frameworks (Spring, etc.) hide so much of the ecosystem, you end up having to relearn the basics (i.e. you don't need to use the new() operator anymore, the framework will create everything for you) What the hell was so wrong with using "new()"? Next thing you know, using "if()" statement will be bad because it binds your business rules and source code too tightly; you need to use the latest BPM tool to do all your if statements...
3. Maven simplified the build system so much, you have to essentially "program by xml". Gradle comes along and saves all that, and now we're back to writing build systems with code. Why the hell didn't I just write code in the first place? That's what I would have done 20 years ago!
4. .Net isn't the future language for Windows development, its, its... its... Javascript?
WTF???
Come on, admit it, at one point you actually thought XML was going to change the world.
Can you imagine being a software engineer in twenty years time? Not every system gets re-written in the latest laguage-du-jour (e.g., there's still a lot of COBOL out there). It's going to be hell... 20 languages on the backend, 10 frameworks on the front end, and that's just the first support call of the day.
I'm very concerned about the future of this industry. Sure, we'll end up inventing more meta-tools to manage the pile of older tools and their variations, but that will just increase the bug and security hole attach surface.
And you dig a little deeper into so many of these "trendsetting" technologies and you find strange perversions (I know these are a little dated, but bare with me, please...)
1. All the hype about no-sql databases ultimately lead to tradeoffs in the CAP theorum. While it's true sometimes you don't need to guarantee consistency, I've never had the luxury to work on such a system. And, why the hell would I use a datastore if I didn't want my data to be consistent? If I didn't care, I'd have used a file. (or dev/nul!)
2. "Do all" frameworks (Spring, etc.) hide so much of the ecosystem, you end up having to relearn the basics (i.e. you don't need to use the new() operator anymore, the framework will create everything for you) What the hell was so wrong with using "new()"? Next thing you know, using "if()" statement will be bad because it binds your business rules and source code too tightly; you need to use the latest BPM tool to do all your if statements...
3. Maven simplified the build system so much, you have to essentially "program by xml". Gradle comes along and saves all that, and now we're back to writing build systems with code. Why the hell didn't I just write code in the first place? That's what I would have done 20 years ago!
4. .Net isn't the future language for Windows development, its, its... its... Javascript?
WTF???
Come on, admit it, at one point you actually thought XML was going to change the world.
Can you imagine being a software engineer in twenty years time? Not every system gets re-written in the latest laguage-du-jour (e.g., there's still a lot of COBOL out there). It's going to be hell... 20 languages on the backend, 10 frameworks on the front end, and that's just the first support call of the day.
I'm very concerned about the future of this industry. Sure, we'll end up inventing more meta-tools to manage the pile of older tools and their variations, but that will just increase the bug and security hole attach surface.
Ugh... I need a drink.