random rant: we talk about end user programming, b...
# linking-together
m
random rant: we talk about end user programming, but we don't even have programmers programming for most tasks, I wanted to save all the links from a page as pdfs to read them offline while I travel, the reason I save them as pdfs is that the style of the pages looks really bad (small text, really long lines, no margins or paddings) and saving them as pdfs makes them readable, saving them to pocket doesn't fix it either. So I have to long press each link, open in new tab, then switch tab, select menu, page > download as pdf, close tab, for each link (more than 20), then I go to the file manager, I can't figure out the gesture to select a range (click, shift click on a laptop, I'm on the tablet I will take on the trip), I select each item manually, select share to google drive so that they appear on my cellphone too. either the file manager or google drive decides to upload all the files with the title "Untitled", not the filename, not the pdf title metadata, just Untitled. There's no way I, a programmer, can automate any of this, neither can I discover if there's a feature or gesture I need in the applications I'm using. Where I'm going is that a closer objetive may be an "advanced mode" for applications, it doesn't have to be easy to start, but at least it has to be possible, we are not even there 😕
💯 3
☝️ 3
i
Hmm, there is a certain breed of programmers that could and would automate a task like that, though.
💯 1
I mean commandline unix geeks.
However, that does not invalidate your point in general. Just meant the remark as a further food for thought.
m
I could use curl mirror and some html to pdf thing on my computer, but I'm on a tablet, it's not possible there
🤔 1
just to add it, since drive stored everything as untitle, now they are not sorted by order (the filenames had a number at the beginning that sorted them nicely). I wanted to select "available offline" for the folder, it seems it's only possible per file, so I have to select the 34 items one by one (same problem as before, but on drive) and then select "available offline"
k
Since we're ranting, I'll throw out something I've written out and deleted a couple of times. End-user programming shouldn't stand in contrast to programmer programming. Any vision that relies on these categories feels doomed to me. We all rely on the same primitive mechanisms. People who use your shiny new platform will quickly find that there are limits to its power. You'll just end up perpetuating the same learned helplessness we all feel when faced with our computers. Meet the new master, same as the old master. It's like we're on a riverbank littered with half-built bridges to the other side. It may be more worthwhile to swim across and start from the other end. At least, not many people have tried it so it seems worth trying. This constraint seems to apply particularly to any GUI work. The state of graphics rendering is utterly abysmal across all platforms. The sheer depth of the stack needed, the performance-sensitivity, the number of leaks in abstractions everywhere (especially in service of performance), these all ensure that anybody thinking about new UIs will need to eventually think about their underpinnings, the way artists constantly think about the sourcing of their paint (https://quoteinvestigator.com/2016/10/20/turpentine). You can't run a restaurant with just a facade. Front ends need back ends. And we don't have good back ends, so you're all on your own there. That seems depressing (and it's why I've avoided graphics in my projects so far). But there's one simple thing we can all do to at least avoid digging ourselves deeper: avoid tablets, iPads, mobile devices. Or at least stop trying to make them programmable. They are fundamentally closed, and adding programmability is an exercise in frustration. Worse, you're liable to hook someone else who may otherwise have moved to a more programmable platform. So those are my constraints today: • I refuse to build for iOS or even Android. • I avoid working on GUIs for now, until I have some sort of story for the destination that I can sleep easy with. • I try to avoid 'thick' platforms that have a lot of implementation complexity. (e.g. Rust) • I'm considering creating my own hardware. (I've always wanted to just be a brain in a vat, so this is extremely painful.) If all this seems too hard to be worth doing, consider that the hole is this deep because the multitudes before us overwhelmingly chose expedience. Someone somewhere has to turn against the tide even though it seems impossible. I try to spend some time everyday where I work without regard to the incentives my environment gives me. I'm a rat in a maze, but this is my way of screaming at the cosmos. A rat in a maze isn't all I am.
💯 1
w
Totally with you on the rant. Right in line with what I was thinking reading the End-user programming https://futureofcoding.slack.com/archives/C5T9GPWFL/p1553137796402100 thread. Most GUIs have no way to abstract over the actions we perform in them. There's rarely a direct way to do the exact same thing twice let alone slightly different things. Of course, there are hard conceptual problems, but the seemingly arbitrary you-can't-get-there-from-here feels the worst.
❤️ 2
s
I agree that end-user vs programmer programming shouldn't have a hard boundary.. at the same time I also love all the end user programming initiatives. My hope is that we get develop and refine the good ideas trying to do end-user, specially wrt scale, collaboration, tangibility, dealing with complexity etc. and we can then just apply those ideas for programmers. The programmer is just an end-user in a different domain.
For instance the hypermerge documents (https://github.com/inkandswitch/farm) could be even a solid foundation for 'programmer programming', once you have a suitable programming language designed for it.