Live data from Hacker News

We Who Value Simplicity Have Built Incomprehensible Machines

prog21.dadgum.com

91–96 of 96 posts

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#91
post #55

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 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. Simple by design might be hard, but "simplify in retrospect" is easy. It just needs you to be willing to sacrifice meaningless backwards compatibility and inflict some…

Users need to be able to get the functions they need. But the unix-way provides a mechanism for getting ls plus the functionality you want: have a shell macro run the minimalist ls and pipe it through a formatter.

Unfortunately, although unix scripting was good by the standard of its era, it's still not particularly good. Unix as we know it hints at great ideals that are achievable but lives up to them poorly. As a result, early packagers shoveled hacks into existing layers and we live with the result.

Evidence: arguments in commands like cat and ls; the crudeness of ps to represent the process table; inability for scripts to access unix systems calls; kitchen sink shell interpreters.

Why do we look to shell interpreters for command-line history? That should be done in a separate layer closer to the terminal. Had it been, we'd have two small unbloaty layers. Instead we have tcsh, bash and zsh.

You could have your ls formatting macros live in your personal terminal emulator and you'd never need to copy .bashrc hacks to each system. The formatter code might not even live on the remote system, it might be part of the terminal.

I suspect you could lay [racket scheme] + [a transform that converts python style whitespace code into parens code] over a unix that has /proc, and use that to create the layers you needed. With that in place, you could then start taking noise out of the unix tools and work towards a smaller distribution.

Plan9 is talked of as "unix done right" but I'm not convinced. Some things it does well, but it has lots of baggage. For example, you have to buy into their desktop to access the OS. How is forcing me to use a mouse and a particular tiling window manager a necessary part of a better unix experience?

I'd like to play with a plan9 fork where the only user interface assumption was a terminal, and where you could get a secure connection into that terminal. (Too inept to do it myself so far, but keep playing with idea of running it on linux, ssh'ing to linux as the jump box, and then telnetting into the plan9 instance. Still - what a hassle)

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#92
post #81

Earlier quoted context omitted.

I've seen these VPRI links before. I've read through that PDF and various web pages, but I still have a poor understanding of what exactly they are doing. Is it possible to summarize in a paragraph how they are able to achieve this LOC reduction? Is it simply that systems like Linux et. al. have been cobbled together by many hands over many years while VPRI has a single vision? Are there coding techniques I can use t…

The other comments here already explain how they do it on a high level, here I'll try to explain it on a slightly more technical level. They use DSLs very heavily. The heart of their system is OMeta, a high level pattern matching and transformation language. It works both on flat data (in which case it acts as a parser: transform flat text into structured data) and on structured data, transforming it to different str…

Links to source code repos can be found at http://www.vpri.org/vp_wiki/index.php/Main_Page

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#93

The thing is that simplicity could be right under a programmer's nose, already done, and they will pass right over it. They will start building something new when a simple solution already exists for what they are trying to do. Some people just want to write code. No matter if it needs to be written or not. It's like nervous energy. The important question that we fail to address in arguments about simplicity is "What…

> Some people just want to write code. No matter if it needs to be written or not. It's like nervous energy.

Maybe it's an attempt to play catch-up with the ``My Github is my resume!'' folk.

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#94
post #93

The thing is that simplicity could be right under a programmer's nose, already done, and they will pass right over it. They will start building something new when a simple solution already exists for what they are trying to do. Some people just want to write code. No matter if it needs to be written or not. It's like nervous energy. The important question that we fail to address in arguments about simplicity is "What…

> Some people just want to write code. No matter if it needs to be written or not. It's like nervous energy. Maybe it's an attempt to play catch-up with the ``My Github is my resume!'' folk.

"Github as resume" is about transparency. If everything you've written is useless, showing it off is not going to help you.

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#95

Earlier quoted context omitted.

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 sh…

"I think his point is not that "ls" needs less flags, it's that it needs no flags." Then don't use the flags. The default bare 'ls ' is sane 99% of the time for me, and I consider myself a junior power user.

same here. in fact i'd call it a power law--90% `ls`, 9% `ls -l`, .9% `ls -ltr`, .09% `ls -lhSr`, .009% `ls -d` .0009% `ls -i`, etc.

which suggests the default behavior, and arrangement of the flags, is very well designed.

(if i could change one thing, it'd be to make all the sorts ascending by default....)

Re: We Who Value Simplicity Have Built Incomprehensible Machines

#96
post #93

Earlier quoted context omitted.

> Some people just want to write code. No matter if it needs to be written or not. It's like nervous energy. Maybe it's an attempt to play catch-up with the ``My Github is my resume!'' folk.

"Github as resume" is about transparency. If everything you've written is useless, showing it off is not going to help you.

> If everything you've written is useless, showing it off is not going to help you.

I agree, but how else does one apply to a job that __requires__ a Github-like hyperlink?

Post reply on HN