An updated, interactive version of the long‑standing Dyalog APL textbook is being rebuilt on GitHub using Jupyter notebooks, offering a modern learning path while preserving the original’s depth.
The Original Textbook
First published in November 2009, “Mastering Dyalog APL” quickly became the go‑to reference for anyone wanting to learn Dyalog APL, a language prized for its concise array‑centric syntax. Written by Bernard Legrand and supported by a community that included Kim S. Andreasen, Daniel Baronet, and John Scholes, the book combined clear explanations with real‑world examples, making it a staple on the shelves of both academia and industry.
Why a New Edition Was Needed
APL’s core concepts have not changed dramatically, but the ecosystem around Dyalog APL has evolved. Since the first edition, Dyalog has released versions up to 12.0, adding new primitives, improved IDE support, and tighter integration with modern tooling such as Jupyter. A static PDF printed in 2009 cannot showcase these capabilities, nor can it provide the interactive feedback loops that today’s learners expect.
The Community‑Driven Rewrite
A group of contributors, led by Rodrigo Girão Serrão, has taken the original manuscript and re‑published it as an open‑source project on GitHub. The repository (https://github.com/dyalog/Mastering-Dyalog-APL) contains:
- Jupyter notebooks that embed runnable APL cells, allowing readers to edit code and see results instantly.
- A static HTML version for quick reference, generated from the notebooks via nbconvert.
- Plans for a print‑on‑demand PDF for those who still prefer a physical book.
The project is explicitly marked as a work in progress. Missing chapters are flagged, and the maintainers encourage readers to open issues for typos, outdated examples, or suggestions. Direct contact is also possible via email at [email protected].
What’s New?
While the rewrite preserves much of the original prose and examples, several updates are worth highlighting:
- Coverage of Dyalog APL 12.0 – New primitives such as
⍎⍎(double execute) and enhancements to the workspace manager are explained with fresh examples. - Integration with Jupyter – The notebooks demonstrate how to start a Dyalog kernel, visualize arrays with Matplotlib, and combine APL with Python for data‑science workflows.
- Modern Development Practices – The repo includes a CI pipeline that builds the HTML version on every push, ensuring that the online copy stays in sync with the source.
- Expanded Topics – Sections on parallel execution, GPU offloading, and the Dyalog Web IDE have been added, reflecting features that were nonexistent in 2009.
How the Community Contributes
Contributors follow a lightweight workflow:
- Fork the repository.
- Edit the relevant
.ipynbnotebook. - Submit a pull request.
- Automated tests run the notebooks to confirm they execute without errors.
The changelog, kept in CHANGELOG.md, records every addition, from a single corrected typo to a whole new chapter on Dynamic Function Generation. This transparency helps readers see how the book evolves alongside the language.
Why It Matters for the APL Ecosystem
Keeping educational material up‑to‑date is essential for attracting new users to a niche language. By moving the textbook onto a platform that supports interactivity, the maintainers lower the barrier to entry: a newcomer can read a concept, tweak the code, and immediately observe the effect. This approach mirrors what has happened in more mainstream languages, where notebooks have become standard teaching tools.
Moreover, the open‑source model invites contributions from a global community, ensuring that the book does not become a static relic. As Dyalog continues to release new versions, the textbook can be patched in lockstep, preserving its relevance.
Looking Ahead
The next milestones listed in the repository include:
- Completion of the remaining chapters on Advanced I/O and Domain‑Specific Languages.
- Publication of a printed edition through a print‑on‑demand service.
- Translation of key sections into Portuguese and Japanese, reflecting the language’s growing international user base.
For anyone interested in learning APL—or in seeing how a classic technical book can be modernized through community effort—the GitHub repo offers both the source material and a roadmap of what’s coming next.
If you spot an error or have a suggestion, feel free to open an issue on the GitHub page or email the maintainers at [email protected].
Comments
Please log in or register to join the discussion