A thread[1] on Jprogramming sparked interest in extending J to support
reduce with an initial value as a language primitive / foreign. It has
come up several times [2].

I am thinking this could be a small project to show how the community
can contribute back to J's core. The core maintainers could then
decide whether to incorporate into the official J or not.

Decisions on changing a 20 year+ language don't come easily.

I'd like to submit a proposal for a small team to work together to
implement a change - this change or some other change. I tend to favor
a 'keep it simple' process over something overly formal, although some
structure may be useful. We can also add structure later if extensions
like this take off

To start the conversation, here are some thoughts that come to mind:

1. Demonstrated a real need. More generally, what constitutes a need to change?

- Performance?
- Ease of use?

In terms of the reduce idea, it sounds like this may fit both criteria
as there are performance issues and the proposed solution[3] is not
easy for a beginner. I think further testing is needed on both though
to demonstrate the need.

2.  Evaluate how the extension will impact future coding

- Does the extension promote an edge case to common use? Is that a bad
thing? Example: many have asked for a hashtable implementation. That
may be latched on to by beginners to solve problems instead of using a
more J-like approach.

3. Propose a recommended solution (optional, but suggested)

4. Get input on the recommendation (optional, but suggested)

5. Create test cases to demonstrate the need and validate the solution

6. Develop the solution against the gplsrc in a public repository

7. Ask others to test/validate

8. Submit code change, and proposed dictionary change back

9. Submit nuvoc proposed change


Just writing this out shows there are a few steps involved and I am
sure I am missing some. An open question for me is also - what forum
should be used to discuss this? Chat or Source? Programming doesn't
seem right


If someone is passionate about the reduce change, I'd be happy to take
a stab at #6 (developing a solution), but I don't particularly want to
lead the rest of the steps. This is where the team concept might make
sense.

In any event, this has been on my mind since the gplsrc has been
available. It would be neat to use it to contribute back.




1 - http://jsoftware.com/pipermail/programming/2015-June/041999.html
2 - http://jsoftware.com/pipermail/programming/2015-February/041005.html
3 - http://jsoftware.com/pipermail/programming/2015-June/042005.html
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to