Differences between revisions 8 and 9
Revision 8 as of 2009-06-12 08:57:57
Size: 1861
Editor: anonymous
Comment:
Revision 9 as of 2009-06-14 15:05:37
Size: 1860
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
 * Use control structures to aid clarity. Especially to avoid arrrow-style branching.  * Use control structures to aid clarity. Especially to avoid arrow-style branching.
Line 27: Line 27:

Working Practices - Dick Bowman

Currently using Dyalog APL to develop several single-user desktop applications. Used other versions of APL in the past in development groups of varying sizes. Dabbled with variants like J and K. Has also used other programming languages, but...

General Principles:

  • APL has its origins as a way to improve communication between people, never forget this.
  • Stick to the "functions take their input from arguments and produce results" wherever possible. As a sub-rule, put "controlling parameters" in the left argument and "data" in the right.
  • Keep defined functions (and operators) brief.
  • Insulate your code from the outside world by localising any system variables that it depends on.
  • If you need to include comments to make your code clear, you aren't making your code clear.
  • So long as performance is adequate, maintainability is the most important aspect of coding style.

Dyalog Specifics:

  • Use control structures to aid clarity. Especially to avoid arrow-style branching.
  • Use in-line dynamic functions to make code simpler.
  • Use language constructs which simplify APL, such as the indexing function and dot-syntax. Don't hang onto archaisms like bracket-indexing just because they are familiar.

Current Fads:

  • Making increasing use of namespace scripts to hold utility code which is shared across applications.
  • Making increasing use of class scripts to handle data.

Detestations:

  • Code that is "squished up" to look denser, in particular diamond statement separators.
  • Code with comments mingled in and interfering with the real code.
  • Error-trapping used to implement application logic.

Disclaimer - this page written on 23 January 2009, preferences and practices may have changed.


CategoryWorkingPractices

Working Practices - Dick Bowman (last edited 2009-06-14 15:05:37 by anonymous)