Live data from Hacker News

The Rise of "Worse is Better"

jwz.org

21–30 of 37 posts

Re: The Rise of "Worse is Better"

#21
post #9

You know, this almost reminds me of the ML vs. Haskell debate. I remember fondly, hearing the 15-312 kids talk about how ML is right and everything else is wrong. The CMU PL dept was kind of adorable that way. One of the classic examples is Haskell's typeclasses. Haskell's typeclasses are kinda kludgy because there's no way to provide more than one instance of a typeclass. ML's functors are way better. But as it turn…

You have to concede it's a bit funny that you're pointing to Haskell as an example of the 'worse-is-better' approach that leads to viral adoption of dirty solutions over the endless pursuit of perfection.

Haskell is much more "MIT approach" than "New Jersey approach". For a better example, consider how the quick & dirty hack that is Javascript is now far, for more commercially important than the entire FP language family combined (although, it's worth noting, somewhat inspired by FP).

Re: The Rise of "Worse is Better"

#22
This precise issue in Unix/POSIX causes a huge headache. I wonder how many thousands or millions of "xread/xwrite" loops have been written in user code to retry failed read and write calls, and how many of those loops have bugs?

Look at gnulib to see how hard it is to get these loops right:

http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=li... http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=li...

In the case of a partial read/write followed by an error, I don't believe it is possible to recover at all using just POSIX-defined calls.

Re: The Rise of "Worse is Better"

#24
post #9

Earlier quoted context omitted.

You have to concede it's a bit funny that you're pointing to Haskell as an example of the 'worse-is-better' approach that leads to viral adoption of dirty solutions over the endless pursuit of perfection.

Haskell is much more "MIT approach" than "New Jersey approach". For a better example, consider how the quick & dirty hack that is Javascript is now far, for more commercially important than the entire FP language family combined (although, it's worth noting, somewhat inspired by FP).

As of importance, I boldly compare JS to Middle Ages' plague.

It is very important but not the way it helps.

Re: The Rise of "Worse is Better"

#25
post #19

You know, this almost reminds me of the ML vs. Haskell debate. I remember fondly, hearing the 15-312 kids talk about how ML is right and everything else is wrong. The CMU PL dept was kind of adorable that way. One of the classic examples is Haskell's typeclasses. Haskell's typeclasses are kinda kludgy because there's no way to provide more than one instance of a typeclass. ML's functors are way better. But as it turn…

Perhaps Haskell compromised on first-class modules. But ML compromised on: * Type-classes (which overlap but aren't really the same thing and are probably more important) * Typed-effects (a.k.a purity): This is a big one to lose. * Laziness/Strictness control I think ML is more of a compromise than Haskell.

Actually, I was originally of the same opinion, but then I read some lecture slides from Simon PJ. He has suggested that laziness was perhaps not the best default. It is hard to reason about space leaks with laziness. Likewise for typeclasses being inferior to ML functors.

http://www.cs.nott.ac.uk/%7Egmh/appsem-slides/peytonjones.pp...

I personally disagree. I'm pretty sure laziness has made it much easier for me to try out an idea. If it works, then I'll test that I didn't space leak. The notion of it almost makes me feel dirty. ;-) :-P

Re: The Rise of "Worse is Better"

#26
The funny thing is that Common Lisp can be used to deliver working systems just fine. In fact, there's nothing "perfect" about it. It has warts. But it is actually quite practical.

"Worse is better," is thankfully a philosophy that is pretty unique (afaik) to software development. It is only really applicable to a sub-set of software development as well. I cannot imagine how "worse is better" would work in mission critical systems where human lives are at stake. Or lab equipment, embedded systems, and other scenarios where failures can result in huge headaches.

I don't think there was a battle that was won by any side really. Either approach could be considered for any given problem. Practicality is important and zealotry should be avoided at all costs.

Re: The Rise of "Worse is Better"

#27

Regarding how "the right thing" stacks up to the worse-is-better solution, the author writes: > How does the right thing stack up? There are two basic scenarios: the ``big complex system scenario'' and the ``diamond-like jewel'' scenario. > The ``diamond-like jewel'' scenario [Scheme] goes like this: > The right thing takes forever to design, but it is quite small at every point along the way. To implement it to run…

Scheme is over thirty years old; over those years, a lot of research and experimentation has been devoted to making Scheme more efficient.

When Scheme first came out, its use of lexical scope was controversial, because everyone knew that dynamic scope was more efficient.

Re: The Rise of "Worse is Better"

#29

Richard Gabriel's thoughts on the whole thing: http://www.dreamsongs.com/WorseIsBetter.html

I think this is Richard Gabriel's thoughts, it is signed rpg@lucid.com at the bottom... which certainly isn't Jamie.

>> it is signed rpg@lucid.com at the bottom...

And just under the title it reads "By Richard Gabriel".

But the post that the grandparent post links to is a different article by Gabriel. (It seems to be a summary with lots of links to things he's written on the theme.)

Re: The Rise of "Worse is Better"

#30
post #24

Earlier quoted context omitted.

Haskell is much more "MIT approach" than "New Jersey approach". For a better example, consider how the quick & dirty hack that is Javascript is now far, for more commercially important than the entire FP language family combined (although, it's worth noting, somewhat inspired by FP).

As of importance, I boldly compare JS to Middle Ages' plague. It is very important but not the way it helps.

So one of the first languages with closures to get huge mainstream popularity hasn't helped? right...
Post reply on HN