4 ms·
Why is hierarchical organization correct?
by chipsy 12y ago
Why is hierarchical organization correct?
- ericHosick 12y agoThey are going for a visual language, and visual languages are inherently hierarchal. The goal is to easily represent context of any part of a program in a visual way. Trying to map source-code that stores a lot of it's context on the stack is really hard to visually represent. Trying to represent the stack in a visual way makes for a icky looking visual language. However, if you can keep all of the context/state of your program in one area and it is hierarchal... Then, you can build great visual representations of your program because, really, you are displaying a data-structure (your program becomes a data-structure). So, all the cool things you can do visually representing data-structures, you can do with your actual program.
- jamii 12y ago> They are going for a visual language 'Visual language' is a very overloaded term and we are in no way set on any particular ideology. Textual languages and visual layout have different strengths and weaknesses and there are lots of cases where it makes sense to mix both. There is plenty of evidence that both are useful (eg http://www.amazon.com/Small-Matter-Programming-Perspectives-Computing/dp/0262140535/ http://www.amazon.com/Small-Matter-Programming-Perspectives-...). My only aversion to text is as an unstructured storage and communication format - it makes much more sense to allow tools to communicate using a shared, versioned and structured database rather than watching for changes in text files. > visual languages are inherently hierarchal Excel - https://www.google.com/search?q=excel&client=ubuntu&hs=fRx&channel=fs&source=lnms&tbm=isch&sa=X&ei=rmVAVNyJFoKMoQTS5ID4Ag&ved=0CAgQ_AUoAQ https://www.google.com/search?q=excel&client=ubuntu&hs=fRx&c... Access - https://www.google.com/search?q=access&client=ubuntu&hs=Jnc&channel=fs&source=lnms&tbm=isch&sa=X&ei=6WVAVILxN9CZoQTn14DABA&ved=0CAgQ_AUoAQ&biw=628&bih=1051 https://www.google.com/search?q=access&client=ubuntu&hs=Jnc&... Labview - https://www.google.com/search?q=labview&client=ubuntu&hs=v5H&channel=fs&source=lnms&tbm=isch&sa=X&ei=aGVAVL23FoKrogS4oYE4&ved=0CAgQ_AUoAQ&biw=628&bih=1051 https://www.google.com/search?q=labview&client=ubuntu&hs=v5H... Blender - https://www.google.com/search?q=blender+node+editor&client=ubuntu&hs=TRx&channel=fs&source=lnms&tbm=isch&sa=X&ei=omVAVMnKFIjwoATN-IDYBg&ved=0CAkQ_AUoAg&biw=628&bih=1051 https://www.google.com/search?q=blender+node+editor&client=u... PureData - https://www.google.com/search?q=puredata&client=ubuntu&hs=4Sx&channel=fs&source=lnms&tbm=isch&sa=X&ei=BWZAVLqgJ4KRoQS81ILYCA&ved=0CAkQ_AUoAg&biw=628&bih=1051 https://www.google.com/search?q=puredata&client=ubuntu&hs=4S... TouchDevelop - https://www.google.com/search?q=touchdevelop&client=ubuntu&hs=Toc&channel=fs&source=lnms&tbm=isch&sa=X&ei=MWZAVL7sEMasogSn9oLQDw&ved=0CAoQ_AUoAw&biw=628&bih=1051 https://www.google.com/search?q=touchdevelop&client=ubuntu&h... Kodu - https://www.google.com/search?q=kodu&client=ubuntu&hs=N9H&channel=fs&source=lnms&tbm=isch&sa=X&ei=PmZAVLPYFoT3oASf2IH4CQ&ved=0CAgQ_AUoAQ&biw=628&bih=1051#channel=fs&tbm=isch&q=kodu+program https://www.google.com/search?q=kodu&client=ubuntu&hs=N9H&ch... Pretty much the only hierarchical example that comes to mind is Scratch. > Trying to map source-code that stores a lot of it's context on the stack is really hard to visually represent. Yes. But non-local scope and control flow are also pretty hard to represent and understand. That's why we ended up avoiding both. > However, if you can keep all of the context/state of your program in one area and it is hierarchal... It doesn't have to be hierarchical. Excel and Access both have amazing (by programming tool standards) visual representations of your program and your data. > So, all the cool things you can do visually representing data-structures, you can do with your actual program. Data and code are different though. Eve is homoiconic-ish (code is stored in tables) but the actual visualisations and manipulations applied in 99% of the use cases are very different. We don't spend nearly as much time manipulating code as data compared to reading, writing and understanding code so it makes sense to default to visualisations that optimise for the latter.
- seanmcdirmid 12y agoMost of those languages have some kind of hierarchy. Lab view can define sub-components, TouchDevelop is basically procedural, excel has sub-sheets. Kodu is not hierarchical, but neither is it really a full language and the Brooks' subsumption architecture it is based is hierarchical (check out [1] on how to make Kodu hierarchical). [1] http://research.microsoft.com/pubs/179364/p61-mcdirmid.pdf http://research.microsoft.com/pubs/179364/p61-mcdirmid.pdf
- chipsy 12y agoAre sub-components and sub-sheets an argument for _hierarchy_, or for reuse of symbols? I think it's the latter.
- seanmcdirmid 12y agoAs far as abstractions go, they are hierarchical. Actually, abstraction is all about breaking up and managing complexity into separate parts, and one would do pretty poorly without any hierarchy in their code. Even Kodu is hierarchical to a limited degree since each bot is programmed separately, but its not unlimited as in the other examples listed (which I would argue, is necessary to be considered hierarchical).
- chipsy 12y agoOP's premise wasn't that "hierarchy exists", but that it's "the correct organization of data." Now you are just glibly pointing out that everything can be structured as a hierarchy. That does not make the case.
- seanmcdirmid 12y agoI'm not pointing out that everything can be structured in a hierarchy, I'm pointing out that everything needs to be structured in a hierarchy at some point to deal with complexity; these are very different observations.