home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 263,961 of 264,096   
   Mark Berryman to All   
   Re: DCL2   
   13 Dec 25 11:27:28   
   
   From: mark@theberrymans.com   
      
   On 12/5/25 7:41 PM, Arne Vajhøj wrote:   
   > Context   
   > -------   
   >   
   > 1)   
   >   
   > My opinion is that DCL:   
   > * is fine for interactive use   
   > * is fine for small scripts (5-25 lines with at most a few lexical   
   >    functions, a few if statements and 'Pn' usage   
   > * is not up to expectations for writing large scripts aka   
   >    programming in DCL   
   >   
   > One can argue that DCL should not be used for programming, but fact   
   > is that it is used that way.   
   >   
   > So what is missing for programming? I would say biggest   
   > items are:   
   > * loops   
   > * switch/case   
   > * arrays   
   > * user defined lexicals   
   >   
   .   
   .   
   .   
   > What to do?   
   > -----------   
   >   
   > A totally new shell with a new syntax is not a solution:   
   > * the oldtimers want DCL   
   > * the newcomers want standard (bash, Python etc.)   
   > * expensive   
   >   
   > A reimplementation of DCL in C (or another language, but C is   
   > probably the current preference) is not a solution:   
   > * risk only achieving 99.9% compatiblity instead of 100% compatibility   
   > * expensive   
   .=.   
   .   
      
   Why the need to reimplement?   
      
   Here is my opinion on the subject.  I have no idea how many others will   
   share it.   
      
   I have used a few scripting languages over the years, however...   
      
   I like DCL.  I prefer it over any other shell I've ever used.  But it is   
   also over 40 years old with only limited enhancements over the years.   
      
   Why not make a 2nd DCL, one that can live on the system in parallel with   
   the current DCL.  Call it DCL64 since it would use 64-bit variables   
   instead of 32-bit.  Which DCL a given process used would be specified in   
   sysuaf or creprc (and, possibly, spawn).  I'd would also like to see the   
   following:   
      
   1. Variables can be integer, string, or floating-point.   
   2. Longer string lengths.   
   3. Enhance SYS$FAO to support floating-point.   
   4. New constructs (e.g. loops, arrays, etc.)   
   5. Lexicals match system functions.   
       (i.e., easy for the vendor to update lexicals to match new functions   
        or enhanced functionality and being able to specify multiple items   
        to return in a single lexical call)   
   6. An option to make pipe syntax the default without having to specify   
   the pipe command.   
   7. An option to make Set process/parse=extend and Set   
   process/token=extend as default.   
   8. Commands and switches match on 8 chars instead of 4.   
       (e.g., I'd like to see both open and openssl exist as separate   
   commands).   
   9. No automatic upcasing the command line.  (Internal parsing is   
   case-insensitive).  The idea is to reduce the need for lib$initialize in   
   utilities written in C.   
   10. Otherwise, still DCL.   
   11. Perhaps even make the character set UTF-8 instead of ASCII.  (Of   
   course, then I'd be asking for a DECterm that used UTF-8).   
      
   Benefits:   
      
   No need to be 100% backwards compatible.  Make it as backwards   
   compatible as possible but the edge cases that make it difficult to   
   rewrite DCL in a HLL wouldn't apply since the original DCL is still   
   there to handle them.   
      
   There is then all the time needed to make sure any existing scripts will   
   work (or be updated as needed) in the new DCL.   
      
   Much easier for the vendor to enhance in the future.   
      
   These are some of the thoughts I've had over the years.  Feel free to   
   throw darts at them.   
      
   Mark Berryman   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca