loading...

The Future of Programming - Rejected!

rwoodnz profile image Richard Wood ・3 min read

Much admired software guru "Uncle" Bob Martin wants to take away all our fun and make us into responsible "disciplined" programmers.

I watched his talk The Future of Programming recently. His beef is that, if we carry on as we are, the authorities will regulate us. So we need to regulate ourselves, make software programming a profession, create and enforce standards, etc etc.

Coming from the 70s dark ages where perhaps most projects were for military, space exploration, or some big industry project you can speculate why he may think this way.

In essense coding requires mathematical nous, and a high level of discipline that older programmers had because they became programmers later in life. Now there are lots of youngsters who don't have the discipline yet and what we do can kill people.

Lol what low percentage of us actually work on software that could end up killing someone. FFS.

Of course there are airplane systems, factory controls, social media tools that encourage suicides and terrorism, etc etc.

However, most of us work in website development helping businesses look good and be more efficient. Even a fintech solution shuffling large amounts of money around needs to be kept in perspective. There are critical parts to the code where errors could make people bankcrupt and there are soft parts that are just about winning and keeping customers with a great UI.

On the other hand a modern take on coding is that it is like writing and should be taught as such in primary school. Some people literally think anyone can do it and everyone should be able to. The bootcamp I went through - New Zealand's Dev Academy - pretty much had this attitude. In retrospect I think they overstate it.

So we have two extremes and the problem is not that we all need to be regulated. Would you force a poet to use a particular style? Does every novel have to have 3 dramatic stages? No. Should an aircraft manual be structured, detailed and constantly updated? Yes.

The issue is that some software development needs more rigor and oversight than others. Where there is development of critical systems for likes of spacecraft and airlines then bring on the regulation. Even if it means people there have to program in last decades' languages when a modern language would be better. There are plenty of people who like the old languages and have the experience to make that code bulletproof.

Segregate that lot and leave the rest of us in peace. We are having fun creatively developing frameworks, languages and solutions at dramatic pace.

There's this idea that young developers are reinventing the wheel all the time because they dont understand enough yet. Is this a case of aging developers who may want to maintain their position in a fantasy heirachy. News flash - very few people care, they are having a ball.

Young people are experimenting, having fun, finding multitudes of ways to express themselves and solve problems with code. The best learning happens through play!

Ok. Let's face it, the amount of effort put into JS in recent years was stupid and unproductive. We ended up with the dueling nightmares of React and Angular. Node was like the warm up performance. We also got a crazy amount of other backend language options. It's all driven a hugely inefficent industy in learning and recruitment.

But for all that, this creative surge got people excited, interested and in my view it's all very healthy. The ease with which people could and can pump out libraries, frameworks and languages has democratised language development.

The lead has been well and truely wrested from the cohort who kicked off this industry so many years ago. Yes they should be respected for it, despite writing huge boring books about subjects such has how to keep your code clean and overcome the defiencies of OO. :)

Out of an apparently ridiculous situation will come better things and like many I'm putting a lot of faith in functional programming. Go on, check out Elm and Elixir if you haven't already. There is huge opportunty for evolution and revolution. Enough to keep young programmers excited for decades to come, and with a lot of the discipline built in!

Otherwise, the populace don't need nostalga buffs telling us what to do, warning that the sky is falling, and taking away our fun.

Posted on by:

rwoodnz profile

Richard Wood

@rwoodnz

Remote developer working in Elm and JS for clients globally.

Discussion

pic
Editor guide
 

I agree wholeheartedly! As Donald Knuth would be pointing out, programming is an art, not a science.

Our entire history is built on the shenanigans of the MIT AI Lab, hacker culture, and a general attitude of playful experimentation. That is what we are.

(Not that I ever take Uncle Bob too seriously to begin with; this just further reinforces that stance.)

 

I believe that it is much harder to answer the question "what is art", then the question "what is programming" (I mean in another way than Knuth said it). But I'm not gonna argue about that

 

