Live data from Hacker News

Why Don't We Have a General-Purpose Tree Editor? (2014)

pcmonk.me

151–160 of 222 posts

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#151
post #137

Earlier quoted context omitted.

The author does mention such networks (AKA "graphs"), and there's a lot of discussion in the article's comments. Whilst networks/graphs in general are very expressive, they can also be tricky to manage in some situations; e.g. think of a graph containing a cycle: A -> B ^ | | V D How do we handle the order of these nodes and edges, e.g. for display or for serialising/deserialising? If we parse the graph from the text…

What's wrong with (A (B C) C D) ? For circular structures, you could also have: '#1=(A . #1#) Which is: (A A A A A A A ....)

> What's wrong with (A (B C) C D) ?

That's a different structure: it has two Cs in it.

> For circular structures, you could also have: '#1=(A . #1#)

That's what I meant by "references".

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#152
post #112
post #104

Earlier quoted context omitted.

> And what do you mean by "s-expressions just too simple"? Isn't simplicity something to strive for? I should stress "a bit". Actually, looking closer at s-expressions right now (I was writing based on what I remembered), I'd like to flip that statement. S-expressions are just a bit more complex than what I have in mind. Or alternately: they're equivalent under some trivial transformation. It depends on how you look…

I have reread your text several times, and don't get it. What do you gain by having no fundamental datatypes, only bits? What syntactical sugar is not expressible by s-expression + transformation rules? I am working on something like that too, and I'm completely fine with symbols (with their arbitrary definition by lisp and user) being the fundamental elements.

> What do you gain by having no fundamental datatypes, only bits?

I'd say what you gain is reusability, mostly. When you impose a datatype on data, it comes with a series of constraints and expectations, so you can only use the data in the ways prescribed by its type.

If the data doesn't have attached a type of is own, you can use it in different ways at different contexts - this can be valuable for data transformation processes, such as compilation or system interfaces. I suppose you could get the same effect by casting the data to a new type when you change it to a new context.

I've read a bunch about applying semiotics theory to programming, and changing the meaning of the symbols "on the go" is closer to the way we think (inferring meanings from the signs adequate to the current context) than the old mathematical approach of "every datum has one well-defined type, and only one".

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#155
A lot of tree editors aren't sufficient because he's asking about DAGs. Most tree-editing software only lets you have multiple children per parent, but you also need to allow multiple parents per child.

http://flyinglogic.com/ is on the right track. JVM cross platform and commercial.

Curious how jetbrains MPS could improve on something like that.

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#156
The author's use of "sufficient cause" brought to mind Sciral's Flying logic[0] which does some basic logic and sufficient cause in terms of Goldratt's Theory of Constraints. It's also useful for a number of other logical structures, like trees.

[0] http://flyinglogic.com

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#157

See to me the problem is the notion of tree structure itself. Forgive me because I don't know the correct mathematical way to talk about this: a tree is a particular type of network in which nodes can have only one direct parent and thus only share siblings with the descendants of that single parent. What we are really lacking is a good network editor, which would encompass not only trees but also more complex rhizom…

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/transformat…

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

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#159
I have wondered this exact same thing! I assumed tree editors did exist, and I was excited that all I needed to do was go find them. But Google did not come through for me.

Even a basic tree editor would be very powerful. Especially if you could run code from a repl that would change the tree (I know, that's no longer basic ... but it would let the graphical portion be basic, which might help it be bootstrapped into existence).

Re: Why Don't We Have a General-Purpose Tree Editor? (2014)

#160
post #3

Emacs has ParEdit minor mode which is a general-purpose tree editor. https://www.emacswiki.org/emacs/ParEdit edit: paredit demos: Productive Emacs: Paredit https://www.youtube.com/watch?v=T1WBsI3gdDE Emacs Rocks! Episode 14: Paredit: https://www.youtube.com/watch?v=D6h5dFyyUX0

Don't forget org mode or mind mapping software. Both are quite able with hierarchical data.

Can you (or anyone) name some good mind mapping software (other than org mode)?
Post reply on HN