APL# (pronounced APL Sharp) was presented by Dyalog Ltd. at the 2010 APL conference in Berlin. The goal was to make the benefits of safe/managed computing available to users of APL through the development of an APL dialect targeting Microsoft Silverlight/Moonlight and featuring tight integration with Microsoft .NET.
APL# was to be a new dialect of APL designed with object-oriented/language-agnostic platforms in mind, using Microsoft .NET as the initial target platform. Although portability of old APL code to APL# was an important consideration, the fact that complete upwards compatibility with "classic" APL was not achievable allowed an attempt to tidy up a few other aspects of APL. The goal was to produce a language which was as powerful a Tool of Thought as classic APL and APL2, at the same time as feeling significantly more acceptable to a software engineer.
However, taking full advantage of the shared type system and related services which forced the abandoning some of the most central dogma of "classic" APL interpreters:
- The notion that APL only has two data types: numbers and characters
- That arguments are always passed "by value"
- User-defined names are global by default, and local variables are visible to all sub-functions
APL# featured a single functional form (besides for trains) which was a hybrid between dfn and tradfn syntax, superficially resembling that of dfns, but allowing a header (calling signature) and control structures.
In 2012 Microsoft deprecated Silverlight for HTML5 in Windows 8, and Dyalog subsequently abandoned the APL# project.
2010 APL conference
2011 Dyalog user meeting
|APL dialects |
|Maintained||APL+Win (APL*PLUS) ∙ APL2 ∙ APL64 ∙ APL\iv ∙ April ∙ Co-dfns ∙ Dyalog APL ∙ dzaima/APL ∙ Extended Dyalog APL ∙ GNU APL ∙ KAP ∙ NARS2000|
|Historical||Iverson notation ∙ A Programming Language ∙ A+ (A) ∙ APL# ∙ APL.68000 ∙ APL.SV ∙ APLX ∙ APL\1130 ∙ APL\3000 ∙ APL\360 ∙ APL/700 ∙ NARS ∙ ngn/apl ∙ openAPL ∙ Rowan ∙ SAX ∙ SHARP APL∙ VisualAPL (APLNext) ∙ VS APL ∙ York APL|
|Derivatives||AHPL ∙ BQN ∙ ELI ∙ I ∙ Ivy ∙ J ∙ Jelly ∙ K (Q, KDB+) ∙ Nial ∙ RAD|