Art is easily defined. Art is anything put in a frame which says, this frame contains art. For example, an art gallery is just such a frame. I highly recommend 'The Square' for reference:-en.wikipedia.org/wiki/The_Square_(...

I like the definition by Scott McCloud. Art is anything you do beyond surviving e.g. if you do something which is not required for your surviving this is art. ¯\_(ツ)_/¯

And in all irony, we humans have survived without computers for centuries. So, by that definition, art.

(I'm being pretty solidly tongue-in-cheek now; I know there are computers that are needed for life-critical operations, and anyway, that was deliberately false deductive reasoning on my part just now.)

 

I believe that it is much harder to answer the question "what is art"...

Well said, actually.

I think the overall point is pretty simple: programming is entirely too wibbly-wobbly to be confined to a science. Too nebulous and resistant to solid quantification. There's science in it, like there's science in all art, but "science" doesn't quite define the whole thing.

Or maybe the problem is that we assume science is better defined than it is?

I do love a paradox.

 

IMO we are still discovering areas where regulation might be necessary to protect us from ourselves (or at least snake oil merchants) with software.

The physical world has been here before, and we have many many regulations about the things we make, obvious stuff like: building regulations for houses; safety tests for motor vehicles; seat belts; wiring regulations; etc. etc.

Almost all of these regulations have been created in the past 150 years, as we moved from trusted artisan craftspeople (eg: 'real' architects who designed/built magnificent cathedrals) to mass market, low cost production (eg: local builders who put up temporary housing in the bazaar), and all have been driven by failure, sometimes very big failures, which are still happening today (eg: Grenfell Tower), and we are still adjusting the rules.

Software is already following this pattern, the failures are accumulating in different fields, eg: direct fatalities from Boeing 737 Max deaths, Uber self-driving vehicle killing a pedestrian, Therac 25 medical overdoses; indirect fatalities from social media bullying, ransomware shutdowns of hospitals, digital currency crime, high speed trading making/breaking firms and the people in them (there are regular trader suicides) and the rise of automation pushing people to destruction (recent gunman in Texas). Expect regulation to follow, albeit slowly because the law is an ass (donkey! I'm English).

All that doom & gloom said, I wouldn't expect the fun to reduce, nobody stops people designing, building & indeed trying things themselves, unless it becomes a threat to life or limb (sorry Timmy, you can't pack explosives in your bedroom, and no you shouldn't be releasing malware either!), which is typically already covered by existing regulation :)

 

Uncle Bob stopped being relevant many years ago.

 

Entertaining read ... I also think Uncle Bob's concerns are overblown and don't apply to 95% of software dev. How many of us are automating space rockets or nuclear plants, not that many.

 

Nobody would let uncle bob and his unhinged fanboys anywhere close to automating nuclear plants or space rockets.

Have a look at, say, MISRA-C, it is very much the opposite of all the crap uncle bob is preaching.

He's nothing but a fraud, preying on gullible untrained minds.

 

Thanks for making me chuckle, don't know if your statements are true but for sure they're entertaining :-)

Anyway I agree that we shouldn't take "our" Uncle too serious, reading his stuff is a waste of time that's spent better doing more productive things.

 

Wikipedia anyone?

"Some research results question the effectiveness of MISRA.

In a paper that compares earlier work on MISRA C:1998 with MISRA C:2004, Les Hatton comes to the conclusion that:[24]

In view of the apparent widening influence of the MISRA C standard, this paper attempts to assess whether important deficiencies in the original standard have been addressed satisfactorily. Unfortunately, they have not and the important real to false positive ratio is not much better in MISRA C 2004 than it was in MISRA C 1998 and it is unacceptably low in both."

en.wikipedia.org/wiki/MISRA_C

 

I had no idea he was so controversial, I liked watching his seminars and have to respect my elders. I am a bit shocked by the attack going on above this comment.

 

I wasn't aware of it either. Now reading about Type Wars blog it's quite extraordinary. We need to keep perspective and humour.

 

I think you genuinely missed the point of that entire talk. Maybe someone should add more structure and rigour to English (nope we've already tried that). I suppose everyone will feel their opinions regardless of logic, which probably means we're all doomed.

 

So how about enlighten me as to what was the point then?I'm open to increased understanding.

 

Give a good read to getpocket.com/explore/item/the-com...

I'm new to programming so I am not excluded in the feeling of wanting to revolutionize everything in every conceivable way. That aside however Mr Martin was not only spot on with everything he said in that talk it's especially poignant with the consideration of the recent Boeing debacle, it's a long! Time now they've known there's a problem and have yet to successfully figure it out. It's childish to disregard the type of warning he's giving when people are actually dying because of bad code. The problem isn't simply the result of honestly unknowable interaction either companies and there imploy are with forethought releasing products they know have problems, they had the resources to potentially mitigate, it's walking the line of a public threat.
To try and characterize that talk as some old foggie telling war stories and lamenting lazy youth is either a purposeful sensationalized argument with thought for truthfullness or you missed the fact that we are as a community participating in endangering people when it's absolutely not a necessity for progress or any other goal.

Thanks. I'm not immune to the argument that Bob Martin made in respect to critical systems and the responsibilities and difficult questions that many software developers face. I'm wondering now whether it was my article you are resonding to or one of the commenters.

I see his key point as being that the industry needs to self-regulate before the government does it to us. Note I explicitly stated "Where there is development of critical systems for likes of spacecraft and airlines then bring on the regulation."

I would further speculate that such regulation is better done within the industries concerned and not over software in general. Although that is a whole other discussion.

At least here I argued that some software needs more rigor than others and that for creativity to live and for the industry to thrive, even if it goes on some strange tangents, we need keep the large volume of software development, which is not life threatening, open and flexibible.

I was less impressed by other aspects of his talk which appeared to be at best some some sort of nostelga trip (and surely he regards himself as a nostalga buff anyway) or at worst about reinforcing his position as someone of experience, and therefore presumably of authority.

I am wary of people using that sort of presumed authority and I may have been a bit flippant in closing, although I said nothing about old foggies or lamenting lazy youth! Age has little to do with it and the youth I describe have been very busy.

I would say that when battling ideas that seek to create industry heirachies in places where they will be overkill and potentially damaging to innovation, a bit of push back does not go astray.

On that last point I completely agree. The issue that seems most important is these problems have a possibility of being completely fixed now if given proper attention soon, this is what I gleaned from the talk. With an entire profession having always been half with less than 5 years experience along with the normal averages if human beings I don't see hierarchy being avoided, in fact I'd argue it maybe the only solution to keeping the untalented and inexperienced out of critical systems. Anyone may code but not anywhere as much as I loathe the idea of supporting any form of governance at all, in this particular case we have to do it to ourselves. But I'm hopeful that the power implicit in developing dictates that only the better developer maybe able to govern the worser, which illudes to the meritocracy, we all were told fairytale the world was and should be as youths.

 
Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

The funny part here is that the right discipline of making high quality software have absolutely nothing to do with any of the stupidity he's preaching. This guy does not even understand static typing!

In other words, uncle bob is an idiot and should never be taken seriously.

 

I understand that he is a controversial figure and many people have feelings about him, I don't think this is a good way to deliver the message.

 

He is not "controversial", he is plain wrong, through and through. And exposing a clown for what he is is the only right thing to do.

"He is wrong" yes this is a good approach because you judge his actions not attacking him personally. Even better if you present the list of things and be more precise, for example, "he is wrong about comments and ..."

"exposing a clown..." this is a personal attack, even if somebody is wrong pitchforks and torches isn't a solution. This is bad for many reasons: this behavior fosters hostility, it is indistinguishable from "ad hominem", it doesn't help people to form an educated decision, rather just emotions

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

Let's consider a more extreme example - say, Deepak Chopra. Does anybody really have to waste time debunking all the crap coming out of his mouth? Nope. Anyone with more than two brain cells should see him for a total quack.

Now, uncle bob is very close to being a Deepak Chopra of the software. Is it worth debunking his obvious quackery? Practice shows that it's pointless, anyone with even a tiny bit of education already knows he's a quack, and zealots swallowed his quackery hook and sinker, and are not in a state of mental clarity to even consider any rational arguments. Just like with the Deepak Chopra followers.

You can say that somebody is wrong this is ok, but you can't do personal attacks (there is CoC). There is a difference. The difference is that personal attacks directed on the emotional part of the brain, where is saying somebody is wrong and explaining why is directed on the rational part.

When you try to employ emotion as your explanations this is not different from propaganda. You trying to beat quackery with an approach that is similar to quackery.

If you claim to be a person of science why don't you stick to facts instead of personal attacks?

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

Is it a personal attack to call Deepack Chopra a quack? No. It's stating the obvious. So why would we restrict our language when talking about any other quacks?

I don't have a special opinion about Deepak Chopra. From what I understand - he is promoting alternative medicine, for which we have scientific researches that show it doesn't work (maybe not exactly about his medicine but homeopathy, etc.) If he still claims his medicine works, then it is ok to call him a quack, even more, it is possible to escalate the case to fraud and bring the case to the court. Let's not use Deepak Chopra as a strawman.

Back to Bob Martin. Do you have evidence against what he is saying?

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

Of course, and I listed it right here in this thread. Principles of the actual, real world, regulated high reliability software developmemt, such as MISRA, are evidently incompatible with his made up crankpot ideas.

Also, there is a lot of commentary available on his totally misguided attitude towards static typing, no need to repeat it all over and over again.

This is a red flag for me when I see in thread words like "evidently" and "obvious" more than once, but I don't see evidence itself. What is the relationship between MISRA C and Bob Martin? Did he criticize it? Does it somehow contradict clean code or what?

lot of commentary available on his totally misguided attitude towards static typing

From this, I can conclude that you like static typing and Bob Martin doesn't. Does this justify personal attacks? You can dismiss his comments about static typing instead, for example with researches or personal experience.

Please refrain from personal attacks in the future. I honestly tried to explain why it is bad, I don't know what else to say to make this matter clear to you.

From code of conduct:

  • Using welcoming and inclusive language
Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

but I don't see evidence itself

Read MISRA-C, read uncle bob incoherent ramblings, compare and see for yourself.

Does it somehow contradict clean code or what?

Yes, it does.

From this, I can conclude that you like static typing and Bob Martin doesn't.

You know that this is a wrong conclusion and that this is not what I said.

Once again: uncle bob does not understand static typing. He's got a completely wrong perception of what static typing is, he was called out for his ignorance more than once, and yet he keep repeating his lies. It's not about liking or not liking static typing, it's about not even understanding what static typing is and making no effort to understand. At this point, "quack" or "clown" is not an insult but a 100% accurate and objective description.

Please refrain from personal attacks in the future.

Luckily, uncle bob is not present here, so I'm free to say whatever I like about this pathetic clown.

Once again: uncle bob does not understand static typing. He's got a completely wrong perception of what static typing is, he was called out for his ignorance more than once

Almost no hate speech, almost correct claims. No fact links, but let's leave it for now.

he keep repeating his lies... At this point, "quack" or "clown" is not an insult but a 100% accurate and objective description.

This part contains hate speech. Let me fix this for you:

It seems that Uncle Bob does not understand static typing. He's got a completely wrong perception of what static typing is, he was called out for his ignorance more than once (link1, link2), and yet he keeps repeating his lies wrong beliefs. At this point, "quack" or "clown" is not an insult but a 100% accurate and objective description


Luckily, uncle bob is not present here, so I'm free to say whatever I like about this pathetic clown.

In the interest of fostering an open and welcoming environment, we as moderators of DEV pledge to make participation in our project and our community a harassment-free experience for everyone.

It means that Bob Martin can't participate and get a harassment-free experience. He's been harassed even before he joined.

I don't think Bob Martin needs my protection, the problem here is that it is harassment.

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

Again, a simple test, substitute uncle bob for Deepak Chopra here, will you still be able to say it's a "harassment" with a straight face?

I don't understand which part of my comment you don't understand. I showed text before and after. I quoted CoC. And you again asking me about Deepak Chopra. Help me to understand which part is unclear for you.

It is ok to criticize. It is not ok to assault. If you want to talk about Deepak Chopra make a separate post, present some evidence and find somebody to talk about Deepak Chopra... (Please stop constructing this strawman argument)

strawman
You misrepresented someone's argument to make it easier to attack.
By exaggerating, misrepresenting, or just completely fabricating someone's argument, it's much easier to present your own position as being reasonable, but this kind of dishonesty serves to undermine honest rational debate.


I don't follow Bob Martin work. I searched the internet for "uncle bob types" and now my tail is on fire. He is doing some blatant claims and when people show how he is wrong he compares apple to oranges and says "I don’t know. I’ll let you decide." Which is quite annoying.

Yet this is not a reason to go for assaults. It is ok to criticize though

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

The point I'm trying to make is that there is a certain threshold of being wrong after which any counter arguments, any civil take-down approaches would be counterproductive and perceived by some as legitimising the wrong side. You know, like with, say, climate change deniers - even the mere fact of scientists arguing with them make them seem way more legitimate than they deserve to be.

Beyond this threshold, "quack" or "clown" is not a personal attack, it's just a proper, legit criticism, pointing out the wrong, and yet not legitimising the wrong side by engaging in a respectful argument with them.

No, it is a personal attack. It doesn't lead to constructive conversation. It leads to hate and pitchforks.

I'm not saying that we should tolerate climate change deniers or flat-earthers.

But I'm saying that personal attacks against them:

  • don't put you in a good light
  • don't show why they are wrong
  • increase the temperature of conversation and leads to emotional behavior instead of augmented conversation e.g. you use the same emotional tools that science deniers do. How is that better?

Instead, we should educate people. Show them how to rely on rational arguments, show them how their emotions can be employed to trick them in wrong decisions, show what fallacies are, talk about biases.

Why do quacks exist? Because of lack of education, lack of critical thinking, because quacks use our emotional nature.

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

Yet, I insist. You saw what engaging in a civilised discussion does to legitimisation of the quacks - see the misguided BBC policy for example, when they started to invite climate science deniers "for a balance". If scientists avoided engaging with them in the first place, they'd never get all that screen time for free.

Same goes for pretty much any other form of quackery - anti-vaxxers, flat earthers, white supremacists, clean coders. There's a time for rational arguments, and there's a time for sneering. The quacks audience won't get your rational arguments, they're not even interested in hearing them. Yet they'd welcome your arguments for legitimising their side. What they hate is being looked down on, being sneered at, which naturally suggests that it's a way to go.

I don't think this conversation is going in a productive direction. (My opinion doesn't enter into this; I'm speaking as one of the community moderators. I prefer not to bring that into discussions, but I don't want this to keep going.)

@combinatorylogic , we need to debate ideas, not people. @stereobooster is correct calling this out. Please refer to the Code of Conduct. I've quoted three specific points below:

Examples of behavior that contributes to creating a positive environment include: (...) Being respectful of differing viewpoints and experiences.

(...) Gracefully accepting constructive criticism.

Examples of unacceptable behavior by participants include: (...) Trolling, insulting/derogatory comments, and personal or political attacks.

@stereobooster , I appreciate your responses throughout. In the future, it may be more constructive for yourself and everyone else to click the three dots (...) and select Report Abuse, so the moderation team can review and take appropriate action.

Let's end this thread here.

What they hate is being looked down on, being sneered at, which naturally suggests that it's a way to go.

This attitude turns down a lot of people from functional programming. You know this, right?

As well, I don't see how that approach changed Bob Martin attitude at least a bit. He keeps going, and this media coverage only increases his audience.

anti-vaxxers, flat earthers, white supremacists, clean coders.

There was some "internet drama" in React community recently. It started with a very similar claim. (This is shouldn't bother you, just a fun fact)


My PoV is that there are some bad actors which can't be argued (maybe they do it intentionally, maybe not - doesn't matter), and some people which are got in bad influence and "can be saved". I believe that the number of bad actors is much less than "innocent citizens". And we should try harder to convince people and explain why bad actors are wrong.

When I say that you should use rational arguments instead of assaults I don't hope that bad actors will hear you, I hope that "innocent citizens" will be like "🤔hey they are right, vaccine indeed stopped smallpox".

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

This attitude turns down a lot of people from functional programming. You know this, right?

Did I ever say that FP is a form of quackery?

As well, I don't see how that approach changed Bob Martin attitude at least a bit.

Quacks don't change. Their core base don't change. The only thing you can do with the quacks is to let all the innocent passers by know how sneered upon the quacks and their gullible fans are, so they won't be tempted to join their ranks.

and some people which are got in bad influence and "can be saved".

I used to think this way too. Got way more cynical since then, upon not seeing a single example of anyone being "saved" by a rational argument.

I hope that "innocent citizens" will be like "🤔hey they are right, vaccine indeed stopped smallpox".

And what they really think is: "look, those egg heads are arguing with anti-vaxxers seriously, there must be something there after all".

Scroll up and read my last comment (two ago).

End this here please. Thank you.

 

I watch/read some content from Bob and they seem good.

I hope I'm not starting the flame again, could you please point out to what you consider as "stupidity"?