Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!news.glorb.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!newsfe06.iad.POSTED!83aa503d!not-for-mail From: Daniel Pitts User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Source code representation References: <29cla79dh934epr5n27cghvupjk77mpuqr@4ax.com> <4eaab738$0$5147$e4fe514c@dreader17.news.xs4all.nl> <2011110101533290344-angrybaldguy@gmailcom> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Lines: 98 Message-ID: X-Complaints-To: abuse@newsrazor.net NNTP-Posting-Date: Wed, 02 Nov 2011 17:58:56 UTC Date: Wed, 02 Nov 2011 10:58:55 -0700 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:9382 On 11/1/11 5:33 PM, Gene Wirchenko wrote: > On Tue, 01 Nov 2011 09:41:00 -0700, Daniel Pitts > wrote: > > [snip] > >> I've often thought about a "new" way of representing code, where the >> logical structure is stored in not-necessarily-human-editable format, >> but the tools for managing the code allow it to be presented in a format >> chosen by the particular maintainer. > > One problem is whether you can replicate my way. I like my code > formatted a certain way. If your tool can not do this, I will not > like using it. I will avoid it if at all possible. Of course. The idea is that the view would be formatted to the individual contributors taste. Including folding of constructs you don't want to default visible, and potentially flowchart views or dependency graphs, etc... With an model that is more than an AST, much is possible. > > Other people feel the same way about their formats. Miss very > many possibilities, and you will have bad will from [|potential] > users. > > I was wading through the editor settings for Visual Studio and > ended up having to shut off a lot of the formatting, because the > formatting done was not to my taste. > > I was just looking through the editor settings for Dreamweaver. > It does not do what I want. This is getting a little off topic, but I would like to say the IntelliJ IDEA has a very flexible configuration for formatting that can do most of what you want. At the same time, being personally inflexible in what style you're willing to work in will limit your ability to work on many teams. I recently have started working on an open-source project which has different style than I am used to, or even prefer. Luckily, IntelliJ IDEA can be set up to switch between styles for different projects. > >> In other words, you have the language constructs (classes, methods, >> fields, statements, aspects, loops, etc...) modeled, and then have view >> in front of that model which make them "look" like something that can be >> manipulated easily by the programmer. > > A loop already can be manipulated easily by a competent > programmer. A single loop, yes, but aspects (joins and advice) can be more difficult to navigate. My idea was to make *everything* easier (or no more difficult) than it already is. > >> I would imagine such a system has a bit of ramp-up time, but it would >> eventually allow you to be much more productive. The "concrete" manor > ^^^^^^^^^^ ^^^^^ > Or it would be a straitjacket. Some programmers I know should be in a straitjacket :-) > > I do not understand the captioned words as used. Should "manor" > be "manner"? Yes, consider that a typo :-) > >> that the object model stores things would allow you to refactor very easily. > > How would you deal with the case of syntax errors? I sometimes > have a placeholder. A simple example would be: > i=0; > while (i { > > } > The point is that I might not know exactly what the looping condition > has to be. (In this case, I might be wondering if I will need a flag > for early exit.) I want to able to enter a placeholder should I need > it. I think a good solution to that particular problem is to have an unimplemented predicate method: while (thisLoopShouldContinue(i) {...} @ToImplement boolean thisLoopShouldContinue(); In general, "uncompilable fragments" would probably have to be supported at some levels. Since the tool would maintain a structured model, the fragments couldn't accidentally interfere with other parts of the code. For example, and extra ")" or "}" would be localized to the context it was entered in. > > VB 6 had a switch for compiling each line as entered. I did not > like it and disabled it as part of my configuration. Sometimes, in > mid-line, I would note that I had to change something else. When the > option was enabled, I would move off the line and often get a syntax > error. I knew that. I prefer to be told about compilation errors > when I ask, not to be interrupted by an overeager compiler. You're talking a lot about old-tech editors. Would you disable spell-checking on a document editor? Modern IDEs will highlight errors and warnings, without a lot of fuss. Yes, I sometimes leave a line half-finished too, and I'm grateful that my IDE will remind me to go back to that line when I get distracted on something else.