3 ms·
Yes, it's arguable. :) (curmudgeon)A well-formed program is "defined" as what the compiler expects. Like literate programming, this hides from me what's being
by a3n 9y ago
Yes, it's arguable. :)
(curmudgeon)A well-formed program is "defined" as what the compiler expects. Like literate programming, this hides from me what's being presented to the compiler, and sets me adrift from what the program actually is.(/curmudgeon)
It also reminds me vaguely of writing with Framemaker.
- edmccard 9y ago>this hides from me what's being presented to the compiler Isn't that the whole point of abstractions? Like, when you write a function call, you see "foo()" but the compiler sees all the individual instructions in the function. The same with macros, templates, etc. And on a purely visual level, the example 'jtsummers gave just seems to be an extension of code folding and other tools that let you focus on one part of the code while ignoring another.
- geocar 9y ago> Isn't that the whole point of abstractions? Abstractions are the wrong thing to chase. Just because an abstraction will put you further away from a technical problem, doesn't mean will get you closer to solving your business problem.
- TeMPOraL 9y agoThe essence of programming is being capable of constantly walking up and down the abstraction ladder. Trying to hide behind a perfect abstraction is as problematic as the belief that abstractions are evil because they're too complicated. Abstractions are transient. You want to use them when they help you, but it's good to be able to step down and verify what's going on.
- edmccard 9y ago>The essence of programming is being capable of constantly walking up and down the abstraction ladder ... it's good to be able to step down and verify what's going on. Good, yes, desirable, often, but I wouldn't call it "essential" to the art of programming. I once worked for a company whose data was managed by a COBOL application on a mainframe a couple hundred miles away; there was no walking down that abstraction ladder (without shelling out a five-figure support fee), so our in-house IT department had to take advantage of the fact that the 3270 terminal emulator we used to access the mainframe, could be driven through a COM interface. I'm sure there are lots of other examples of jobs that don't have the luxury of being able to step down and verify lower-level code, and I wouldn't characterize them as missing out on some "essential" aspect of programming.
- justinpombrio 9y ago> (curmudgeon)A well-formed program is "defined" as what the compiler expects. Like literate programming, this hides from me what's being presented to the compiler, and sets me adrift from what the program actually is.(/curmudgeon) (idealist)Well, there's no reason the compiler has to accept programs only as plain text. It's actually a pretty poor representation of your program: the language has to go out of its way to parse it. Internally, your program is an AST; this editor works over frames, which are closer to the AST than they are to plain text; perhaps they could both use the same non-textual file format.(/idealist)
- TeMPOraL 9y ago> (idealist)Well, there's no reason the compiler has to accept programs only as plain text. It's actually a pretty poor representation of your program: the language has to go out of its way to parse it. Internally, your program is an AST; this editor works over frames, which are closer to the AST than they are to plain text; perhaps they could both use the same non-textual file format.(/idealist) For that you have Lisps, which hit the sweet spot by being human-writable ASTs that are trivial to parse (at least if you don't play with reader macros too much).
- Jtsummers 9y agoIt doesn't necessarily hide anything. Imagine Python augmented by this display. With C or Java you can show the curly braces but fade them into the background a bit and highlight the overall structure. I've seen similar things done for Lisp in the past, all the parens were there but deemphasised in favor of structural highlighting like this frame based editing concept.