
Mending the Bitter Absence of Reasoned Technical Discussion - madmotive
http://al3x.net/2009/04/04/reasoned-technical-discussion.html
======
DanielBMarkham
Internet discussion, quite frankly, sucks. It's driven by emotions and not
logic. People are crass, rude, and take snipes they'd never do in person.

It used to be people wrote long letters to each other, like with a pen and
paper. In that format, you had to make a case and defend it. In the new
format, if you're writing more than 3 sentences you're a regular Tolstoy. The
format has gotten shorter, the response time more immediate, and the audience
less educated.

I remember when C++ was finally overshadowed by newer languages like Java with
fancy IDEs.. Old timers quickly found a lot of complete crap coming out from
programmers who never had to do things "the hard way" If you never had to take
the time to think about classes before you wrote one, everything is a class.

Likewise if you've never had to take time to think about what you're writing
before you comment, everything is a short, knee-jerk response.

Combine all of the above factors and you get an endless stream of tripe. It's
the uneducated talking to the uniformed about topics that make them unhinged.

It's interesting that somebody associated with Twitter would make that
observation. The format keeps getting shorter and shorter, and the time frame
more and more immediate. Can't he see the connection?

~~~
kragen
Not all internet discussions are like that, and in-person discussions
sometimes are like that. Long letters were always very rare; a prolific
letter-writer in the 1800s might have written hundreds of them in a lifetime,
but a more typical number might be ten. I think the majority of human
discourse throughout the millennia has consisted of things like schoolgirl
gossip, parents scolding their children, "ain't-it-awful" discussions in bars,
and requests for phone numbers shouted over loud music in dance clubs. What
you're observing is that more of that stuff is being done in writing instead
of by voice.

People do seem to be more willing to disagree with each other on the internet,
but that doesn't necessarily worsen the quality of the discourse.

~~~
greggraham
So all that has happened is that the Internet has allowed schoolgirl gossip
and yelling in bars to be broadcast on an international scope and compete with
professional journalism and scientific discourse. I suppose that cannot be
helped with the democratization of the media. Still, if the common man is
going to have that kind of power, should we not urge everyone to use it
responsibly, and to try to raise the level of discussion, especially in what
is supposed to be a professional context such as software development. Of
course, that is what Hacker News is attempting to do; I'm hoping it will work.

~~~
kragen
The way I see it is that the internet has allowed professional journalism and
scientific discourse to compete with schoolgirl gossip and yelling in bars.

One problem, though, is that the needs of these forms of communication aren't
really the same. In a low-latency medium, for example, it's difficult to avoid
strong structural biases toward both recency and immediate responses; these
are both corrosive to the quality of the discourse. (I think these structural
biases mostly account for the very low quality of professional journalism, but
they are even stronger on e.g. reddit or HN.

pg and I have written some things about this:

[http://lists.canonical.org/pipermail/kragen-
tol/2008-January...](http://lists.canonical.org/pipermail/kragen-
tol/2008-January/000878.html) <http://paulgraham.com/hackernews.html> (under
"Fluff Principle" and "Comments")

------
ankhmoop
"One comment that seemed particularly uncontroversial to me was at the core of
this nerd firestorm: Ruby is slow. For the next several days, I could think of
only one thing: why is something you can measure controversial?"

This is exactly what needed to be said, and repeated until it is fully and
widely understood. Cognitive dissonance should not be assuaged at the cost of
the rational and empirical.

~~~
lsb
The regexp engine isn't slow. The bignum support isn't slow. The development
time isn't slow.

If you wonder why there's a firestorm, it might be because of sweeping
generalizations.

~~~
tptacek
Isn't that a lot like saying that despite the VM system, OpenBSD 2.1 wasn't
slow because it had a pretty good "gzip"?

~~~
kragen
Python is slow. For loops containing arithmetic, array indexing, function
calls, and similar primitive operations that also exist in C, it's maybe 100×
slower than C. But programs written in Python are usually not 100× slower than
C programs with similar functionality. They may be 10× slower or 3× slower or,
very rarely, faster; that's because their inner loops tend to be in operations
like regexp matching, array arithmetic, data compression, string hashing, and
the like, and Python's implementations of those things aren't themselves
written in Python — they're the things you're likening to "gzip" here.

There's a selection bias here. If you write your compiler or interpreter or
pathfinding algorithm in Python, it's going to be a lot more than 10× slower
than if you wrote it in C (or Java or OCaml or whatever). So people don't
write those programs in Python, so we don't get to compare them.

I've been writing about Python because I know more about it than I do about
Ruby, but I think most of the same things are true of Ruby, as well.

~~~
swolchok
Sure -- minimizing the number of Python statements is a decent optimization
heuristic in Python (and, as a bonus, that can help you optimize for human
readers as well when not taken to extremes).

------
jpedrosa
Let us see how PHP and Ruby compare out of the box versus Java:

First PHP vs Java:
[http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...](http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=java&box=1)

Now Ruby 1.9 vs Java:
[http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...](http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=yarv&lang2=java&box=1)

And finally Ruby 1.9 vs PHP:
[http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...](http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=yarv&lang2=php&box=1)

So, both PHP and Ruby 1.9 have a hard time when trying to keep up with Java
and in these tests Ruby seems to have an edge over PHP. Not to mention that
Yahoo one of the biggest enterprises on the web uses a lot of PHP for their
services, but there are ways to further optimize PHP so who knows what each
user can do to improve performance.

