|
Well, to a nice little cul-de-sac with a quaint park and a duck pond.
|
|
|
|
|
How do we preserve the wisdom men will need,
when their violent passions are spent?
- The Lost Horizon
|
|
|
|
|
Maybe a JavaScript developer.
|
|
|
|
|
It's implemented in hardware?
|
|
|
|
|
|
|
"Uncle" Bob Martin - YouTube[^]
Robert Martin on problems with software development and OOP.
Rather long, but worth it.
Skip the first few minutes of the video
|
|
|
|
|
After about 15-17 minutes he brought up the very issue of quick-and-dirty and reminded me why I hated university lectures back than...
It is a 'laboratory' lecture, that elusive to the real life development...Bad or good code is not a choice you made...
He's talking about a new system, developed from scratch with all the time you can master and no problem of founding...
...
But I went on
...
After all that introduction he comes up with OOP, like it is a cure for bad code - now that's really OMG!
...
I'm going to sleep...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Kornfeld Eliyahu Peter wrote: It is a 'laboratory' lecture, that elusive to the real life development...Bad or good code is not a choice you made... He does raise an interesting question though.
You wouldn't want a surgeon, or a builder, or whatever profession, making the same kinds of decisions developers make, "let's fix this quick and dirty". More importantly, they don't have to because no one want them to!
Then why do we developers have to?
And what strikes me most is that even these new systems, built from scratch, turn out garbage (I've seen a few)!
Just look at QA, most developers just don't understand their profession.
It's sad, really...
Kornfeld Eliyahu Peter wrote: After all that introduction he comes up with OOP, like it is a cure for bad code - now that's really OMG! Nope, but some code literacy among programmers wouldn't hurt...
|
|
|
|
|
An interesting lecture, thanks, Sandor. I enjoyed Bob's water-molecule riff, but was baffled when he abruptly simply dropped the subject and switched to talking about SOLID. I also disagree with his statement there were only 100 programmers in 1960.
As someone who had some experience with Objective-C, back when, I agreed with his judgement that it was a terrible language.
His dismissive (jocular) statement that C#'s Delegates are not function pointers puzzles me. I wonder if it's the multi-cast feature of Delegates that influences his "judgement" ? On the other hand, I have trouble understanding why C# doesn't have an equivalent of 'Action and 'Func that is not a multi-cast Delegate under-the-hood.
I found his comments on polymorphism and flow-of-control beginning about 49:25 very interesting, although I am having trouble relating that to what you actually do with interfaces in C#; I have no background, unfortunately in C/C++.
Sander Rossel wrote: Just look at QA, most developers just don't understand their profession. Can you really generalize from what you see on QA to a hypothetical "profession" ? I can't, although "MacBeth," Act I, Scene VII, comes to mind: "... we but teach bloody instructions, which, being taught, return To plague the inventor."
«In art as in science there is no delight without the detail ... Let me repeat that unless these are thoroughly understood and remembered, all “general ideas” (so easily acquired, so profitably resold) must necessarily remain but worn passports allowing their bearers short cuts from one area of ignorance to another.» Vladimir Nabokov, commentary on translation of “Eugene Onegin.”
modified 31-Jan-16 3:20am.
|
|
|
|
|
BillWoodruff wrote: was baffled when he abruptly simply dropped the subject and switched to talking about SOLID That was a bit weird, yeah
BillWoodruff wrote: Can you really generalize from what you see on QA to a hypothetical "profession" ? I can't Neither can I. I'm generalizing from what I see in real life. People with technical degrees and additional certificates that write the biggest crap you've ever seen. Professional external parties who put seniors on a job and deliver utter nonsense. People with varying time in the field (ranging from 30 to 5 years) who put all of their code in a single WinForm, who can't seem to abstract away parameters and duplicate large chunks of code, who put an invisible TextBox on a Form to hold some values (in-memory variables is a difficult concept I guess), who write 700 line functions, who write a unit test and now believe their code is tested and error free (while it very much isn't), and I could go on. As said some of these people have many years of experience, they're lead developers, "senior" developers, consultants, and even technical managers. They take home good salaries!
Add to that QA and I can safely say that 99% of the people are just a bunch of bunglers.
Did you notice I said "people" and not "developers"? That's because I noticed many other people don't really know what they're doing either. Most people are really just monkeys who learned a trick. They repeat that trick from 9 to 5 and when they get home they turn on the tv for some brainless entertainment. I can't blame them, they have all the right to and sometimes I prefer doing just that as well.
Of course I'm fine with people being total tools, makes it a lot easier to stand out in your profession
Luckily some of that 1% of good people are here on CP
BillWoodruff wrote: "MacBeth," Act I, Scene VII, comes to mind: "... we but teach bloody instructions, which, being taught, return To plague the inventor." That's so true for QA
|
|
|
|
|
Sander Rossel wrote:
People with technical degrees and additional certificates that write the biggest crap you've ever seen. Professional external parties who put seniors on a job and deliver utter nonsense. People with varying time in the field (ranging from 30 to 5 years) who put all of their code in a single WinForm, who can't seem to abstract away parameters and duplicate large chunks of code, who put an invisible TextBox on a Form to hold some values (in-memory variables is a difficult concept I guess), who write 700 line functions, who write a unit test and now believe their code is tested and error free (while it very much isn't), and I could go on. As said some of these people have many years of experience, they're lead developers, "senior" developers, consultants, and even technical managers. They take home good salaries! Well, that's a well-turned Jeremiad for you.
Assuming the above: if I come back to the U.S., I might be employable, then
«In art as in science there is no delight without the detail ... Let me repeat that unless these are thoroughly understood and remembered, all “general ideas” (so easily acquired, so profitably resold) must necessarily remain but worn passports allowing their bearers short cuts from one area of ignorance to another.» Vladimir Nabokov, commentary on translation of “Eugene Onegin.”
|
|
|
|
|
BillWoodruff wrote: Assuming the above: if I come back to the U.S., I might be employable, then No, because the people that would do good to hire you are a bunch of bunglers as well
|
|
|
|
|
Sander Rossel wrote: No, because the people that would do good to hire you are a bunch of bunglers as we But, what if one of my talents that is not trivial is the Shia Sufi art of taqiya, and I can convincingly appear as a fellow-bungler ?
Interviewer: "How would you define 'interface' ?"
Bill: "Well, that's kind of like when you have your back up against the wall because the program manager has finally figured out the 90% of your code that actually works is copied from StackOverFlow."
Interviewer: "It doesn't have anything to do with FaceBook ?"
Bill: "Their API is still too dirty to use, so I would always stick with SOAP."
Interviewer: "Outstanding; I'd always wondered what that meant !"
«In art as in science there is no delight without the detail ... Let me repeat that unless these are thoroughly understood and remembered, all “general ideas” (so easily acquired, so profitably resold) must necessarily remain but worn passports allowing their bearers short cuts from one area of ignorance to another.» Vladimir Nabokov, commentary on translation of “Eugene Onegin.”
|
|
|
|
|
Now I want to hire you!
|
|
|
|
|
Sander Rossel wrote: or whatever profession But that's the exact point...Developer is not a 'whatever profession'...This field - as with others - has its rules...
The parallel he made is just not right...Let us think about a combat-field surgeon of WWI...So take the leg off now, or think about the option of saving half, but maybe meantime the wounded will die of blood lost...
Just like with those two kind of surgeons, developers are also differ and for me, not even mentioning that is a big problem...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
It's a little sad that you should compare development with a surgeon in war time...
I totally get the comparison, but we're not at war. We're sitting behind desks writing software that will hopefully make the world a better place.
So why does it sometimes feel like a battlefield?
Companies somehow want IT, but they don't want to spend time or money on it. It should be quick and cheap.
I fully agree with Robert Martin that fast coders go slow. Going fast now will cost you a lot of time and money later.
And SOLID will not fix these problems, I agree.
What certainly won't fix them is a Windows Form, or MVC Controller, with all application code cramped in it (from data access, to business rules, to actual GUI code). What also won't help is functions that have 100's of lines of code. What's maybe even more dangerous is a unit test that does nothing, giving a false sense of safety.
Yet I've seen all those things (and worse). That's not a matter of time or money, it's a matter of ignorance, not knowing your profession.
As I said in my reply to Bill above, I believe 99% of the people are a bunch of bunglers, monkeys who've learned a trick, tools. Now that is a problem that SOLID can solve. And not just SOLID, but more generally knowledge. What can I do in this language, how can I solve my problem and still write decent code? If more people knew this we wouldn't be dealing with "smart" and "creative" code so much.
And that's why I think theory matters. In theory we can write awesome code, in practice it'll be a little less awesome. Unfortunately most people can't even write decent code in theory and it'll be even less in practice!
If I were a business I wouldn't spend time and money on such bunglers either
|
|
|
|
|
Sander Rossel wrote: but we're not at war Right. In most cases we are not at war...When I get Office, or a game or some other ready-made software, I DO expect it to be in the best shape it can be...
However, there are areas when the time of response is more critical than ANYTHING else...
I had the opportunity to work with the police and army and flight authorities...sometimes the response measured seconds!!!
I missing that part from the introduction...very much...
As for SOLID...There are more and more who took a 5 days course and now they are developer...And learning is the key to educate them, but why SOLID...Teach them basic principles that beyond OO or Agile...SOLID implies that you know a lot already...There are awful lot of theories way before SOLID...
(I for instance learned most of the basics on mainframe...never heard of SOLID there, but learned all those thing step-by-step under different tags...)
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
|
Clean code is extremely important...We, at my company, have legacy code written in COBOL that can be read like a kid's story...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
I'd like to read that
|
|
|
|
|
Sander Rossel wrote: ...writing software that will hopefully make the world a better place.
Sir, I admire your optimism. It's not always like that.[^]
|
|
|
|
|
Yes, as one of my past colleagues used to say, "we're not making a heart/lung machine". (We were making an automated toll-road service center.)
There are developers out there in situations with a need to get it right the first time every time, but they are a very small percentage. The great majority of us have much more flexibility to apply "quick and dirty" to areas of low-criticality and then spend more time in areas that require higher quality right now.
(I just finished watching all eleven seasons of MASH.)
|
|
|
|
|
he comes up with OOP, like it is a cure for bad code . Not a cure but highly to be survive and stay for a longer time from bad code infection.
EA
|
|
|
|
|
And you are interested in his watch?
|
|
|
|
|