Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!news.misty.com!news.iecc.com!nerds-end From: glen herrmannsfeldt Newsgroups: comp.compilers Subject: Re: Have we reached the asymptotic plateau of innovation in programming languages Date: Fri, 8 Jun 2012 22:47:43 +0000 (UTC) Organization: Aioe.org NNTP Server Lines: 49 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <12-06-021@comp.compilers> References: <12-03-012@comp.compilers> <12-03-014@comp.compilers> <12-06-008@comp.compilers> <12-06-011@comp.compilers> <12-06-018@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1339247419 27636 64.57.183.58 (9 Jun 2012 13:10:19 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Sat, 9 Jun 2012 13:10:19 +0000 (UTC) Keywords: design, i18n Posted-Date: 09 Jun 2012 09:10:19 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:682 Robert A Duff wrote: (previous snip on English language keywords in programming.) > And what about predefined libraries? I imagine it's not too > hard for a non-English speaker to memorize the meaning of > 50-or-so English keywords, but what about thousands of names > in the predefined libraries? Or third-party libraries? But many are only slightly related to any English words. Well, maybe more now that languages allow for longer names, but many of the older routines, from the Fortran 66 days, have almost no mnemonic value at all. You just have to look them up (in any language). The IMSL routines for example. Some assemblers are more mnemonic than others. The IBM mainframe assemblers like short mnemonics, A for add, L for load, so, yes, the first letter of the English word, but not much more. Only very rarely do assemblers use whole English words. (Even more, the S/360 and successor hex opcodes for add, subtract, multiply, and divide instructions usually end in A, B, C, and D, respectively, such that add instructions end in A, and divide end in D. Makes it a little easier to remember the opcodes.) Even more, the IBM OS/360 and successor assemblers have OPSYN so you can assign any names you want in place of the normal opcodes. (And make it harder for readers who don't know your language.) Well, with many assemblers you could write macros to expand using other names, but OPSYN is more direct. (snip) > I'd solve that by allowing Unicode letters in identifiers, but require > the programmer to declare up front which ones they want to use (in a > project-wide configuration file of some sort). Nobody wants to use > all of Unicode -- they just want to use the letters of one or two > natural languages, plus maybe a few symbols like a proper <= sign. I believe that Java allows all unicode letters to start symbolic names, and unicode letters and digits to continue them. > In comments, anything goes (allow all Unicode characters). Be careful with \u000a though. -- glen