4 ms·
I find that Dijkstra's essays often rub me the wrong way. He readily admits that high-level programming languages are a huge improvement over machine code, and
by ebg13 6y ago
I find that Dijkstra's essays often rub me the wrong way. He readily admits that high-level programming languages are a huge improvement over machine code, and then says (I'm paraphrasing) "BUT YOU MUST NOT TRY TO GO FURTHER". What?! That's just crass!
Here it's like he's buried his head in a bucket of sand ensconced safely in his ivory tower, never having to interact with real people who have real desires for real things that could be solved with real programs if only baking apple pies from scratch didn't first require inventing the universe.
The first two sentences show this well, where he conflates dreaming of a more interesting future with blaming the machine for being just a machine.
> They blamed the mechanical slave for its strict obedience
They just want a more forgiving interface that makes developing programs easier and they're probably frustrated that it doesn't exist. That's not the same as blaming the machine. Like, at all. That's blaming _us_ for making obscene devices that you can't program without a fuck ton of training and practice.
How has one of the fathers of modern computer programming forgotten about the value of layers of abstraction and interactive feedback?
He's dismissing the very same drive that causes us to write libraries and wizards and not just programs. It's the reason why we can now just magic up GUI windows and shit without having to think _at_ _all_ about what it actually means to construct blobs of pixels that can resize and move around and scroll and receive clicks and blink and marquee and and and. It's why we can now send an email to our friend Jeff in one line of new code and have it actually work, because there are thousands of other lines of code behind the scenes doing the work for us that we don't have to even think about most of the time.
Would it really be so bad to try to keep going further down that road? To add abstractions for using real human sentences as well?
Would it be so terrible if we could one day say "make a window called 'my window', and put a button in the lower left, and when I click on it play a trumpet sound" (with default behaviors for size and padding and fonts and stupid shit like that that normal people don't actually care about) instead of having to copypaste a thousand lines of greek from some website?
Is it really so hard to imagine that a billion people are newly able to satisfy a billion simple desires over night every time we remove a small piece of that _need_ for always using bullshit symbols with unhelpful machines? That "but it won't automatically be precisely X" is a stupid programmer thing that only programmers say?
Is it hard to do? Yes. Would it be bad if we did it? Wtf, no.
- simonh 6y agoI think you’re mischaracterising his argument. His problem isn’t with further layers of abstraction, it’s with people complaining that those layers of abstraction still need to be strictly and unambiguously defined.
- ebg13 6y agoExcept that the higher up you get with your needs, regular person needs, where instead of constructing universes from subatomic particles you place pre-fab buildings, the less ambiguity matters. If I want, say, a window that adheres to the standards of the system and don't want to fuck about with fiddly shit that only programmers care about, the amount of acceptable ambiguity in the directive should be much higher. Because, for one thing, if my cognitive requirement is transformed from a thousand directives to one higher order directive, I suddenly have energy and time for clarifying dialogue and exploration of presented options. Like...right now I can google "email program" and be recommended an email program to download where I just click a button and suddenly I have a new email program installed. And that's even with google trying to organize literally everything being said online and being constantly bombarded by blogspammers and other malicious actors. It should not be horrifying to anyone to desire being able to program computers that way too.
- NateEag 6y ago> Would it be so terrible if we could one day say "make a window called 'my window', and put a button in the lower left, and when I click on it play a trumpet sound" (with default behaviors for size and padding and fonts and stupid shit like that that normal people don't actually care about) instead of having to copypaste a thousand lines of greek from some website? Applescript reads kind of like this. It's interesting to read but a terrible pain to learn, and as you get deeper into it, it still retains the subtle gotchas native to every programming language I've touched. There are always weird implications that you don't see until they bite you or someone points them out to you. Which, I think, touches on the case Dijkstra is making here.
- warrenq 6y agoWhat's a window? What's a Trumpet? Lower Left of what? How long should I play the music? Don't like the music that's played, oh too bad now you have to go one level deeper. Don't like the color of the button. Shit now we have to go another level deeper. When I click the button the trumpet doesn't play. Oh shit, now we have to go really deep