Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Rage Against the God Machine (buttondown.email/hillelwayne)
62 points by lelf on June 7, 2020 | hide | past | favorite | 28 comments


This is neither a flaw in our computers nor a flaw in our programming languages. It’s a consequence of two things. Firstly computers only do precisely what you tell them to do. Secondly we don’t know exactly what we want them to do.

It’s that second part that’s the real issue. It turns out very precisely, and completely unambiguously only expressing exactly what you want to happen, when you want it to happen, in every conceivable circumstance that might occur, based on very specific assumptions of the conditions in which it might happen, is quite difficult and complicated and error prone to achieve. Also if we get any particular detail wrong - the assumptions about the problem, the order of events, the anticipated conditions, the system fails.

But that’s it. That’s the problem. Beings precise and unambiguous is hard. Formulating our assumptions is hard. Anticipating every circumstance is hard.

Why is this so? Our brains just don’t work that way. They’re randomly variegated, fuzzy logic, neural network, pattern matching, feedback loop driven mammal organs. It’s amazing they work at all. They only get things sufficiently right because all the ones that got it badly enough wrong got themselves killed before they had offspring. Not only that, but we’re actually only just barely intelligent in a general sense. After all, in evolutionary terms we only just very recently gained enough intelligence to develop significant technology, otherwise we’d have done it sooner. We’re at the very edge of the lowest threshold for achieving a technological society. No wonder we find this stuff hard.


This resonates so hard it hurts. And yet, part of the problem here lies in the very tempting framing. "God machine" implies something that can do everything you can but better. That's very far cry from the truth. In reality we have two kinds of computation in the world now. One is slow, flexible, resilient, easily bored. The other is fast, rigid, literal-minded, mindlessly focused. When I put it like that it becomes easier to accept why things are hard. To make programming easy is to help slow, flexible computations create fast, rigid, literal-minded computations. That's an unsolved research problem.

However, there is one easy problem being alluded to in the article: keeping software working over time. It's frustrating to me when I hear about somebody building a program for themselves that suffers bitrot a couple of years later. The reason is the tower of dependencies we tend to program atop. All we have to do there is stop digging the hole deeper. Shameless plug: http://akkartik.name/akkartik-convivial-20200607.pdf


"And I’d find myself again and again at that edge, tangent to reality, where the air is clear and the shadows are too deep."

This is such an incredibly captivating description of depressive episodes. There is a stillness and creeping greyness to depression that sets it apart from just about any other experience.

Brrrhh


In my deepest ever plunge into the unfathomable depths of depressive despair, I saw the walls were crying.


Does anyone know of a language like this? My first thought was that it would probably be something Lisp-y, but I realized I’m not sure if I’ve ever seen a language that was scaled to individual coders by design. Sounds like a really interesting way to consider how a programming language should make its compromises...


> Does anyone know of a language like this? My first thought was that it would probably be something Lisp-y, but I realized I’m not sure if I’ve ever seen a language that was scaled to individual coders by design.

The Lisp Machines were designed to be individual workstations, in an era when virtually all computers were batch or time-shared machines. I remember seeing a video from Symbolics, the leading Lisp Machine vendor, from the late 80s. Some VP of product development was on the screen, and he was talking the usual business stuff: blah blah improve developer productivity, blah blah features, blah blah. Then he said something interesting, something I've never heard from a hardware or software executive: "We want to make it possible for a small team of developers to build large projects, and for a single person to build a smaller project." So the idea of an individual programmer or a small strike team being able to build software of virtually any size is very much part of the Lisp culture.


> Lisp Machines were designed to be individual workstations

in networked environments. They were developed for use in early large networks like Xerox Palo Alto Research Center and the MIT. They were an early (starting mid 70s) step from time-shared hosts to personal networked workstations for developers.


Something LISPy with optional typing would probably be about right. But I think the real obstacles are in the ecosystem. There was a hint about "idiosyncracies of Heroku and Twilio". Technology for quickly deploying applications and sending text messages all over the world exists multiple times over. Why does it still take so much effort to integrate them? Why is business logic such a small portion of our codebases, and duct-tape such a large portion? Part of it is plain inadequate industry experience in building high-powered abstractions, but also market forces and network effects.


Definitely Smalltalk, and possibly some lisp systems built by individuals or small teams. The key idea is the absolute flexibility & malleability of the system, by giving users control of its internals, and having a small conceptual footprint.


GH link, it's in Python, looks like it's using Django.


Forth


Most of us have neural circuitry to interface with search engines. We are very quick to find keywords along with predictions for what might be returned. We have augmented ourselves, but our bandwidth to the machines is still very limited.

I used to suffer much more from depression. Turned out I had to cut milk and wheat from my diet. What a stupid reason to waste 10 of my best years. I don't trust doctors at all now.


