|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] Proposal wrt experimental code |
Date: | Wed, 30 Apr 2014 18:44:56 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130330 Thunderbird/17.0.5 |
Hi Peter,
sorry as well. I believe i was mislead by your earlier question for the source of the Nabla editor. I cannot give you a full answer because the question touches many aspects of GNU APL, like how to do things, who does and maintain things, what do we like, and so on. But I can share some of my opinions with you. 1. How to handle code variants. there are a number of ways to do it - branches in SVN, options in .configure (→ "#ifdefs in C++), if statements, additional source files, dynamic libs. I am not at all a fan of branching. I managed to avoid it in my worklife - for good I believe - when heading bigger software projects than this. There are many reasons - too many to discuss it here. The others are OK and I would make them dependent on the particular example. As long as the exprerimental code is not on a performance critical path, if statements are the easiest to use and also the most readable. Otherwise #ifdefs via ./configure need to be used which is more effort and less readable. A debug command to control this should be created. Before putting these decisions into the source itself, it should be ruled out that the wanted behavior cannot be achieved by dynamic loading which I see as a more modular approach. Sometimes only a point in the source is needed where you can hook into. The way how Elias implemented the emacs mode is an example; it is rather tightly coupled to the core APL but still completely optional and modular. There were a few hooks missing when Elias started and I added them as needed. 2. And then there is a matter of style. My impression is that you have a similar view on it. If someone would tell me "I would like to add an exprimental feature that allows a sequence of ASCII punctuation characters (or morse code) instead of APL characters, then I would consider that as an attack on APL itself and fight it. Everybody is free to start with the GNU APL code base and derive his own language from it (J, K, ... the alphabet is long). But I would not allow that back into GNU APL. I have seen requests for "state-of-the-art" features that I would rather call "disgusting" even if they are useful. If I like BASIC, for example, then I would just use BASIC and not try to make APL look like it. This probably sounds arrogant, but I take the freedom to voice my opinion on this matter. 3. As a summary for the moment, if you think there is a useful feature for GNU APL, lets discuss it on bug-apl so that we get an understanding how other people like it and then figure the best way to handle this in the source code. I am also working on a web page with links to contributions related to GNU APL so that people do not need to scan the bug-apl mailing list. /// Jürgen On 04/30/2014 04:15 PM, Peter Teeson wrote: Hi Jürgen: |
[Prev in Thread] | Current Thread | [Next in Thread] |