My point in bringing PHP into the spotlight is just to show that there are
other languages that a priori were just as slow as Ruby but given their niche
have had enough success to endure "slowness" criticisms.

The languages that are considered fast have often to face potent competitors
which make for an immersive experience seeing them develop in the marketplace.
Ocaml what, I hear you say?

~~~
kragen
Ruby 1.9 is a big improvement over Ruby 1.8, but last I heard, a lot of people
still had to use 1.8. In six months maybe "Ruby is slow" will no longer be a
valid argument for PHP over Ruby, but if you're using Ruby 1.8, it's still
valid.

PHP, and I say this as someone who thinks it's awesome, isn't so much a
language as a way to glue together a bunch of C libraries, so its speed isn't
that important.

~~~
Andys
One of the reasons Ruby 1.9 adoption is so slow is that the people who really
needed speed have long since moved on. 1.8 is still good enough for most of us
who use Rails every day.

------
mvp
The following line in the post is the crucial thing. "Amazing how suddenly
reasonable and transformed a person can be when they’re forced to look you in
the eye"

And I think a version of that is included in the guidelines for HN. The power
of Internet conversation is the 'detachment' which can work both ways. It can
get the nerdiest of nerds to get to talk to large audiences without inhibition
and thus contributing to the society at large. However, it can also get them
to show their nastiest sides, which probably would have been hidden but for
the detachment provided by the medium.

------
hvs
Unfortunately, the thoughtful, intelligent, facts-minded individuals are
vastly outnumbered (or at least, out-shouted) by trolls and fan boys on the
Internet. Even more discouraging is that the latter are the least likely to
read an article like this and take it to heart.

~~~
jlees
I think one of the problems Alex is pointing at is when thoughtful,
intelligent, facts-minded individuals act like trolls and rabid fanboys, for
example when their favourite programming language or text editor is mentioned
in less-than-glowing tones.

(P.S. emacs sucks.)

~~~
felixmar
I suspect that many smart people do not troll but engage in a marketing game
to preserve the status quo. It keeps the attention focused on the current
leaders, away from newcomers that could potentially disrupt the status quo.
Often the products or technologies of both sides resemble each other a lot.
Their commonality is much larger than their differences.

------
carbon8
Ruby is a particularly strong magnet for this kind of controversy. As he
notes, many of its strengths are not easily quantifiable, while its weaknesses
are. Add in stereotyping, tribe mentality and cynicism and it creates drama.

------
jpedrosa
Sure... Nice write-up.

From the Hacker News site I have been following the recent controversy and
even participated in some discussions. :-) Your Honor, I plead guilty! :-)

I cannot blame them (Twitter) when they seek their goals for a better business
with higher quality and performance. I even respect their creative skills. So
I don't have a beef with them even when Ruby gets caught in the polemic.

Ruby to this day continues to be an open source project put together by a
community that for better or for worse has most core developers being
Japanese.

But since about 3 or 4 years ago, Ruby has had other developers seeking to
implement compatible Ruby versions... That is, Ruby has outgrown itself and
continues to do so. JRuby, MacRuby, Rubinius, IronRuby...

At the end of it, though, Ruby continues being relatively slow when compared
to other kinds of languages. But first read the following article to see some
reasons why is that: [http://blog.headius.com/2009/04/how-jruby-makes-ruby-
fast.ht...](http://blog.headius.com/2009/04/how-jruby-makes-ruby-fast.html)

Since Ruby's beginning, it was not out to reach C level performance. And JRuby
for one improves upon some of the shortcomings of the main C implementation of
Ruby quite well, not without its own shortcomings though. :-)

So, what do we have in the controversy? Twitter is a little sick of complaints
of it letting the ball fall when much more is required of their services, so
they go overboard when defining a solid platform for it with Scala. Not to
mention that they simply can't go converting their entire system to Scala just
yet and they are still happy with the Ruby part of the equation at creating
the web interface the users see.

What do we have then? More options of development. Instead of C, C++, Ruby and
Java, include Scala there as well. Each with their own pros and cons. We know
that, right? But if it were simple to use each one of those languages and more
when providing a set of services, we would not have a beef with who chooses
what when developing. Nature has it that while it's possible, it's much
tougher to get it working. That's partly why big companies like Google try to
minimize their options of tools and in doing so help to set standards
throughout the industry.

Such standards, fortunately, don't apply for everyone, otherwise Twitter might
have started with something other than Ruby on Rails.

------
vinutheraj
The part of this essay ( or blog writeup ) on _How To Have A Reasoned
Technical Discussion_ can be put up on the HN guidelines maybe !

------
dinkumthinkum
Very good article. This should be right up there with famous articles such as
"How to disagree" and many others. I think this should be required reading for
many of the technology blogger equivalents of political bobbleheads out there.

------
srn
For deeply technical conversations I research answers I give and back up what
I say with links to source material or a log of the commands I ran. This seems
to be quite unusual, and I believe most technical discussions would benefit
from a similar approach.

------
zby
There Is More Than One Way To Do It - TIMTOWTDI - it's a pity that that slogan
is confined to the Perl community. No other slogan is so effective in imposing
a culture of civilized dialog between competetive projects.

------
gfodor
A breath of fresh air.

------
msie
Bah! Reading all the bickering on this page about a blog entry about bickering
has been a huge time-suck, including formulating this response. If you have
come across this comment please leave before it's too late!

~~~
bitdiddle
Well it's Sunday morning here, beats going to church :)

