
Bram's Law: The easier a piece of software is to write, the worse it's implemented in practice. - kkim
http://www.advogato.org/person/Bram/diary/68.html
======
SirWart
I'm not sure he realizes that there are plenty of rock-solid http
implementations that power things like web servers and web clients that
everyone on the internet uses every day without too many problems. Comparing
one http implementation to the handful of transactional engines he's had
experience which is anecdotal at best.

It's an apples to oranges comparison anyways, because http is a communications
protocol designed to live in an extremely heterogeneous world where you can't
control all the variables, as well as be very easy to implement in whatever
language/platform you're using.

~~~
wmf
The problem is that if a protocol allows bad implementations, then even the
good implementations have to invest effort to interoperate with the losers.
Bram doesn't have the patience to deal with losers.

------
emfle
There is something to this.

It also explains why software written in Java sucks so much compared to
software written in Lisp or C. Any idiot can get a Java program "working", but
an idiot writing C code will never get anything more than "Segmentation
Fault".

~~~
SirWart
I guess my problem is that he's implying that simple systems are bad because
they can be easily implemented by anyone.

It is very easy to write a Scheme interpreter, and a lot of people write very
bad interpreters, but that doesn't imply Scheme is a bad language. Java is a
lot harder to implement, so the few implementations out there tend to be very
good.

As for language, I agree that the C programmers left are on average better
than the average Python programmer (I'm not using Java for this example
because I don't actually know much about Java), but that doesn't imply that
it's better to use C than Python because the average C programmer is better
than the average Python programmer. Personally, I'll use Python wherever I can
even though I'm a better C programmer than Python programmer, simply because
getting things done in Python is on the whole easier.

