3 ms·
By telling someone else that 'X sucks', you're asserting your knowledge of X (and often Y or Z too, one of which you might recommend instead of X). Within limi
by rjknight 12y ago
By telling someone else that 'X sucks', you're asserting your knowledge of X (and often Y or Z too, one of which you might recommend instead of X). Within limits, this is perfectly reasonable - there are pitfalls out there, and advising other people to avoid them is helpful.
However, there are a few big risks which arise when doing this, particularly around non-technical people:
1) The developer who cried wolf - if you have a very long list of things that you think 'suck', it may be concluded that you're just particularly picky (and, as the OP shows, it's not backed up by the reality of the many successful projects that exist). When you really need to torpedo a particularly bad idea, you might not be taken seriously.
2) Trying to persuade people by scaring them can backfire. Telling people that their project will fail unless they use the One True Project Management Methodology, or adopt some particular new library or framework might sound like a good idea, but they're quite likely to conclude that if the chance of failure is that high then it's better to avoid the risk altogether by doing nothing.
3) Undermining the credibility of other developers might give you a short-run reputation boost, but in the long-run it undermines the credibility of everyone. Instead of "that guy sucks, but you're OK", you want people to think "that guy is pretty good, but you're awesome!". To an extent, this applies in other areas ("PHP is pretty good, but Clojure is awesome!" sounds like something a happy customer might say, and we all want more happy customers).
As much as I love his writing, I think Dijkstra should take a large portion of blame for the "considered harmful"[1] style of technical criticism. His claim that anyone who ever learned BASIC is a brain-damaged individual incapable of proper programming has done a lot to undermine the credibility of intelligent, hard-working developers ever since. I, for one, would like to issue a heartfelt "fuck you" in his general direction. Again, I love his writing but I think this kind of disparagement has incredibly negative effects in the real world.
We certainly do need to eliminate errors from our practices and our ways of thinking. That's painful and does require criticism of those things. But the main problem for the software development industry right now is not that we are insufficiently critical of our tools, practices or each other, it's that we don't back each other up enough when it comes to dealing with shitty project management or exploitative practices or discrimination that holds people back in their careers. The low-hanging fruit is not yet another web framework, it's figuring out better ways of organising development.
[1] http://en.wikipedia.org/wiki/Considered_harmful http://en.wikipedia.org/wiki/Considered_harmful
- PeterGriffin 12y agoI see it as an issue of supply and demand. There's a huge demand for silver bullets in this industry. An endless supply of naive, impressionable kids willing to listen to people rant about how everything sucks and X will change the world. So no surprise, those who rant gain popularity and visibility and here we are.
- bollockitis 12y ago> An endless supply of naive, impressionable kids willing to listen to people rant about how everything sucks and X will change the world. There's also the problem that an engineer who successfully builds a bridge simply keeps to continue building bridges. In software, a 21-year-old programmer can build a webapp, sell it to Google, and walk away a multi-gajillionaire. If engineers could sell bridges to Google, we'd be seeing a lot of strange methods of crossing a river. It's not just that developers look for silver bullets -- that's a natural instinct in any discipline -- it's that developers have a very real incentive for building and marketing silver bullets.
- informatimago 12y ago"Considered Harmful" was not Dijkstra's idea, but his editor! And there's no way to say that "PHP is good", that's just untrue in all universes.
- rjknight 12y agoOK, but he's still on the hook for "mentally mutilated". Also, my point is that "good" is really a relative term. PHP is good, because the baseline for programming language quality is quite high. You can do so much stuff using PHP - you can build YouTube[1], Facebook, Wikipedia, WordPress and much more. I don't know what the total value of web applications written in PHP is in billions of dollars, but it's a big number. My point is that if that's what we can do with PHP, just think what we could do with better tools! In my definition, "good" means "enables the creation of valuable things", and PHP does that. I hope that it gets replaced by something better, for the same reason that I hope current medical treatments get replaced by better ones, but I can't call it "bad". It's weird, but programmers are sometimes the people with the least appreciation for how valuable their creations are. We do things that non-programmers simply cannot do, creating massive value in the process. Yet many programmers are afflicted by impostor syndrome and the sense that what they do is not really that valuable and that most of what they build is crap. This negativity is misdirected, towards other programmers - "I'm better than her because she uses PHP and I use Haskell" - when it should be directed towards the things that cause real project failure. A well-conceived and well-managed project that creates a PHP web application is much more valuable for everyone than a badly-managed project that produces a Haskell application that nobody uses. [1] The first version, at least. Google doesn't do PHP.