[Jprogramming] Design goals readability and writeability?

Don Kelly dhky at shaw.ca
Mon Jul 14 23:15:28 UTC 2014


Point taken:
However, I do like to save some things that are not always used- along 
with variations and reminders-such as why @: works and @ doesn't in the 
context of concern. Sometimes I have a nice tacit string (or a multiline 
explicit form) which I have saved in a script along with comments and 
how-to-use information and example(s). This documentation  does help me 
when I haven't used the verbs  for some time. I did this for APL.
I see a lot of 1-line fairly complex verbs on this forum and often have 
trouble sorting them out-when I do, I have learned something, when I 
can't I haven't learned anything and crawling the dictionary doesn't 
always help.

It is true that comments are important in any language but the 
difference is that APL and, more to the point, J  inherently pack a lot 
more punch to a line- due to the array power as well as the large range 
of primitives- instead of reading a number of simple statements, often 
in a loop, and often where the grammar is stilted and simple, one is 
faced with a great deal of power and many ways to deal with the same 
problem- as evidenced by the variations of some verb presented on this 
forum.

Don Kelly




On 13/07/2014 6:39 PM, Ian Clark wrote:
> "The alleged unreadability of J - and what to do about it"
>     http://www.jsoftware.com/jwiki/Vocabulary/Unreadability
>
>
> On Sun, Jul 13, 2014 at 11:43 PM, Don Kelly <dhky at shaw.ca> wrote:
>
>> Absolutely!!
>> J suffers from the same problem as its precurser APL- in spades.. One can
>> write very terse code because of its power. Often, 6 moths later the
>> original writer has to spend time interpreting what was written. I have
>> come up with some terse code and , more often terse code from others- all
>> of which has been put in a utility script wrapped in  comments so that when
>> I want to use it-I do have such guidance. This is something one has to do
>> to a great extent with any programming language. It is even more important
>> with J tacit.
>>
>> Don Kelly
>>
>>
>> On 12/07/2014 11:44 AM, Don Guinn wrote:
>>
>>> Readability depends on a person's background. I can't read Chinese. Does
>>> that mean it's not a readable language?
>>>
>>> When writing a program or a document one must assume some level of
>>> knowledge of the reader. J tends to assume readers have a greater
>>> knowledge
>>> of mathematics than most other programming languages require.
>>>
>>> But readability is a real problem. What is usually missing from many
>>> programs, especially J tacit, is the intent of something. Say I see
>>> something like this:
>>>
>>>      < @ (({. + i.@{:)@[ { ] )
>>>
>>> It would certainly help to have some idea what this is supposed to do.
>>> What
>>> its arguments are and what it returns. Documentation really helps.
>>>
>>> But J expressions can be intimidating. It has always bothered me that I
>>> could attack a FORTRAN program spanning several pages comfortably. But a J
>>> program of just a few lines which do exactly the same thing is hard for me
>>> to get into.
>>>
>>>
>>> On Sat, Jul 12, 2014 at 12:23 PM, Erling Hellenäs <
>>> erling at erlinghellenas.se>
>>> wrote:
>>>
>>>   Hi all !
>>>> Yes, maybe we should all be concerned about writing readable code instead
>>>> of the shortest and most cryptic code? Maybe we should also write
>>>> writeable
>>>> code? Find a way to write that allows us to get the expressions right the
>>>> first time?
>>>> J is more of a notation than a language? The value of a notation is
>>>> determined by clarity, but also readability? Maybe readability and
>>>> writeability, in the sense I explained above, should get higher priority
>>>> as
>>>> design goals for our future J?
>>>>
>>>> Cheers,
>>>>
>>>> Erling Hellenäs
>>>>
>>>>
>>>>
>>>> On 2014-07-12 07:40, Raul Miller wrote:
>>>>
>>>>   I would not generalize to higher rank arrays without a model of why I'd
>>>>> be
>>>>> using them.
>>>>>
>>>>> In other words, v=: {"_1 |:~&0 2 is probably good enough.
>>>>>
>>>>> There are some interesting contradictions here - while one needs to be
>>>>> comfortable thinking mathematically to get decent performance out of a
>>>>> system, usually what we are building is a mix of instant and delayed
>>>>> gratification and we usually assume our audience has no direct interest
>>>>> in
>>>>> the math we are performing (indirect interest, yes - sometimes).
>>>>>
>>>>> Often I think we go overboard, and we should throw back in some exposure
>>>>> to
>>>>> some of the more robust concepts (especially for the kids, so they have
>>>>> something interesting to play with). But professional adults tend to be
>>>>> under a lot of time pressure, and as a result their needs often seem to
>>>>> be
>>>>> a mix of the very basic and the childish.
>>>>>
>>>>> Meanwhile, it seems like anything worthwhile takes time and effort.
>>>>>
>>>>> Anyways, professional software design often centers around use cases and
>>>>> similar models which are aimed at extracting the important concepts
>>>>> about
>>>>> what people need to get done and how they want to work. And that kind of
>>>>> information is what you need if you are going to properly generalize
>>>>> application code.
>>>>>
>>>>> Thanks,
>>>>>
>>>>>
>>>>>   ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>
>>>>   ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



More information about the Programming mailing list