|
I agree. He sounds old and resistant to change. I'm sure if he was coding before OOP came around he'd be saying the same thing about OOP being a waste of time.
Jeremy Falcon
|
|
|
|
|
LOL, I suspect Uncle Bob is one of the people who came up with the Agile Manifesto. I know he's a huge fan of Agile and all things TDD. Resistant to change...?
Back in the 60s and 70s when programming became a thing, there was some scientific rigour behind it. It came about at Universities, business labs and places of learning.
Nowadays anyone with a computer connection can become a "programmer". Hell, I did!
But the mantra nowadays seems to be "give me a way to do it faster and without so much hassle" (i.e. so I don't have to fix so many bugs).
No one makes an effort to learn to program properly anymore, so they just keep sticking language and framework bandaids over the problems. So yes, churn.
|
|
|
|
|
|
The day is coming when we will write programs by attaching 2D blocks to each other, then viola, we have a program! (I think MS has already done this with scratch, MFC windows, and C# Forms/WPF. Some tools can translate a flow chart to code.)
|
|
|
|
|
Heheh you go do that, and enjoy. I'll be developing the IDEs that give you the 2D blocks to build your software with
|
|
|
|
|
No offense intended (but probably unavoidable), but you sound young and too cocky and naive to consider the experienced perspective of older folks who've been there and seen a bit more than you.
If you think 'goto' is evil, try writing an Assembly program without JMP.
|
|
|
|
|
Vark111 wrote: Regardless if you're successful or not, the attempt is often far more important than the result.
Tell that to the surgeon who says, "Oops" while trying a new innovative procedure during your surgery.
|
|
|
|
|
raddevus wrote: Tell that to the surgeon who says, "Oops" while trying a new innovative procedure during your surgery.
Well, that's a good point, and maybe what Uncle Bob is railing about - if you'll permit me to extend the metaphor - is the fact that far too many of us surgeons are trying out these new innovative techniques on live patients (live projects), and not spending enough time trying them out on pigs and sheep (Test/PoC projects)?
That's a valid point of view, but it doesn't seem to come across in his post. His article seems more along the lines of "if existing tools don't support it, then don't even bother".
|
|
|
|
|
Vark111 wrote: but it doesn't seem to come across in his post
I definitely see your point of view.
Great discussion. Thanks for adding to it. Your additional examples were really great.
|
|
|
|
|
Uncle Bob emphasizes how much we lose by continually changing frameworks, languages, libraries, etc.
When we keep the same language, framework, and libraries for a longer period of time, we get better IDE's that handle them, better documentation that describes them, better stability and robustness (and maybe even better new libraries that work with them).
We should only change when the benefits of the change are high compared to the costs of the change. We're in a time period now when the benefits are low and the costs are high.
|
|
|
|
|
Yes. This.
I'm normally in agreement with him, but he's making some strange assumptions here that are not really obvious.
For example:
1. Who says that these experiments are slowing people down? Some people are slowed down, the majority isn't.
2. If those people would be concentrating on a handful of languages, would they agree on anything? Or would you just have more different frameworks for less languages?
3. He's not taking taste into account. People work faster in frameworks/languages they like. So programmers who don't like Bob's chosen 5 are out of luck?
Also, some people (like me) like learning new languages. Why take our fun away?
|
|
|
|
|
While the old and seasoned side of me agrees with this, I don't think it's a waste of time to challenge the norm. It's how we evolve. I'm a slow-to-move dinosaur myself, for those very reasons he mentioned. I didn't even care about .NET for years until I had to for work... because what's the point? I could do what I needed to do already.
Libraries like React are fantastic IMO. Thinking it's the next holy grail however is immature and silly. The pros know this, which is what the article suggests as well. But, I for one am glad someone decided to give it a go and make a lib that improves upon something.
I totally understand the "shiny new button syndrome" by newbs. But, every now and again, change is warranted.
It's the information age man. Too much clutter and not enough content. But sometimes there's content. Ya know.
Jeremy Falcon
|
|
|
|
|
I think the point Uncle Bob was making is the point you are making also.
He's saying, "Dont' just throw out the old stuff because it is old."
Instead, see it as a foundation of work that allows us to build further.
We probably couldn't have gotten to a good functional programming without going through and learning OOP.
However, don't believe that OOP is just old stuff now either. It is a foundational element to software development.
I think he is also attempting to say that there is a foundation of good software development methodology (the marketized names screw it up in most people's heads though) and we should gather those and use them throughout even as new technologies are born anew.
|
|
|
|
|
Well to that extent I agree. Personally, I still think C is a viable language for certain projects, and I'd never want to throw it away. But, C is also one of my favorite languages with a special place in my geek heart; so I'm already biased towards it.
I have no desire to use COBOL, even though I'm sure decades ago the same thing was said of COBOL as we're saying about OOP right now. I'm sure it has its merits too and served a purpose as well an evolutionary step towards the next. Doesn't mean I'd use it today though.
Not that I'm anti-OOP, can't be in this day in age. Guess it's all about balance. Don't change for change's sake, but change for something that's genuinely better. Unfortunately, that's not always the case and some folks get caught up in the hoopla of new buzzwords and changing because it's cool - not necessarily prudent. So, I totally get it, but not to the extent we become a dinosaur and thus the next generation of COBOL guys who aren't relevant anymore.
Jeremy Falcon
|
|
|
|
|
Great discussion and I agree with what you are saying. I really love C too and have been writing embedded AVR-C for Atmel (ATMega328) chips just recently.
Jeremy Falcon wrote: So, I totally get it, but not to the extent we become a dinosaur and thus the next generation of COBOL guys who aren't relevant anymore.
Totally agree with this too. Some people hang on to the past just because they don't want to change.
Balance is key.
|
|
|
|
|
Jeremy Falcon
|
|
|
|
|
Exactly this. Chimps who don't have any analytical skills rush toward the next new thing because "It's new! It will solve all our problems!" instead of actually analyzing whether it is better.
At the same time, dinosaurs stick in the mud and can hack something together using an antiquated framework.
I'm not sure where the line is, but we need to keep pushing forward, while at the same time, only introducing new tools when they make sense for our project, not just because.
|
|
|
|
|
It's been true for years.
The only places where there can be gain are in applications and in libraries/frameworks for handling new requirements (e.g. for working with 3D moving images, and the like, when the technology for displaying it becomes available).
I've hardly ever seen new languages as increments in technology. Whenever they've contained something new, it could invariably have been added to an existing language at much less cost (of time and effort in learning to use it).
OO? Sure, it works, but I was coding objects in COBOL more than 30 years ago, without having to change anything about the language. I was ordered to read Booch, so that we could migrate -- at Huge expense -- to some new language (I don't even remember which one, now, but it wasn't SmallTalk or Pascal), and the entire book got no more than a "meh" out of me.
So I knocked up a presentation to show how we'd already been doing it for years, but without having given it a mysterious aura, and showed the costs of the two learning curves involved (one curve for ripping out what we were using and learning everything from scratch, and the other for memorising a handful of different names for the structures and processes we were already using).
Linear, object, functional, kabibbifuffle -- they're all just ways to massage the ones and zeroes; they can all do it all.
An improved IDE is worth a hundred times more than any new language, as is any library/framework that reduces the level of detail that you have to delve into.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Mark_Wallace wrote: OO? Sure, it works, but I was coding objects in COBOL more than 30 years ago, without having to change anything about the language. This is the voice of experience speaking. I remember thinking something similar for my C projects. Took me a while to jump unto the OOP bandwagon being so awesome it cures cancer. Just like it's gonna take people a while these days to jump onto the next thing.
Change is slow.
Mark_Wallace wrote: An improved IDE is worth a hundred times more than any new language, as is any library/framework that reduces the level of detail that you have to delve into. Agreed. Although, having gotten used to some newer languages (in web dev at least) it's rough to go back.
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: Change is slow. There's the rub.
Change that doesn't really change anything, but only adds a few shortcuts, isn't real change, so why bother? If the very same shortcuts can be added to just about any language, with a Lot less effort than getting everyone to learn the p!ssballing intricacies, foibles, and shortfalls of a new one, then you've saved enough to pay for everyone's Christmas bonus.
Jeremy Falcon wrote: having gotten used to some newer languages (in web dev at least) it's rough to go back So use 'em!
The language doesn't make a blind bit of difference to the user/customer/visitor, so twiddle with the ones and zeroes in the way that's most efficient for you!
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Mark_Wallace wrote: Change that doesn't really change anything, but only adds a few shortcuts, isn't real change, so why bother? If the very same shortcuts can be added to just about any language, with a Lot less effort than getting everyone to learn the p!ssballing intricacies, foibles, and shortfalls of a new one, then you've saved enough to pay for everyone's Christmas bonus. I agree, which is what I was speaking about earlier in this thread. Not all change is warranted or justified, but there times when it is. Turning a blind eye to change is called growing old and not adapting to the current world. Living in yesterday. So, it doesn't mean it can be dismissed altogether.
Mark_Wallace wrote: The language doesn't make a blind bit of difference to the user/customer/visitor, so twiddle with the ones and zeroes in the way that's most efficient for you!
You're preaching to the choir. I agree. My point with this though is sometimes your environment changes, and for the better. Refusing to think there is another way that may be more beneficial is just a foolish as the new shiny button chasing. It's about balance. Sometimes things need to be questioned. Sometimes not. But then sometimes so.
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: growing old Hey! I just had my 17th birthday, a few days ago*!
* Who the Hell wants to be an adult?
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Mark_Wallace wrote: Hey! I just had my 17th birthday, a few days ago*! Oh wow, well happy birthday man.
Mark_Wallace wrote: Who the Hell wants to be an adult? It comes in handy when you want to buy alcohol, and you learn stuff. Wisdom and all that. Only downside is you die.
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: It comes in handy when you want to buy alcohol Luckily, I'm 17 that looks like 57, so I can get away with it.
The fact that calendars say I'm actually 57 is bollocks. I don't live by Gregorian calendar rules; they're way to old to take seriously.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Ah I see, well in leap years, you're like what 14? Getting younger every day.
Jeremy Falcon
|
|
|
|
|