On May 28, 2009, at 2:33 PM, James Britt wrote: > J Haas wrote: >> On May 27, 10:21 pm, James Britt <james.br... / gmail.com> wrote: >>> FWIW, daring people to dispute what is ultimately a matter of >>> opinion is >>> not terribly productive. >> Yeah, I realized that as soon as I posted. Sorry 'bout that. But look >> at it this way. >> In the example from AuthLogic I posted, which is real-world code and >> not at all atypical, just under one-fourth of the non-blank, non- >> comment lines consist of the bare word 'end'. The 'end' keyword >> doesn't _do_ anything. It's just a signal to the parser that here is >> the end of the block... and with canonical indentation, this is >> something the parser is quite capable of inferring on its own. 'end' >> is redundant. > > No, it's a signal to the human reading the code as well. > >> Code speaks louder, right? The whole point of writing code is to tell >> the interpreter what you want it to do, > > I'm with Harold Abelson and Gerald Jay Sussman on this point: > > > "Programs must be written for people to read, and only incidentally > for machines to execute." > > >> and the whole concept of >> 'expressiveness' is based on being able to tell the interpreter what >> you want it to do with a minimum of overhead. Let's tell the >> interpreter to do something: >> 1.upto 10 do |x| >> p x >> Stop! Don't write another word. At this point, you've told the >> interpreter _exactly_ what you want. Using the bare minimum of code, >> you've expressed with perfect clarity your intent. Anything you write >> beyond that is superfluous. And if the language _requires_ you to >> write this extraneous code, it's not as expressive as it could be. > > But we're back in the realm of subjectivity regarding what is "bare > minimum of code" and "superfluous". Ruby could be made quite terse, > but that's not a proper goal. Terseness is a perfectly reasonable goal. It's a corollary to Occam's Razer. No? If you're going to sacrifice conciseness you should have a good reason for doing so. > > There is value in redundancy, and the trick is to find the right > balance, not to eliminate it completely. Exactly. So there should be a choice. Right? > > Also, having more or less free reign on white space means I can > express non-computational information more easily by using unusual > white space to offset chunks of code or parameters to tell the > reader, "Look, this is important" at a glance. > > Programming is a form of technical writing; judicious use of white > space is a critical means of communicating with the reader. > > > Some times I really do > want to do this. > > This is a powerful option. > It's possible to do this too. Is it not?