Live data from Hacker News

We Who Value Simplicity Have Built Incomprehensible Machines

prog21.dadgum.com

31–40 of 96 posts

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#31
post #5
post #2

But all the little bits of complexity ... they slowly accreted until it all got out of control, and we got comfortable with systems that were impossible to understand. I'm convinced that all systems of any significant complexity can only be created in evolutionary steps, and that process always leaves vestigial traces behind. The most complex computing environments always have an almost organic quality. I strongly re…

Thanks for the film recommendation. In a similar vein, I'd recommend Kevin Kelly's book, Out of Control: The New Biology of Machines, Social Systems, & the Economic World , which deals a lot with complexity of large systems and their parallels to biology and evolution. I do think it's possible to create a system of "significant complexity" in a clean and not so evolutionary way, but only after creating a version or t…

Related, but not completely on topic:

"All watched over by machines of loving grace" by Adam Curtis.

"Bumblebee Economics" by Bernd Heinrich

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#32
post #18

I don't think the average geek values simplicity all that much. We value power, flexibility, versatility. We value openness, interoperability, upgradeability. Simplicty? It's a distant 7th or 8th on the scale. That's why computers are the way they are, and we needed a company that really did value simplicity to create a new paradigm where users don't have to deal with libpng, winsock, antiviruses and other artifacts…

I think you're confusing two kind of 'simplicity'. 'Apple' simplicity is in my eyes about cutting away what is not needed and unifying everything else. What author is talking about is simplicity that lies in roots UNIX-philosophy. It's about having many simple tools that can be composed into something more complex.

Perhaps my view on the world is twisted by the kind of programmers I know (mostly CS majors), but I almost everyone working on something bigger than 100 lines of code has simplicity high on their list of priorities. It makes everything easier to maintain, read and write.

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#33
That's why we need to use a clean slate occasionally.

Every feature creates a better picture on what to the next time you throw it all away.

C, UNIX and libpng have taught us a lot, but it's probably time to take them in the back yard and shoot them rather than whinge about complexity.

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#34
For a person who knows how to use a man page, ls is a simple and highly effective tool for a simple purpose. Part of becoming a unix guru is learning to deal with the idiosyncrasies of the system. I see it as much like learning a natural language; they all have strange rules that are unintuitive to us at first, but we overcome these with practice and patience.

That's not to say however that redesign in certain areas wouldn't be a great thing.

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#35

I have spent the last two years creating a desktop GUI application more-or-less from the ground up. I used a bit of existing code but most of the choices were mine. It was only "evolutionary" in the sense that I don't necessarily know everything I was thinking last month. But is easily enough to give the system many of the irrational qualities that I once cursed other people's systems for. I also never had any deadli…

> massive complexity happens through many small, unintended consequences

Accidental complexity.

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#36

What insight does the author have to offer with this essay? It's easy to complain about complexity, harder to offer a simpler but equally capable alternative. The author makes it sound like simple is easy. As if it's just a matter of saying no to complexity, like saying no to memcpy() whenever we have a memmove() that's good enough. This is not the case. Simple is not easy. On the contrary, simple is hard . So you th…

The failure isn't in that we're adding too much complexity (we have to be able to create complex structures) or that we're not layering it enough (leaky abstractions build up). It's a general, and much more far-reaching, problem: our abstraction mechanisms are failing us. We need to stop complaining and put more effort into research. There are four or five projects working on this and, literally, hundreds of photo-sh…

Any links to such projects?

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#37

What insight does the author have to offer with this essay? It's easy to complain about complexity, harder to offer a simpler but equally capable alternative. The author makes it sound like simple is easy. As if it's just a matter of saying no to complexity, like saying no to memcpy() whenever we have a memmove() that's good enough. This is not the case. Simple is not easy. On the contrary, simple is hard . So you th…

The failure isn't in that we're adding too much complexity (we have to be able to create complex structures) or that we're not layering it enough (leaky abstractions build up). It's a general, and much more far-reaching, problem: our abstraction mechanisms are failing us. We need to stop complaining and put more effort into research. There are four or five projects working on this and, literally, hundreds of photo-sh…

"our abstraction mechanisms are failing us... There are four or five projects working on this and, literally, hundreds of photo-sharing startups."

But it's the same thing! It's the same problems

And IMHO in the technical places it's getting worse every day.

The reason some photo sharing apps are bought by a billion dollar is the same as why lots os people use PHP even though "it sucks". User experience and ease of use.

You don't need to limit yourself to a high level abstraction (like gnome) or provide the whole "under the hood" controls like you're flying an aircraft.

Complexity has to be managed and split into stages. C'mon, even VIM has a smooth learning curve (and not a learning abyss, or being shut out)

And stop the very prevalent mentality in technical circles of "if you're technical you have to read the manual". User experience has a place even when editing .conf files or using a command line tool, but some people make it out of the way harder just to make it accessible only "to the true believers".

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#38
post #23

is BCD really a bad idea? it's 2012 and generally we still have to live with binary-only floats and without a decently fast decimal arithmetic.

BCD is not a bad idea... It's not great, you can pack arbitrary precision values more tightly, and you rarely need to display them (even when you do, the screen is slower than the maths), but it's useful for a bunch of things and it's nice to think about.

But does it really need an instruction on every modern computer's processor to make it that tiny bit faster?

When was the last time you used a program that used that instruction? I've never run in to it (and I spend a decent amount of time looking at x86 assembly). Nonetheless, it shows up at the top of every instruction reference - you need to implement it if you want to simulate x86 correctly.

But at least I can run some old 8086 code on my computer... Right?

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#40

What insight does the author have to offer with this essay? It's easy to complain about complexity, harder to offer a simpler but equally capable alternative. The author makes it sound like simple is easy. As if it's just a matter of saying no to complexity, like saying no to memcpy() whenever we have a memmove() that's good enough. This is not the case. Simple is not easy. On the contrary, simple is hard . So you th…

In my reading I certainly saw insight, I think you're not pulling your 'world view' back enough when reading it and looking too closely at the examples.

I think his point is not that "ls" needs less flags, it's that it needs no flags.

Or that libpng is low-level versus high-level, it's more that there shouldn't even be a concept of low-level.

And the other thing he seems to be saying is that backward compatibility should be abandoned to allow libraries to actually mature instead of just bloat.

It was certainly food for thought to me. And you even seem to agree in the paragraph of Let me tell you what it's like to design small and simple software...

Post reply on HN