Some incidental writerly advice: Avoid using the word cancer metaphorically, unless you're deliberately trying to parody the writing style of, say, Adolf Hitler. Otherwise it's like trying to use a howitzer to dig postholes in your yard.
I first began to notice the dangerous power of this word when I was working in cancer research. To a cancer researcher, cancer is a thing one deals with all day long, but at a very safe emotional distance. You're used to cancer cells; you study them all the time. You spend quite a lot of time carefully raising them in dishes. You give excited talks about how they work. Still, it's hard not to notice that when you tell a stranger on the street what your research is about, there's this little intake of breath.
And then I grew a bit older, and some friends and I lost relatives to cancer, so we got the chance to actually experience the process from the patient's point of view. (An opportunity which, fortunately, many young people don't get.) And I gradually realized, at a gut level, what all the fuss was about: Cancer is really awful. Dying of it is awful, and not dying of it is also pretty damned awful, because the treatments are painful, often damaging, often disfiguring, and dreadfully uncertain.
Don't use the word unless you mean it. And you probably don't mean it.
I appreciate your feelings based on your personal experience with this terrible disease. I do however feel this reply and subsequent replies on this topic completely unwarranted.
The word cancer has been adopted into the English language to mean an evil condition or thing that spreads destructively.
The article makes no reference to the medical condition, nor the star sign, nor the tropics of.
I don't care much for this article, but the author has used the word cancer in context without belittling the medical condition and it is unfair of you to imply that he has.
Especially since you compare his writing style to one of the most despot genocidal maniacs of our time.
Second, it's not clear to me that you do appreciate mechanical_fish's feelings. His point is that cancer is an outsized, heavy word, and regardless of the author's intent, the word has connotations that neither you nor the author can shake loose from the word.
I chose that word on purpose because of both its semantic and emotional power. Besides, I'm pretty happy that all the critics have been focused on either using the term "cancer" or the swearing at the end, so I guess my points are valid to almost everyone, and you just didn't like the way I expressed them. That sound ok.
I didn't need to grow old to watch relatives and friends fighting cancer. I know how serious it is, and I really admire that you're working in that particular field. That said, I used the metaphor on purpose, because of its power, because I think it's a perfectly valid analogy.
I still think you lack perspective -- maybe standing "back from the fire" a bit. I would never, ever use that word to express anything about a lousy programming topic.
Agreed, but more importantly: I would never use that word unless I was trying to start a fight. And trying to use the word to stop a fight is just backwards.
(Like all rules for writing, this one has exceptions: For example, if it's in the service of a great pun, like:
It's the latest attempt to define a singular "Ruby community" from a tiny subset someone has encountered and pin FUD on it, giving ignorant third parties a bad impression of Ruby in general.
I frequently encounter people who say things like "Ruby is all drama", "I chose Python because Ruby is full of bickering hipsters" or "I've always found rails programmers rather arrogant." Lies (or gross generalizations at best) but at least an understandable opinion when sentiment like this keeps doing the rounds.
I didn't mean to give a bad impression of Ruby. I think (and many people have pointed out) that the problems I outline are valid for many developer communities, if not all of them. In the end, those communities are human, and share a good amount of our defects.
You do the Ruby community that you seek to improve a disservice when you use a title that troll baitish. In fairness, you're not the only one I see doing this. There are many bloggers who use the same tactic. I have occasionally been guilty of this in the past though I cautiously avoid the practice now.
More specifically, have you attended any regional Ruby conferences? It is almost certainly a community unto itself: those developers who take the time away from their jobs and families to attempt to better themselves by learning from others. The (Ruby) conference-going community is demonstrably better than at least two out of your three arguments.
As for the Pareto principle, it seems unfair to paint the "Ruby community" with such a broad brush while then going on to say the same of the OSS community at large. It's a universal problem. It should not have been raised in the context of your post.
Finally, you provided no constructive advice in your blog post. How was this post supposed to be helpful?
I for one am tired of the negativity.
This post, by providing only destructive criticism, ironically only serves to exacerbate the public image that some paint Rubyists with.
I am currently organizing the Barcelona Ruby Conference, and have attended many other conferences in Europe. I know a lot of people put much effort in doing things right. But that's not the majority of the community, unfortunately. I also agree that the Pareto principle (and many other points raised in my post) are a universal problem, not just Ruby's.
I did provide constructive advice. If you read the post thoroughly, you can see a call to improve our learning manners, stay away from hot trends, and even a simple pattern you can use in your day to day to compare technologies, or to understand better some debates (like threads-processes-reactors).
Did it really not occur to you that an overly-dramatic lament, with f-bombs and references to cancer, might give a bad impression? There is really very little excuse for Rubyists to have so little awareness, especially if they hope to overcome the stigma they are so worried about...
I'm really proud that so far no one has argued about any point I make in the article, but rather about the "cancer" reference and the swearing at the end. I guess that means I happened to write a pretty damn good article.
I believe there are plenty of problems with the points of view expressed in your original post. Not the least of which is that the Rails community was built with carefully crafted factional mentality. People called it "opinionated" software and if you didn't like it, well, "F*ck you."
This is how Rails was marketed, by splitting people into camps: Us (cool, indie hackers) vs. Them (corporate stiffs). Fervent conflict was intentionally built into the Rails culture from the very start and complaining about it at this point seems slightly after the fact.
Which leads me to my next issue: the Pareto rule. This seems like a silly thing to be complaining about because it's also the reason that there are four revisions of the Rails book and countless other money-makers (books, confs, Peepcodes, etc).
I'm sure you can see why congratulating yourself may seem a little arrogant and perhaps give people the wrong impression of your "cancer-ridden" community.
Please, explain to me the difference between "following trends blindly" and "learning from older developers' experience"?
Because both of them look remarkably like cargo-culting appeals to authority.
Folks constantly rant about the reinvention of the wheel, but i think they're missing the point. Everyone talks about how wonderful it is that digital and web-based technologies allow for rapid prototyping and failing fast which in turn results in the ability to experiment.
And then they turn around and criticize people for experimenting accusing them of not learning from their elders or whatever. Learning is a process. You learn by doing. Even if you have to rediscover what other folks have discovered in the past.
Experimenting is good. I do it all the time. Just take a look at my repos on Github. Just a few of them are conceptually (and arguably) "new", while the others are just exercises to learn about new things. Experimenting about things, even about the basic ones, helps me a lot in my learning process. At a personal level.
But when you watch the bigger picture, with companies actually building software for clients that trust them, then choosing technology is a delicate, non-trivial matter. It's important, and I mean in actual dollars (or euros). There is where the expertise of older developers, people who have founded, sold or shut down profitable and unprofitable companies, who have worked in a gazilion of projects and made a lot of expensive mistakes, there is where that expertise comes to play. They can enlighten the sometimes childish, faction-like debates about technology that keep repeating themselves over and over. That can free us to think about new problems and new things, based on past experience. That's how science advances, and that's how software development advances too, in my opinion.
Maybe because rails is like a religion-based on faith. As an old-timer who started web programming on perl/cgi I've always found rails programmers rather arrogant and a bit off-putting. I say rails because this seems to be the main driver behind Ruby's growth.
Rails seems to work magically for first-timers and without knowing what's happening it allows anyone to build sophisticated web applications. It basically expects you to have faith it will work and as such perhaps it creats a faith based following.
What the author is describing is all sympthomatic of many religious groups :)
Honestly, the magic thing is really overstated. The most magical thing in rails is that methods are defined on your models based on the framework reading your schema when it launches, which granted, is pretty magical, but ActiveRecord aside there isn't much else.
I spent some time doing ASP.net Webforms, now THAT is a magical framework. To the point where I would say only around 1% of the people who used it had the slightest clue as to what was actually happening. Rails doesn't hold a candle to webforms in terms of magic, but for some reason it is always referred to that way, and I have never heard anyone say anything like that for webforms (or seaside, or lift, or yesod)
I don't think that's Rails, or Ruby or whatever paritcular tech we're discussing. I think that's a common trait in human communities, and I'm worried about the one I feel mine, but I'm sure everyone can see a part of their community reflected on my post.
I don't think it's so much a matter of professionalism as much as lazy thinking. For instance, the notion of "best practices" is utterly professional, but when overapplied or misapplied it results in some of the same symptoms.
"Professional to me is facade, fake sincerity, political correctness, not offending anyone, and everything else that makes life lifeless."
Which only goes to support the notion that much of Ruby's community has issues from the top down. We're speaking of computer science, in which objective, rational analysis leads to correct answers -- not appeals to emotion and an almost religious acceptance of poor solutions.
For every serious Ruby contributor and leader like Charles Nutter (JRuby), there are 5 DHHs or DDH adherents shouting down professionalism as if it was an anathema to logical expression.
I agree, I think DHH's statements were bizarre. They seemed to assume a sort of binary idea of "professional." You were either an anal retentive, by the book pedantic clock puncher or you were a fun loving rock star. The truth is there's a wide gamut and I think it's great for people to be "professional" without going to some sort of IBM-style extreme.
Times change. IBM-style "professional" is not the "anal retentive, by the book pedantic clock puncher" you might think. I worked there over 10 years ago, and we had no written dress code, flex-time scheduling, remote work, etc. The building I worked in had a 9 hole putt-putt course outside it, with foosball tables in a couple of the stairway landings.
Interesting how long we can hold on to perceptions from the past, even when they've been wrong for over a decade.
(I'm not implying that I'm disagreeing with you, in fact I think this shows that even what people think of as "pedantic clock puncher" and "fun loving rock star" from the outside is often very different on the inside.
Professionalism is what is killing great languages like C# and decent languages like Java.
It is just an excuse for those in suits to look down on the rest of who create software because we fucking like it, in a way we like, rather than in a way that doesn't threaten them.
Professionalism has very little to do with the "suits". In fact, I have seen that programmers are made to do our least professional work when some out-of-touch manager makes their decisions.
You don't. Non-professionals will become professionals with time and experience, but there will always be more non-professionals to take their place. The only reason some communities have to deal with more non-professionals than others, is that those communities are perceived to have a lower barrier to entry--so, when a non-professional tries to select a community to join/language to learn/tool to use/etc., they end up with the "easier" one, and thus the "easier" community builds a reputation of non-professionalism. The only real measure one can take to avoid this is to make the community unattractive to non-professionals: in est, to raise the barrier to entry.
I don't think barrier to entry is the only factor, if it's a factor at all. The Linux desktop has a relatively high barrier of entry, and yet a large part of its community has devolved into an elitist, cognitive dissonant crowd that's defending their usability problems by framing them as a good things.
Common courtesy, decorum and a prevailing sense of personal responsibility are lost in these frothy times of high demand and inflated economy (i.e. the fast train to DoucheVille). But one day this economy is going to correct in earnest and all these allusions of grandeur are going to give way to some harsh realities. Being too-cool-to-act-professional is going to make a lot of mustaches sad.
Effective smart people are humble and kind (like Matz). Blowhards are insufferable douchebags and no amount of fake rebellion against 'professionalism' is ever going the change that.
Maybe not just the ruby community, I feel the same about the node community, from my rather short experience, most of the time I see a lot of them praising ruby/node/etc as the ultimate solution to everything, and that makes me run from those communities and consequently the languages/frameworks, and that is the main reason I dont have much experience with ruby/node the community ends up making me avoid the technologies that may be good or not, I'm not going to argue that.
Looking into other communities, specifically Java, C# and PHP I don't see this kind of behavior, yes sometimes someone like that shows up, but from my experience it's less than the previously mentioned.
Please note that this is merely my personal experience, but I would like to know other people experiences with these communities.
Now, I'm not equipped to perform a statistically valid sampling of all conference talks, but pervasive anecdotal evidence lends credence to this notion.
There are more, but I don't think I need to internet-sleuth the entire set of well-known Ruby / Web personalities to demonstrate the point: a base lack of professionalism abounds.
Even thirty more examples would not neccessarily mean Rubyists are "often" like this. There are tens of thousands of them.
If ruby-talk, #ruby-lang, ruby-core, and Ruby conference talks were typically littered with swearing, there'd be a point. As it is, it's a generalisation formed off the back of a handful of cases. Stereotyping, if you will.
I've been covering the news in the Ruby world for about 6 years now, almost full time. People are inventing these silly stereotypes as a way to discredit the language and it's users, it's not based in reality.
Postel's law (gently reformulated) is important when you have one-to-many communication. "be conservative in what you send, be liberal in what you accept".
Heh, I really liked the analogy with Postel's law, and I guess you're right. The main criticising I've received about the blog post has been about the swearing, so I guess I could skip that next time.
Having swearing as a personal signature is like having a tattoo. It doesn't make you any "cooler", and everyone does it so it's not much of a signature.
It's not that it's offensive, it just says you are unable to convey the strength of your argument without the vulgarities. You lose critical (logical) thinkers when you resort to crass language; primarily because it says your argument relies on emotion, not logic.
In a discipline such as computer science, appeals to emotion are inherently untrustworthy and distracting. A reader shouldn't have to shift through pandering rhetoric to find the kernel of a supportable argument.
I'm sure you're very tough and edgy but that doesn't change the fact that incessant swearing is childish and annoying. It also makes choice words too common, further reducing their punch.
I'm no spring chicken, mind you, I wasn't offended by the swearing - it was just mildly annoying and distracting from the (pretty well thought-out) message. :)
Maybe the ruby community is a secret sanctum I've yet to be granted access, but I've never identified with or understood these sort of posts.
Granted, I'm a superficial participant in things ruby. But if this vogue opinion of the ruby community is only something you can see in some deeply-heated debates in some Google Group or pull-request comments on some repository, your blog post seems more applicable to all of humanity.
The three virtues of a programmer: laziness, impatience, and hubris. -- Larry Wall
And with that, I'm getting back to work. I enjoy writing with Ruby, and Rails has made web development a joy for me. Beyond that, I don't find these kinds of things interesting in the least. I'd wager that most of its user base (Ruby that is) feels much the same way.
I first began to notice the dangerous power of this word when I was working in cancer research. To a cancer researcher, cancer is a thing one deals with all day long, but at a very safe emotional distance. You're used to cancer cells; you study them all the time. You spend quite a lot of time carefully raising them in dishes. You give excited talks about how they work. Still, it's hard not to notice that when you tell a stranger on the street what your research is about, there's this little intake of breath.
And then I grew a bit older, and some friends and I lost relatives to cancer, so we got the chance to actually experience the process from the patient's point of view. (An opportunity which, fortunately, many young people don't get.) And I gradually realized, at a gut level, what all the fuss was about: Cancer is really awful. Dying of it is awful, and not dying of it is also pretty damned awful, because the treatments are painful, often damaging, often disfiguring, and dreadfully uncertain.
Don't use the word unless you mean it. And you probably don't mean it.