On 2/13/07, Jacob Fugal <[EMAIL PROTECTED]> wrote:
It is an issue. In my experience, time spent writing code is a
negligible amount of time I spend developing. A far greater amount of
time is spent grokking existing code and thinking about the issues the
code I'm going to write has to address. When I argue against
verboseness in a language, I'm not complaining about the effort I must
spend to write all the boilerplate, but the semantic noise that it
adds.

Ignoring concepts of language "beauty", if I'm writing an iteration
over a collection, my options with and without foreach are:

  /* without foreach: */
  for(Iterator iter = collection.iterator(); collection.hasNext();) {
      MyObject obj = (MyObject)iter.next();
      /* ... do stuff with obj ... */
  }

  /* with foreach: */
  for (MyObject obj : collection) {
      /* ... do stuff with obj ... */
  }

The foreach version stays out of my way not just when I'm writing that
code, but also when I read it. The IDE can help me enter both versions
just as quickly, but the IDE has no way of helping me reduce the
semantic noise in the first example. That is why it's an issue.

Jacob Fugal

Good point.  I agree.  The readability is far improved with foreach.

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to