Why do you figure cutting milk and wheat from your diet helped?


Lower inflammation values and no more bowel problems.


The trick to depression is to get older.

If it doesn't work straight away then try some more.

(that's my hope at least, if it doesn't work then at least I die at the end)

Strength is such a wonderful idea. The dao makes a distinction between being strong (external) and having strength (internal).

Somehow containing all your demons and greeting strangers with kindness is an unparalleled feat of strength that no one can witness except you yourself.

Becoming your own witness, detached from the hatred or the euphoria, is the hardest thing about living with depression - but afaict it is the only road available.


There isn't a single path out of depression. There are many paths. Unfortunately, they don't all work for all people.

For me, mindfulness was key. I understand that doesn't work for others.

Just like some people like cilantro, and I hate it, just because something works for one person doesn't mean it would work for the next.


Yes, I realized a few years ago that humans are not yet ready for computers. They're great inventions, capable of a few fantastic things, but getting them to do much of anything requires something alien to most humans' thinking, and as a result has a lot of unintended consequences. That said -- try Lisp. I find it greatly expands the class of problems solvable by a single programmer. And to the extent possible, rely less on SaaS and trendy frameworks, and more on simple libraries or components you build yourself.


Isn't that widely regarded as being the reason Lisp never caught on. Everyone writes their own standard library so nobody can understand each others' code.


Just because it's widely regarded as such doesn't make it true. I find Ruby on Rails code to be more impenetrable than Lisp, and no one can say Rails didn't catch on.


It's an interesting challenge. Could something like AI help people in the future? A more consistent, selfless human?

But if you need help with these kinds of issues right now I think computers and networks are the wrong place to look. They are ok as tools to get work done. But apart from that, technology is like some fascinating individual that takes up a lot of your time until one day you realise their perspective is off. And perspective is everything.


How do you mean by their perspective being off?


I am trying to solve this problem with a generalised user interface platform. The aim was to separate data storage and data representation, so that two team members could work from the same source of data and have it represented in different ways.

Collaboration at no cost to individual UX. But i never really got it to work because noone ever wanted to collaborate with me in the first place...


I'm impressed at OPs life, tbh, and I'm glad for them. Building a life while battling depression and other illness is really hard.

I find that I'm happier when I build something physical, with my hands, something I can see. Technically, software is the same, yet somehow it's different.

The shitty websites and apps that I built somehow seem unimportant compared to the plants that I've grown from seeds, the irrigation system for them or my smokeless(ish) garbage incinerator.

I guess what I'm saying is maybe there's better work for such people, something that would make us/them happier and more content.


Author here. Normally I try to avoid discussing the content on HN (I have weird beliefs about author engagement), but I wanted to share my thoughts on this.

I mostly agree with you about the manual labor thing. Outside of tech I'm a really avid cook and chocolatier. There's something special about holding a cherry cordial in your hand and thinking "I made this" that I've never gotten with programming. Cooking is one of the very few things I know that can help me cope with depression. Not stop it, nothing can stop it, but at least make it feel little bit less awful in the moment.

(This can lead to some funny situations where I'm hungry and want to cook but have zero appetite, so I make a dish, put in the freezer, and stay hungry.)

But tech helps in other ways. When I'm sane, tech is something that I look forward to, that keeps me mentally engaged, that gives me new puzzles every day. I'm proud of some of the things I've done, maybe not to the same degree that I'm proud of the chocolate I make, but still proud in its own way.

My problem isn't so much that software causes problems as much as that software could do so much more to help. Software augments our brains in a lot of different ways, making it easier for us to remember things, organize information, and communicate. It feels like there must be _some_ way to turn all that computing power into something it helps with mental illness, too. But any such thing would probably have to be very personalized to the person using it, which is something we can't really do that well right now.


> It feels like there must be _some_ way to turn all that computing power into something it helps with mental illness, too. But any such thing would probably have to be very personalized to the person using it, which is something we can't really do that well right now.

Interesting, I've been thinking about this for the past year. I'm thinking a sort of personal assistant/therapist, and I've also come to the conclusion that it would have to be really personalized for the person using it. And probably very integrated with the hardware you use. But I do believe it's possible to create it.


Software is good at codifying processes. Part of what I have hated the most about cognitive behavioral therapy at times is what a rote process it is (even when it must be to be effective). I suspect someone will come up with something good here only as a matter of personal production rather than VC-moonshot.


At the very least, you would need some therapist knowledge about the person using such a CBT software.

Likely from your actual therapist, but it could be done with a lot of self-introspection/discovery - the problem with the latter is that if you come to the wrong conclusions about your own problems and solutions (which is likely) it could lead you further astray.

So every copy of it would need to be very customizable and very private at the very least; medically certified, maybe.


Thank you.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: