|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] Feature suggestion: multiple function arguments |
Date: | Tue, 15 Mar 2016 18:54:44 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
Hi Peter, I would say that we have such a mechanism already in GNU APL, namely native functions. With the current SVN you can even override built-in functions and maybe (never tried, though) introduce new APL characters/symbols. One can imagine a number of extension mechanisms: 1. shared variables, ⎕SVN and friends. Slightly outdated 2. new APL characters (typically ⎕AV members that currently have no APL relevance) 3. new ⎕-functions and variables 4. native functions, can trigger 2. or 3. 5. new APL Syntax Of the above I personally consider 1-4 as reasonable and 5. as outright bad and not desirable. For several reasons: 1. changing the parser is a cumbersome and error-prone undertaking, 2. a changed syntax cannot be easily emulated on a different APL system, so it creates serious portability problems. Portability problems (read: customer lock-in) are a valid strategy for commercial programs but are, in my opinion, an absolute no-go for a free APL. We cannot seriously fight for free software and at the same time enable lock-in mechanisms for the software we write. 3. Most syntax changes that I have seen for APL could have been easily replace by other means. 4. With every syntax the language gets more non-standard and, in my opinion, less readable (at least for those that are not familiar with the syntax). 5. I strongly believe that the most successful languages so far were those that managed to keep their syntax simple and used other means for extensions, typically libraries. 6. adding a new syntax is a waste of time. To summarize, I believe that we have a number of extension mechanisms 1.-4. already in place, and the only missing one (5.) is a bad one that should be avoided. I also agree that branching the trunk is not good. But the existing extension mechanisms do not require that. The emacs_mode and sql modules, for example, that native functions are powerful enough to extend GNU APL in a modular way. In a way, native function are the Plugin API of GNU APL. They allow you to extend GNU APL, quite easily and extensively. The only thing that you cannot (and according the to above should not) do is to add a new APL syntax. /// Jürgen On 03/15/2016 03:55 AM, Peter Teeson
wrote:
|
[Prev in Thread] | Current Thread | [Next in Thread] |