I always say that if someone figured out how to write better software faster, they would be a billionaire.
I see project after project turn to mush and go south, people writing the same stuff over and over again. I see brilliant people botch projects and struggle to do the work of a programmer. I see weekly data breaches exposing my personal information to whoever wants it.
To me, there is only one conclusion: Software is too hard to write. It is too hard to write robust large-scale systems. It is too hard to write secure software. There is DEFINETELY a ton of progress to be made in this area of research.
...in the mean time, I'll keep on cashing my paychecks.
Things that get in the way of robustness: state is based on the physical world. You knock something over, the state has changed. To change the state, you need to move a physical object, which typically means you need a human to do it; the programs can't change state officially. They get around this by storing state anyway, which leads to some weird behavior at times. They've experimented with using magnets to have the system be able to change the physical state, but it's a hard limitation to get around. Also, you want to make a backup of the data? No can do, because we don't have a way to clone physical objects.
Things that get in the way of scaling: all programs are running in a global shared space. Every program can write anywhere to the display or generate audio etc. It's pretty cool! You can run a program that overwrites all output with rainbows. Even more, every program has access to every other program. There's no security. For example you can put a program down on the table and point it at another program to change the second program's code. Cool stuff!
All of this goes against the things we are taught about modularity and scaling and security.
There's a lot of magical stuff going on at Dynamicland but I think it's not a way to create "software" as we think of it. It's a type of computing that isn't easy to do now. It's kind of like comparing a smartphone to a crystal radio kit. The smartphone does a lot of amazing things, and it does it at scale, but the crystal radio kit lets you and your friends tinker and make new things. Apples and oranges.
Dynamicland makes me think of Morpheus's line, "Unfortunately, no one can be told what The Matrix is. You have to see it for yourself."
But I think a lot of people keep falling into the same trap when it comes to imagining what the next set of major improvements should be. Graphical programming is a popular example: the author pooh-poohs the terminal, for example. But text is the densest way we can precisely convey information; if we're trying to scale to the next system size, cutting information density by ½ (or more!) is not a good first step.
[1] I'm referring here specifically to the principle that state should be contained with objects that are protected by interfaces and passed around to people who need access to them, instead of everything just being functions that manipulate global variables. This is closer to what Alan Kay's original definition than the current interpretation.
You don't necessarily need a terminal for a text-based interface (looking at you, Oberon). Our terminals are teletype emulators. TTY is hard-baked deep into the most prevalent operating systems and it affects what we consider "programming" and limits our collective horizon.
I take issue with that claim. For one, it is possible to enhance text (which I take to mean a sequential glyph representation here) with useful graphical elements which take up little space (e.g. making use of the often considerable amount of whitespace around text). And there are many types of information that are poorly suited to textual representation.
Of course, people may assign different meanings to the word text. To take an example from the article, you can say that a spreadsheet interface uses text in its cell values and formulas. But it is arguably not a text interface in the way CLIs and text/code editors are commonly understood.
Standardizing bar codes and color dot meanings could open the world to hacking -- i.e. stick a bar code on a building, and anyone can scan it and run the attached program.
[1] http://tablaviva.org [2] https://paperprograms.org [3] https://github.com/harc/nl-datalog
So...timesharing and punchcards?
Ha! I'm amazed at how often computer history repeats (rhymes?) itself. Not to discredit Dynamicland's work, if anything I love that they took something that seems so ancient and turned it into something excited again. Sounds like such a cool place to work at.
Now you could do it all on an iPad, but the bandwidth of shuffling cards by hand can be significantly higher than scrolling through a list.
A better idea which might solve some problems it aims to solve, without sacrificing inclusivity, might be going back to the Unix tools philosophy. Tools should do one thing, do it well and do it only. They should also work well with other tools. The design of smartphone operating systems forces apps to do the exact opposite. They're sandboxed and prevented from accessing most features of the OS, as well as from communicating with other apps effectively. That forces developers to put more and more features into their apps. It also gives many opportunities for corporate lock-in and user-hostile tactics. The Unix philosophy would alow anyone to contribute something, no matter how small or insignificant. There should be some verification, of course, probably similar to what Apple does. Forcing all the tools to be open source wouldn't even be such a bad idea after all. They wouldn't be big apps, just small things scratching small itches, so there would be no big investment needed to develop such a tool. I think such an approach would let us create a much more vibrant and user friendly ecosystem.
The primary indication I see that the project is at least somewhat flawed is this: I don't think you could build Dynamicland's systems in Dynamicland (the same way you might write a new C compiler in C). I don't think that's their target, but I don't believe you can accomplish their mission without that characteristic.
Don’t get me wrong I would love to play around with stuff. But that’s what it is, playing. Do you think any of the people who work there when working on a personal side project are like: “I can solve the problem of <foo> by printing out sheets of paper and organizing them on a table!” I would hesitate to call this project masturbation, but it comes close. Or just call it art, that would be fine too (just don’t pretend it’s going to matter all that much).
Dynamicland is the first iteration of what he envisions with "seeing spaces" - interactive, full body computing that allows for humans to create and communicate more effectively whilst using technology that fades into the background.
His personal site is sort of a tour-de-force: http://worrydream.com/
I think anybody who makes things that users use should spend some time there. If you just have time for one thing, check out: http://worrydream.com/#!/LadderOfAbstraction
My very very long-term dream about computing is something like nexus in the Nexus Trilogy[1]. Written by an ex-Microsoft dev, it’s a really great hard sci-fi cyberpunk take on the future of computing. Highly recommended!
> That arrangement lasted a little over a year. In July 2017, just a few months after HARC moved into a beautifully renovated building in old Oakland, Altman abruptly defunded the lab.
> It’s unclear why he pulled the plug. In his Y Combinator annual letter in February 2017, he said that the work coming out of Victor’s lab “remain one of the new technologies I think most about.” But a person close to Altman told me that by July his excitement had shifted from HARC to OpenAI, another YC Research project where he is now CEO. Amidst the ashes, a burned-out Kay left for London, and the research groups disbanded.
I was so excited when HARC was first announced. It's great that they were funded for an extra year, but it's really too bad YC couldn't keep funding Bret Victor's lab :(
I tried to visit last time I was in San Francisco and it turns out this thing is closed to the public. The guy who answered the door says he's not sure when the next open house will be, no one is answering the "contact" page and I'm not getting any email announcements on it either.
Is there ever going to be any "open house" when any joe schmoe is able to visit?
Seems like they're trying to achieve two incredibly difficult, dubious and complex goals at the same time, which doesn't usually work out in the end
Although if somebody got a decent web page design tool out of it, it might be worth it. The HTML/CSS/Javascript crowd has managed to turn a visual problem into a really ugly programming problem.