Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!akgua!mcnc!decvax!cca!ima!inmet!jc From: jc@inmet.UUCP Newsgroups: net.works Subject: Re: Orphaned Response - (nf) Message-ID: <1295@inmet.UUCP> Date: Thu, 19-Apr-84 06:22:33 EST Article-I.D.: inmet.1295 Posted: Thu Apr 19 06:22:33 1984 Date-Received: Sun, 22-Apr-84 08:31:34 EST Lines: 41 #R:utcsrgv:-378300:inmet:10000003:177600:1883 inmet!jc Apr 18 12:05:00 1984 <...> > > It is finally generally accepted that positional parameters in command > languages are to be avoided. The difference between UNIX(tm Bell Labs) and > JCL or CDC NOS command syntax is testament to this. It is time to apply > this lesson to programming languages. > I'd think the obvious conclusion is that, if it is used in JCL, that is sufficient reason to reject it in other systems! Seriously, I'd also suggest that, if we're going to advance past pure function notation (and I wish we would), why take one tiny step? Why not elimate the awkward function notation altogether, and go to a much more natural template notation. This isn't a very radical idea; it's already been done in a few (admittedly obscure) languages. For example, rather than typing something like: lookup(name:namptr,index:ni,table:fldtbl) why not allow the programmer to type: lookup nameptr in fldtbl giving index ni; or maybe: set ni to index of namptr in table fldtbl; or even: ni = index of namptr in fldtbl; or whatever syntax he prefers? I contend that (1) a template syntax is no harder for a compiler to handle than is the function+keyword syntax, and it is a lot easier for the programmer. Of course, there is the obvious objection "Nested templates will often be ambiguous." The answer to this is: "So what? It's also true of ordinary infix notation, and we know how to handle that." I didn't say that parentheses should not be allowed! Programmers will quickly learn that they must consider the possibility of ambiguity of templates using common words, and parenthesize things appropriately. I had this capability a few years back, when I worked in an installation where we were allowed to install the STAGE2 macro processor. Unfortunately, since then I've been in industry, where such "modern" methods are generally not permitted, and I've often missed it.