Live data from Hacker News

What have we lost? [video]

media.ccc.de

31–40 of 86 posts

Re: What have we lost? [video]

#31
post #26
post #20

Earlier quoted context omitted.

Well, did we? You can still do that! Those environments were extremely primitive and it doesn't take much work to match or vastly exceed their capabilities. This is so much the case we often don't even recognize such environments staring us in the face. Consider another story on the HN front page right now: IntelliJ 2021 is out. Load IntelliJ and you have something that which can be arbitrarily scripted, altered and…

IntelliJ idea is, in many ways, more advanced than Genera, yes. I use it every day. But I stand behind my assertion that we've lost something there: Genera had most of the features you listed (even though I didn't have time to show them), and in the case of debugging the debugger, AFAIK, you can't get IntelliJ into a state where the debugger is debugging itself, because in order to attach a debugger to an instance of…

I think you're right that the UI will block you from debugging itself, but, this is just a safety check that could be disabled. It might be a fun project to try and turn IntelliJ into a fully Genera-like environment.

I think as part of that you'd need to teach the debugger how to attach to itself without risk, probably by defining some notion of a protected system thread and then preventing breakpoints from affecting them. The JVM is certainly capable of doing this, although the debugger UI would have to be extended. I guess Genera either didn't have breakpoints or had some equivalent notion of un-breakable operations.

It's true that there's no way to just edit a single function and replace it, at least not out of the box. This is partly conceptual - Symbolics Lisp was pretty much a dynamically typed language if I remember correctly, as are most Lisps, and didn't have any real notion of version control or a compiler checking things for you ahead of time. You wouldn't want to edit only a single function in isolation if editing the internals of IntelliJ because a lot of the value of the tooling is putting the code in context via type checking, static analysis, folding and so on, which requires the rest of the code to be available and ideally visible.

Still, there's nothing missing from the core technology. To make things editable like that you could have a plugin that grabs the matching source zip for a selected symbol or bit of UI and opens it in a new project window, configured in such a way that compiling it causes it to be reloaded into the IDE. Either via the plugin reload mechanism or the bigger hammer of something like DCEVM, which lets you arbitrarily redefine classes at runtime even if their field layout changes. It's more of a workflow issue than anything else. The additional overhead is mostly buying you things you'd want anyway, like a notion of sharing and version control for your changes.

Re: What have we lost? [video]

#32
post #20
post #9

Earlier quoted context omitted.

We lost the environment where the whole OS was a debugger, and everything could be inspected and modified as the system was running.

Well, did we? You can still do that! Those environments were extremely primitive and it doesn't take much work to match or vastly exceed their capabilities. This is so much the case we often don't even recognize such environments staring us in the face. Consider another story on the HN front page right now: IntelliJ 2021 is out. Load IntelliJ and you have something that which can be arbitrarily scripted, altered and…

Great. So, can you hook in to a running browser the next time a tab crashes, fix it, and continue viewing the website, with no prior setup? How?

Re: What have we lost? [video]

#33
post #10

My university used to have researchers offer to pay students for testing out new OS ideas, such as 3D visualization of file systems. Some ideas looked super brilliant, but I had to look over at the researcher and smile because I didn't know how to use it. Neither would my grandmother. Sometimes the simplest ideas win.

> 3D visualization of file systems > I didn't know how to use it Skateboard around thorough virtual file systems like "Plague" in the movie Hackers[1][2] [1] https://youtu.be/kV_i8AefT8I [2] https://youtu.be/LkqKFamTkME

An actual working implementation was psdoom, in which one could visualize processes in the Doom game environment, then wander around killing them :)

https://www.youtube.com/watch?v=JSpHc945G38

Re: What have we lost? [video]

#34
post #29

Earlier quoted context omitted.

Fitting Lisp in a stack based machine (or vice-versa) is mostly a compromise, not exactly a "realisation" of a "clever" method, because Lisp makes extensive use of list appends/concats, environments and garbage collection, which are not an easy fit for heap/stack C abstractions.

I challenge you to create a piece of hardware that can execute Lisp faster than a modern x86 CPU. This compromise was chosen because you can’t without spending billion of dollars.

which does not imply that we haven't lost the architecture and hardware innovation associated with it

Re: What have we lost? [video]

#36
post #32
post #20

Earlier quoted context omitted.

Well, did we? You can still do that! Those environments were extremely primitive and it doesn't take much work to match or vastly exceed their capabilities. This is so much the case we often don't even recognize such environments staring us in the face. Consider another story on the HN front page right now: IntelliJ 2021 is out. Load IntelliJ and you have something that which can be arbitrarily scripted, altered and…

Great. So, can you hook in to a running browser the next time a tab crashes, fix it, and continue viewing the website, with no prior setup? How?

Well, yes, unless you count installing IntelliJ as prior setup:

https://www.jetbrains.com/help/idea/debugging-javascript-in-...

It'd be easier to do it with the Chrome debugger though. I sometimes 'fix' websites that have annoying popups or similar with the dev tools.

With complex apps you have the problem that the owners don't want you modifying them, so they're minified and have other techniques applied that debuggers don't like. But that's not something a Lisp machine would have fixed. You can obfuscate any program.

Also, debuggers aren't the same thing as code editors so of course, you'll lose your changes when the page reloads. Making them persistent means throwing together a browser extension.

Chrome is not like IntelliJ though, because Chrome is a compiled C++ app. It's not written in JavaScript and it isn't a reflective environment like IntelliJ is. With IntelliJ you actually can do things like just open up an editor tab and invoke arbitrary internal functionality. With Chrome, not so much.

Re: What have we lost? [video]

#38
I was recently thinking a bit about how one could create a typed Forth-like system, by adding a 3rd parallel stack that would hold the type on the data stack, and was used for type checking.

I really wanted to like Forth (which is very similar to Lisp/Smalltalk systems, even possibly more elegant in some respects), because of the system extensibility, but the stack errors drove me crazy. So if the system had the ability to show the types of things on the stack (or name them) while programming, that would be a big help.

Such Forth seems to be surprisingly close to Haskell (or other lambda calculus like language), which I really enjoy lately (I wouldn't go back to Lisp), but written in reverse.

Re: What have we lost? [video]

#39
post #38

I was recently thinking a bit about how one could create a typed Forth-like system, by adding a 3rd parallel stack that would hold the type on the data stack, and was used for type checking. I really wanted to like Forth (which is very similar to Lisp/Smalltalk systems, even possibly more elegant in some respects), because of the system extensibility, but the stack errors drove me crazy. So if the system had the abil…

That sounds really cool, and I'd love to see the result if/when you build it
Post reply on HN