5 ms·
> How do we tell truths that might hurt? Well, if you are attempting to influence someone like me, not like this. I think Dijkstra's great reputation and 37 y
by rauljara 14y ago
> How do we tell truths that might hurt?
Well, if you are attempting to influence someone like me, not like this. I think Dijkstra's great reputation and 37 years of experience with programming are basically enough for anyone reading this today to take all of his statements as basically true; but if someone published a similar list dissing all your favorite programming languages... well, we've all witnessed internet flame wars.
The basic problem here is that the list is nothing but assertions. Dijkstra is 'right' about almost all of them, but there's no proof, or attempt to argue the point here. If you didn't already agree with him, or god forbid, actually use one of the languages, what you'd hear is Dijkstra basically saying you are stupid for using that language.
And humans have a very natural tendency when someone calls them stupid to assert angrily that they are not. And then the argument basically becomes a form of "no I'm not stupid for liking Apple products, you're stupid for liking Android." Which is entirely not the point of what Dijkstra is doing.
In my experience, the best way to get someone to change their mind is to show them a better way, and show them how and why it is better without ever insulting the old way or implying people who follow it are stupid.
Easier said than done, of course. But the insults are unnecessary and, more importantly, distracting. They tend to be more about the ego of the person hurling them than anything else. And stuff is already hard enough to figure out even without egos getting involved.
- tikhonj 14y agoThat's entirely fair. The most disheartening thing is that what you described is a good way to convince somebody, and even that often doesn't work. (As, I'm sure, many advocates of functional programming know well.) If your goal is to convince somebody of something, this rational approach may be the best, in some sense, but it probably isn't the most efficient. Instead, I imagine a combination of some good points with a bunch of tactics borrowed from advertisers and behavioral psychologists is the most likely to actually convince people. I would love to believe that programmers are all rational and listen only to reason, but I've found this too often to not be the case.
- pretoriusB 14y agoWell, if you could absolutely convince anybody of anything, that would akin to hypnotism and will amount to fascism. So, let's assume that you only want to convince people of things that are indeed true. Then the thing goes awry: how do you know what's true? Maybe it's not, and they are rightfully not convinced. Maybe there are more than one ways that the thing can be seen. Etc. Take something that is "obvious" for some people, like "PHP is a bad language". It's not at all obvious to me that even that one universally true. One could answer, e.g: all languages have sore points so it's no big deal, if reversal of needle-and-haystack is your biggest worry about a library then it's pretty much fine, I can easily find programmers and that's what matters to me, it has never failed my projects, it works for Facebook, it has tools and communities I cannot find elsewhere like Wordpress, etc etc. And PHP is as close-cut a case as it can get. Fighting Fortran? Not so much.
- smalieslami 14y agoI was pleased and surprised to find concise descriptions of several approaches to 'persuasion' on Wikipedia: http://en.wikipedia.org/wiki/Modes_of_persuasion http://en.wikipedia.org/wiki/Modes_of_persuasion http://en.wikipedia.org/wiki/Rogerian_argument http://en.wikipedia.org/wiki/Rogerian_argument