Code golf is a type of recreational computer programming competition in which participants strive to achieve the shortest possible source code that solve a given problem. While the exact origins of this sport is lost to history, it is known to have been popular with early APLers. While dedicated golfing languages (programming languages constructed expressly for the purpose of winning code golf competitions) usually can accomplish the goal with shorter code than APL can muster, APL does almost always have the upper hand when compared to other production languages. This is thanks to APL's array comprehension and common operations being represented by single characters.
For production code, one normally shouldn't just strive for code that is as short as possible, as code clarity, execution speed, and memory usage usually are more import. However, engaging in code golf can serve to:
- encourage exploration of the programming language's facilities
- learn cutting edge techniques
- become more comfortable with the lesser known features of one's programming language
- become accustomed to think out-of-the-box which may lead to realising better ways of approaching problems
- have fun while programming leading to a better state of mind and thus better code and higher effectivity
Stack Exchange's Code Golf site has a very active group of APL golfers, with a significant percentage of new posts receiving APL answers within a relatively short time. They tend to convene in the APL Orchard to ask for help, discuss solutions, and challenge each other.
Several formal code golf tournaments have been conducted during recent years. For example, have a couple of Dyalog User Meetings hosted half-day code golf workshops.
- Wikipedia: Code golf
- Code Golf Stack Exchange: Tips for golfing in APL
- Dyalog webinar: APL Code Golf Autumn Tournament
- 2017 Dyalog User Meeting: Code Golf Hackathon
- 2019 Dyalog User Meeting: Code Golf – Learn Cutting-Edge APL
|APL community |
|Sharing code||List of open source software ∙ APLcart ∙ APLTree|
|User groups||APL Borealis (Canada) ∙ APL et J (France) ∙ APL-Germany ∙ BAA (UK) ∙ FinnAPL (Finland) ∙ JAPLA (Japan) ∙ SAUG (Switzerland) ∙ SIGAPL (USA) ∙ SwedAPL (Sweden)|
|Forums||APL2000 DN ∙ APLX Support Forum ∙ Dyalog Forum ∙ NARS2000 Forum|
|People||Phil Abrams ∙ Bob Bernecky ∙ Larry Breed ∙ Charles Brenner ∙ Jim Brown (IBM) ∙ Gitte Christensen ∙ Philip Van Cleave ∙ Peter Donnelly ∙ Dan Dyer ∙ Adin Falkoff ∙ Garth Foster ∙ Roger Hui ∙ Ken Iverson ∙ Morten Kromberg ∙ Gene McDonnell ∙ John McPherson ∙ Jon McGrew ∙ Donald McIntyre ∙ Roger Moore ∙ Alex Morrow ∙ Alan Perlis ∙ Al Rose ∙ William Rutiser ∙ John Scholes ∙ Ian Sharp ∙ Lynne Shaw ∙ Bob Smith ∙ Roy Sykes ∙ Raymond Tisserand ∙ Arthur Whitney ∙ Clark Wiedmann|
|Other||APL Orchard ∙ APL Wiki ∙ Dyalog user meetings ∙ Iverson Award ∙ APL conferences ∙ Code golf|