richardjdare
Joined 13 years ago
Joined 13 years ago
Its fair enough to say that lisp machines had this or that hardware limitation, or that they weren't really compatible with market needs, but to criticize 'lisp machine romantics' like this article does is to fail to understand what really motivates that romanticism. Maybe you have to be a romantic to really get it. Romanticism is abstract, its about chasing feelings and inspirations that you don't really understand yet. Its about unrealized promises more than its about the actual concrete thing that inspires them.
(I'm also an Amiga romantic, and I think what inspires me about that machine is equally abstract and equally points to a human attitude towards making and using software that seems sadly in decline today)
I got my start with Blitz on the Amiga, after it was featured in Amiga Format magazine. Back then it was expensive learning to code, but with Blitz, which cost about £60, you could write hardware hitting games, native GUI apps and terminal programs out of the box. There was nothing stuffy about it either, from the docs and Blitz User Magazines, you knew you were dealing with some fun loving kiwi guys who liked their games and rock music.
And unlike a lot of high-level languages back then, (which were a bit slow) you could, if you had the right design, create something in Blitz that stood alongside mainstream video game releases. Worms and Super Skidmarks were popular commercial Blitz games.
I owe Mark a lot. I did not have a background favourable to becoming a programmer, but Blitz helped make that possible.
I gave up in the end. But I will have to sort it out before I can release the Mac version of my current project.
However I didn't get a PC until 1996 as they were so expensive. I grew up in rural working class England, and there were a whole bunch of us kids who got into computers and programming thanks to cheap home computers. Suddenly we couldn't afford to participate anymore, it was a really hard time to be a nerd.
Accessibility, and ergonomic access to the power of the machine definitely has a lot to do with it. Blitz Basic is a good example. With Blitz on the Amiga you could write hardware hitting games, native GUI apps and command line tools out of the box, with no dependencies and none of the tedious configuration and administrative work that now accompanies supposedly high-level languages today.
You'd think that in 2024 our high-level language environments would be even more ergonomic, that you could open a window, play a sound or draw something in one line of code, out of the box. But we've let that fall by the wayside. It frustrates me every day when I think back to the future I imagined as an Amiga user.
I really hope that the Amiga's accessibility and immersiveness is something we can revive in some way. Our systems are now very complex, but I don't believe that should preclude such complexity being within a humane, ergonomic framework that can be navigated and known.
Why do I still have a clunky character-mode terminal instead of a Listener that can display rich text, images, mousable forms? Just think what we'd have today if we'd worked on that paradigm for 30 years instead of fetishizing the limitations of 70s minicomputers.
Why is it that when I type a command into said terminal and forget a parameter, I have to delete it, or open another window to type 'man', whereas on Genera I can hit <help> and view (rich, hypertext) documentation for a specific parameter, inline, while still typing in the command? That little feature was a revelation.
Genera's fluid, ergonomic developer experience is something we are turning away from more and more these days. Programming is increasingly surrounded by the most tedious bureaucratic and administrative work. The hoops I have to jump through before I can start creating something in a programming language are only increasing. If people had paid attention to Genera and to Lisp machines it wouldn't be like this.
And I've only mentioned surface aspects of the user experience. I haven't talked about being able to debug anything, or the idea that what look like applications are actually "substrates" that I can potentially use as APIs for my own work. We haven't scratched the surface yet.
Back then, it wasn't so much about limitation, though size-coding was always a thing. It was about seeing something new and cool that hadn't been done before. Pushing things further artistically and technically at the same time.
The Amiga was one of the most powerful machines available to the home market so programming it didn't feel like working under constraint, it felt like pushing the envelope of what was possible. Nobody had anything to compare it to, except maybe SGI workstations, which you'd only see on TV shows about movie special effects.
At that time demo programmers had parity with game developers and were sometimes the same people. You generally saw higher quality and more innovative effects in a demo than you did in even the biggest video games. And there was no video playback on computers, so all graphical effects you saw had some element of demo-scene adjacency, which made the whole thing feel unified, progressive and relevant.
As time went on and technology changed, it became less feasible for lone bedroom coders and small groups of Scandinavian teens to reach that "edge", and keep pushing the boundaries with the same mindset as before, so the emphasis of the artform seems to have changed towards constraint, and towards working with retro machines as historical artefacts.
The scene has had to reinvent itself a few times. I remember reading articles in HUGI diskmag 20-odd years ago discussing how demos had changed from being about hardware hacking, and getting graphics chips to do unusual things, to becoming more of an "algorithmic trip" thanks to the new pc graphics cards that were coming out.
Nobody else can access my experience. Nobody can move my arm from the inside like I can, nobody can see through my eyes, read my memories or know how it feels to type this right now, sitting on my bed with my cat beside me. My experience is inaccessible to others unless I communicate it to them, with great inaccuracy and crudeness through some system of symbols.
To me, this existential situation seems much more of a foundation for the individual self than linguistics, capitalism, or whatever Edward Bernays did 70 odd years ago.
Personally, I have these kinds of dreams about other people. I usually have a very particular type of dream, or series of dreams when somebody is going to die, or has died. It doesn't comfort me as much as it should. Death is still death.
It's like, "The universe is arbitrary and silent most of the time, but when we take someone from you, we want you to know that we really mean it."
I often write short programs interactively to manipulate the text I am working on, and have a whole bunch of Elisp code for common things that come up at work. For example, transforming a pasted ad-hoc spreadsheet column into sql insert statements (because nobody wants to pay to add that functionality to the software, and they email me instead). I used to have a bunch of code for generating Java boilerplate, and even entire classes but the situation has improved in recent years...
Sure I could write scripts or conventional programs to do these jobs, I just prefer the interactivity and fluidity of Lisp environments. Also, being an Emacs user means I can write Lisp at work and get away with it.
Having said all that, I tend to primarily use a dedicated IDE, with a general purpose text editor in the background. I will use Emacs alone when I am writing plain text, Common Lisp, or simple stuff that doesn't require a load of configuration or a complex toolchain. I want the IDE to take care of that for me.