User:Devon McCormick/ProposedWikiEmphasis

From J Wiki
Jump to navigation Jump to search

New Wiki

As we develop this new version of the J Wiki, it's useful to have a few areas on which to focus. The following suggestions arise from the wiki meetings held over the past few months but is by no means complete. Look here for a retrospective on what has been discussed in the J wiki meetings. However, this current page is intended to be forward-looking in order to provide guidance for anyone who wants to pitch in on this effort.

Topics at the end of these meeting minutes also suggest some directions to explore. Also, Raul did some research on the wikis of other languages we may want to consult for ideas.

Some Immediate Tasks

  • Categorize essays - the essays contain a lot of information. To make it easier to find information, we should tag the essays with informative categories.
    We do this by putting category tags at the end of a wiki page, like this one - [[Category:Education]] - to categorize a page as related to education. The categories are collectible and searchable, as is explained here. Clicking on a Category tag on a page will take you to the list of categories so far; you should try to find existing ones that fit but feel free to add new categories if they would be generally useful.
    Category links entered into a section on a page, like the ones in this section, all appear at the end of the page and tend to refer to the whole page.
  • Create new material for beginners and enhance existing material. Look at the next section for ideas.
  • J masterclasses on topics to inspire beginners to dig more deeply into the language as outlined below.
  • Illuminate best practices in J as suggested below.
  • Create some impressive visual displays. There are many great math-based images available in J, from Mandelbrot on down [except that we do not have a Mandelbrot example.]
    In any case, some people respond better visually to graphics than to text or math, so we should put up some good examples of what J can do here both with mathematical abstracts and some real-life graphs.

Beginner-oriented Material

Integrating the J playground ("J in a browser") with new and existing topics seems like a good goal to keep in mind.

It may also be useful to categorize (see above) or organize material under broad topics of interest, like these:

 * General student of array languages
 * Data Scientist
 * Quantitative developer
 * Technical Manager
 * Budding entrepreneur
 * Web developer
 * Database developer
 * Installing J (detailed instructions per platform)

Other Suggestions

We have these suggestions from Ian Clark. I think he agrees with our ongoing emphasis on beginners and introductory material but has this to add:

...a meaty masterclass on (say) debugging may fire-up a J newcomer if it's not couched in J-speak or somehow else mystified. They may not follow the detail without doing some homework, but be impressed with how much easier it is than they're used to.

Masterclass topics

Ian started of with general guidance and suggests some areas in which he is interested in pursuing but would welcome any help offered.

J best-practices

J tools to make life easier for the jobbing programmer, the use of which may not be obvious to a beginner. Or tools which suit a particular sort of workflow or problem-solving approach, which even a J journeyman might not know about.

The sort of things that are *not* to be found in the programming forum or NuVoc, but more like a chapter from 50 Shades Of J, or At Play With J.

  • Debugging - using (13!:) versus Run > debug… Avoiding use of debug at all via line-by-line re-execution in the session manager, having assigned (y=:…) and (x=:…) .
  • stdlib gems - ignoring verbs that a C++ programmer would expect to be there, or verbs like mean or avg, which are flaunted for their gee-whizz value.
  • string handling - Not just { {. {: but stdlib tools like rplc, (;:), taketo, regex and handling unicode.
  • Understanding someone else's tacit expression, e.g. examples from _z_ locale or addons. Use of (13 :), addon: tte, dissect. Reducing to a train and dividing into triples. In fact *dissect* merits a whole masterclass to itself". Henry Rich also sees this as a good point of emphasis. Ian says "It's something I've never got on top of (having long fossilized my J usage and so never felt the need for)."
  • Rank - how it makes functional composition far easier to code than does APL. Why does J need so many confusing conjunctions and constructs for function composition: Atop (@), At (@:), Compose (&), Appose (&:), Hook ((u v)), Fork ((f g h)) (…actually it doesn't)? A bit of history as to how it all arose, why ("0), ("1), ("_) covers 99% of what you'll ever need.