Hi Devon, I couldn't resist mentioning that there is still a bit of lightning in your sentence below.
Hope all is well and I've been impressed about your NY J organization. Linda -----Original Message----- From: programming-boun...@jsoftware.com [mailto:programming-boun...@jsoftware.com] On Behalf Of Devon McCormick Sent: Friday, January 20, 2012 12:34 AM To: Programming forum Subject: Re: [Jprogramming] wiki essay The next time I use the speed of light in a program, I'll be happy to follow your suggestion. On Thu, Jan 19, 2012 at 7:37 PM, Viktor Cerovski <viktor.cerov...@gmail.com>wrote: > > > Devon McCormick wrote: > > > > The short answer is: don't do that. > > > > If you want to use single letter names for throw-away, local temp > > variables, that's fine but the point of a global is that it has some > > importance and ubiquity. > > > Maybe the definition I gave previously > e=:1x1 > > has neither importance nor ubiquity for many a reader, who would > upon reading a program with such a global definition be appalled by > such an obvious lack of style. But is any of that really relevant? > Shouldn't there be required a minimum of reading comprehension > that reader of a program knows at least what constitutes a valid > identifier? There are also comments to help out: > > c=:299792458 NB. m/s (the speed of light) > a0=:0.53 NB. Ang (Bohr radius) > > Call me old fashioned, but I really like, now when computers > know about the difference between small and capital letters, to be > able to use say c3 for, well, yes, the third coefficient, and A for, > indeed, matrix A. Let me go on some more: f for a function and > f1 for f"1 that just happens to pop up as often as f. Or maybe > a different version of the same function, just optimized for > a particular case of use? Or maybe my imagination is so poor > that I can't think of any more readable way to write: > f0`f1`f2`f3@.g > > This is not to say that I would forbid programmers from using > something more descriptive for their temps and globals, like: > > SPEEDOFLIGHT=:299792458 > > or, if that constant happens to be very frequent in the program, > so programmer got tired of pressing Ctrl+N every so often, > her eyes getting sore of all these capitals seeking attention, > something shorter, informative, and more stylish like: > > SPOFL=:299792458 NB. c =299792458 m/s > > > > > I'm a big fan of terseness - e.g. > > http://www.jsoftware.com/jwiki/NYCJUG/2009-08-11#TerserisBetter - but > > would > > it really kill you to add a letter or two? Not to mention the extra > > difficulty of searching for single-letter names... > > > Except that the question at stakes is not that of whether terse is > better or not, but the one of style of naming things, where the > greatest achievement so far was the realization that it is universally > open ended. > > Here are my favorite examples where naming conventions > were enforced by the language to achieve something useful: > > 1) Implicit typing in FORTRAN: variables starting with I, J, K are ints, > etc, > 2) Capital letters for free variables in PROLOG, > 3) First capital letter for type identifiers in Haskell, > 4) use of ' in identifier names, like f' or f'1 in Haskell. > > Some informal popular naming schemes: > > 1) Identifiers starting and ending with * in LISP for global/special vars. > > 2) One gaining followers is myFunc or myProc naming convention, > although there is a school of thought that prefers my_func or > my_proc, respectively. > > 3) ALLCAPITALS (or was it ALL_CAPITALS?) for global constants in C. > > I don't have to especially emphasize that J, when it comes to notation, > is all fun. To the example that Tracy mentioned attributing it to Jose: > o =: @ > > I can only retort with: > O =: @: > > There is also km's > o =: +/ . * > > Here are some more fun examples: > plus=:+ > Insert=:/ > Row=:"1 > > Now, +/"1 can be written as > > plus Insert Row > > or defined as: > > plusInsertRow =: plus Insert Row > > or alternatively as: > > sum =: plus Insert > > sumRow =: sum Row > > > > > On Thu, Jan 19, 2012 at 9:50 AM, Viktor Cerovski > > <viktor.cerov...@gmail.com>wrote: > > > >> > >> > >> Raul Miller-4 wrote: > >> > > >> > I wrote up a wiki essay (or perhaps a rant) on some issues that come > >> > up in the context of parsing J: > >> > http://www.jsoftware.com/jwiki/Raul%20Miller/ParsingJ > >> > > >> > My suggestions there may not be ideal, but I sort of like them. > >> > > >> > -- > >> > Raul > >> > ---------------------------------------------------------------------- > >> > For information about J forums see > http://www.jsoftware.com/forums.htm > >> > > >> > > >> Leaving the question of style aside, there is one formal problem > >> with the convention: how would one interpret names consisting of > >> a single capital letter (with or without trailing numbers): as nouns > >> or adverbs? Both naming schemes make sense. For instance: > >> > >> I =: 1 > >> I1 =: /("1) > >> I2 =: /("2) > >> E =: &.> > >> > >> Also, some might prefer additionally to have something like: > >> > >> e=:1x1 > >> > >> etc. > >> -- > >> View this message in context: > >> http://old.nabble.com/wiki-essay-tp33157128s24193p33168317.html > >> Sent from the J Programming mailing list archive at Nabble.com. > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > > > > > > > -- > > Devon McCormick, CFA > > ^me^ at acm. > > org is my > > preferred e-mail > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > -- > View this message in context: > http://old.nabble.com/wiki-essay-tp33157128s24193p33171648.html > Sent from the J Programming mailing list archive at Nabble.com. > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA ^me^ at acm. org is my preferred e-mail ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm