Yes. At least since late '90s, and certainly the last 2 decades.
I blame the rise of frameworks, libraries, and IDEs. It’s easier for someone who knows nothing to throw some software together and ship it. In the good old days, all software had to be written by someone who knew what they were doing, often in difficult tools. You had to think ahead and write code correctly, because you couldn’t just ship patches every week.
And as junior devs get replaced by AI, there won’t be any experience for any of them to learn how to do that.
I blame the rise of frameworks, libraries, and IDEs. It’s easier for someone who knows nothing to throw some software together and ship it.
I very much disagree with this. Yes to an extent you don’t need to know as much as you might have in the past but if we had to constantly reinvent the wheel, I don’t think we would have nearly as many people entering/remaining in this field. Additionally well written frameworks and libraries can actually make your code safer since you don’t have to reinvent the wheel and discover the pitfalls all over again. IDEs are also a net positive IMO. Errors next to the line of code that caused them, breakpoints, interactive debugging. These are all things I personally would find hard to live without. Necessities? Technically no. But good god do I not want to have to read build output unless necessary.
If you can only hobble along with tool support, you never understood what you were doing. You don’t have to rewrite everything from scratch, but if you can’t, you lack the skills to use them effectively, and can’t ever improve on them. And like I say, soon AI will replace those consumers.
Compilers are perfectly able to tell you the line of an error, you can use a debugger without the IDE, I run lldb or the Chez Scheme debugger all the time, but I understand what the tool’s doing.
As long as that growth curve continues there will not be enough teachers, role models, and leaders. It means that most software teams will remain relatively unguided, unsupervised, and inexperienced. […] It means that the industry as a whole will remain dominated by novices, and exist in a state of perpetual immaturity.
Not sure if the data can be confirmed or not, but if that’s the case it will be difficult to maintain the best practices in our industry.
I blame the rise of frameworks, libraries, and IDEs.
My thoughts exactly. Frameworks on top of frameworks with a lot of cruft that will incrementally make software slower and buggy.
That, coupled with the fact that business owners just want things shipped. Quality aside, I dont even think they care about products being good anymore 🥲
I blame the rise of frameworks, libraries, and IDEs
Without good libraries and frameworks, we can hardly get any software working in today’s environment. We get stuck with a slow development cycle and have software that doesn’t do what the users want of it. A few years ago, I was at a customer using an old Linux distribution at their customer’s site. For contractual reasons that was not upgrading to the latest version, they had skipped keeping up to date with changes as they came. Every step of development became a hassle and the good programmers there were not able to deliver features at any predictable rate. There were issues with HTTPS, most webservers of today mandate at least TLS1.2, but when the OS only supports SSLv2 and SSLv3, and TLS1.1, connecting to the internet, well gets hard.
Having to develop all functionality from the ground up, makes no features needed by the customers ever released. With most developers I have worked with using good libraries also makes the implementations less prone to have serious bugs in them.
What is a new person supposed to do to learn then? I’ve been stuck trying to figure out what the 5-8 different services, frameworks, libraries, and IDEs all do and I feel very overwhelmed.
I disagree to some extent. I could never have had a career without Visual Basic and Access. Now in my retirement, I struggle mightily to put together all the pieces required. You might say that getting me out of the field is a good thing, but without masters creating tools and tutorials for journeymen and women, we will forever need the masters on the front lines instead of leveraging their mastery for more valuable ends.
Yes. At least since late '90s, and certainly the last 2 decades.
I blame the rise of frameworks, libraries, and IDEs. It’s easier for someone who knows nothing to throw some software together and ship it. In the good old days, all software had to be written by someone who knew what they were doing, often in difficult tools. You had to think ahead and write code correctly, because you couldn’t just ship patches every week.
And as junior devs get replaced by AI, there won’t be any experience for any of them to learn how to do that.
I very much disagree with this. Yes to an extent you don’t need to know as much as you might have in the past but if we had to constantly reinvent the wheel, I don’t think we would have nearly as many people entering/remaining in this field. Additionally well written frameworks and libraries can actually make your code safer since you don’t have to reinvent the wheel and discover the pitfalls all over again. IDEs are also a net positive IMO. Errors next to the line of code that caused them, breakpoints, interactive debugging. These are all things I personally would find hard to live without. Necessities? Technically no. But good god do I not want to have to read build output unless necessary.
A good IDE also helps you make better refactoring, making the code so much easier to read. The main goal of any code.
If you can only hobble along with tool support, you never understood what you were doing. You don’t have to rewrite everything from scratch, but if you can’t, you lack the skills to use them effectively, and can’t ever improve on them. And like I say, soon AI will replace those consumers.
Compilers are perfectly able to tell you the line of an error, you can use a debugger without the IDE, I run lldb or the Chez Scheme debugger all the time, but I understand what the tool’s doing.
In 2014 Robert Martin claimed that number of developers doubles every 5 years and says:
Not sure if the data can be confirmed or not, but if that’s the case it will be difficult to maintain the best practices in our industry.
My thoughts exactly. Frameworks on top of frameworks with a lot of cruft that will incrementally make software slower and buggy.
That, coupled with the fact that business owners just want things shipped. Quality aside, I dont even think they care about products being good anymore 🥲
Without good libraries and frameworks, we can hardly get any software working in today’s environment. We get stuck with a slow development cycle and have software that doesn’t do what the users want of it. A few years ago, I was at a customer using an old Linux distribution at their customer’s site. For contractual reasons that was not upgrading to the latest version, they had skipped keeping up to date with changes as they came. Every step of development became a hassle and the good programmers there were not able to deliver features at any predictable rate. There were issues with HTTPS, most webservers of today mandate at least TLS1.2, but when the OS only supports SSLv2 and SSLv3, and TLS1.1, connecting to the internet, well gets hard.
Having to develop all functionality from the ground up, makes no features needed by the customers ever released. With most developers I have worked with using good libraries also makes the implementations less prone to have serious bugs in them.
What is a new person supposed to do to learn then? I’ve been stuck trying to figure out what the 5-8 different services, frameworks, libraries, and IDEs all do and I feel very overwhelmed.
I disagree to some extent. I could never have had a career without Visual Basic and Access. Now in my retirement, I struggle mightily to put together all the pieces required. You might say that getting me out of the field is a good thing, but without masters creating tools and tutorials for journeymen and women, we will forever need the masters on the front lines instead of leveraging their mastery for more valuable ends.