Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There's a core abstraction lurking behind tools like ZigZag, the Leo editor, hashtags, and C pointers/linked structures.

The hyperlink as the base abstraction allowed us to store and navigate individual nodes in a hypertext, but it doesn't work well for collections - thus it provides limited support for programmatic access.

Conversely, pointers & references in programming languages allow for easy handling/transformation of large structures (either loops or recursive traversal), but there have never been a really good visual representation beyond a few nodes, and are difficult to navigate.

A good tool should be based on an abstraction that worked well for linking information at separate places in the data space, and for retrieving collections as a whole. I have my ideas for how that abstraction should work, and even may develop a product around it eventually. ;-)



> Conversely, pointers & references in programming languages allow for easy handling/transformation of large structures (either loops or recursive traversal), but there have never been a really good visual representation beyond a few nodes, and are difficult to navigate.

Have you seen DDD (the Data Display Debugger) ? It's a graphical shell around gdb, and can help visualizing data structures.


Yes, that's the kind of user interface that I believe should be the basis for modern programming environments. It's also the example I was thinking of when I said that linked structures are difficult to navigate beyond the few first nodes; a "boxes+arrows" representation just doesn't scale well without a way to structure nodes hierarchically and summarize the state of whole groups of objects.

It's been many years since I used it, so it may have evolved to include features for displaying large datasets; however what is needed is something akin to Bret Victor's "Learnable programming" principles, which is more powerful than simply tracing a single deterministic execution path (which is what classic "debugging" is).


Can I email you? I'm working on similar ideas. I can't find an email address. My email address is in my profile.


Sure! I've just emailed you from my personal mail account.




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

Search: