Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end From: George Neuner Newsgroups: comp.compilers Subject: Re: Programming language and IDE design Date: Thu, 24 Oct 2013 19:57:07 -0400 Organization: A noiseless patient Spider Lines: 48 Sender: johnl@iecc.com Approved: comp.compilers@iecc.com Message-ID: <13-10-035@comp.compilers> References: <13-10-016@comp.compilers> <13-10-022@comp.compilers> <13-10-031@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: leila.iecc.com 1382669567 54402 64.57.183.58 (25 Oct 2013 02:52:47 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 25 Oct 2013 02:52:47 +0000 (UTC) Keywords: tools, code Posted-Date: 24 Oct 2013 22:52:47 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com X-Received-Bytes: 3446 Xref: csiph.com comp.compilers:1018 On Thu, 24 Oct 2013 10:55:09 -0400, Stefan Monnier wrote: >>> Similarly foolish wisdom is seen in IDEs (Integrated Development >>> Environments) which allow the programmer to create hundreds of lines >>> of code with just a few clicks of the mouse. Thus instantly creating >>> a significant maintenance effort. > >> 99% (or more) of generated code will never be touched by a human. >> Probably 80% of it even will never be looked at. >> I have never read anything which suggests to me that Dijkstra was - or >> would have been - against source code generators. > >IIUC, the OP was referring to the use of things like templates. >I.e. case where the generated source code is then edited by the user. >DSLs, macros, compiler compilers, and other code generators are >completely different, since the generated code is constantly >re-generated: it's not "source" code. My sense was that OP was referring to application wizards more so than templates or macros. In any event, I disagree with the notion that where the fix is applied makes a fundamental difference. To me the difference is the probability of a programmer having to look at the output of the generator. To reveal potential bias: I have developed GUI applications on Mac and Windows since early on (MacOS 2 and Windows 3) - I've written applications for them from scratch, using skeletons and using wizard generators. I also have done a fair bit of bare metal embedded work, and have created several DSL tools myself for various purposes - including one commercial product. Consequently I have spent quite a lot of time over the years poring over code generated by various tools ... assembly listings, parser code, templates and, of course, the output of my own DSL tools. IME wizard framework code is simultaneously the least likely to be looked at, but the most likely to require direct modification when developing a non-trivial application. DSL, template and macro generated code is more likely to have to be traced through - because, charitably speaking, the errors and warnings from compiling them, and the problems from using them quite often are difficult to understand without doing so. However, as you say, it is the usual case that the problem will be solved in the DSL or template source. YMMV, George