On Tue, Dec 15, 2015 at 6:23 PM, Dan Bron <[email protected]> wrote:
> Raul wrote:
>> Yeah... personally, I consider explicit code to be a subset of tacit code.
>
> I think of explicit and tacit as two distinct but related languages. That “:” 
> is
> tacit doesn’t mean the programs written in it are tacit: I could 
> (theoretically)
> write a tacit Lisp interpreter, but that doesn’t mean the Lisp programs I pass
> to it are written in J.

This is exactly the kind of thinking that keeps J from being used in
most programming shops.

>> Still, even if you do not like the appearance of the code I offered,
>> perhaps you could at least tell me if there is something wrong with
>> what it does?
>
> This question somewhat misses the point.
>
> Say this were English class and I asked you to compose a haiku on the topic
> of winter. Say then that you came back with a sublime, stirring sonnet on 
> winter
> that captured the bitter winds; the trees sparking with ice crystals as if 
> they were
> fruiting diamonds; the lamps glowing in twilight windows; the yearning for 
> spring.
> In short, you delivered to me a beautiful poem which precisely evoked the 
> subject.
> A work of art whose like hasn’t been seen before in the world.

So, let's take Spring as an example. This is an ORM framework which relieves
the programmer of the burden of managing transactions. Which is another way
of saying that transactions become extremely difficult to manage. Which is
can be great if you want people doing jobs which never get done
efficiently, but
can be not so great if you want a system which behaves reasonably.

Of course, you meant spring as a season, instead, and your analogy to haiku
presumably is meant to imply something about how concise and ambiguous
tacit code should be. But for the current "classroom assignment" it's more
bloated and ambiguous than concise and ambiguous.

> Except the assignment was a haiku, and you gave me a sonnet.
>
> In other words, the “how” is not a means here, but an end. The
> requirement for tacit is precisely that: a requirement. It is a fundamental
> part of the specification, not a suggestion on coding style.  Note that, 
> absent
> this requirement, Am would *not be required at all*, as we could simply write
> the target modifiers explicitly and dispense with the intermediate
> metaprogramming step.

Then treat my earlier post as if it were written in english, rather than in J.

My question was whether the behavior I demonstrated was the behavior
you wanted.

My accompanying rant had to do with just how much time (and money,
if that matters) gets wasted because people don't push back on
inappropriate requirements. It's not specifically aimed at tacit code
but at an epidemic which haunts our industry.

That said, I'm fine with you keeping to your "tacit requirement" if you
don't mind me commenting on the resulting code bloat, when it
reaches order-of-magnitude levels.

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to