DYNA26: A Review

In April we hosted DYNA26, our latest Dyalog North America user meeting. We returned to midtown Manhattan for a day of presentations, demonstrations, and the sort of impromptu conversations that only happen when APLers are in the same room.

Part of the Dyalog Ltd contingent (Brian Becker, Rich Park, Asher Harvey-Smith, and Holden Hoover) spent a few days beforehand in Rochester, New York, having a pre-DYNA “conclave” at Brian’s house, working through tooling design discussions and event preparation. We’re a geographically-distributed team, so we make the most of the opportunities to work together in person; our thanks to Brian for hosting once again.

Attendees watch Morten's presentation

The room filled with a familiar mix: enthusiasts, current developers building on Dyalog at customer sites, users of other APL implementations, and a few who hadn’t written any APL but were curious enough to spend a day with us. As ever, that mix is what makes DYNA enjoyable to host.

Presentations

The Dyalog Road Map
Morten Kromberg (remote)

Morten joined us remotely to open the day with the road map. The headline theme was LLMs. Stephen Taylor’s line that “Claude is the new Quad” captured it nicely, suggesting how the often-tedious system-interaction layer of programming, usually handled by I-beams and quad-functions and increasingly by libraries, can now be handled by LLMs as well, leaving APLers freer to focus on the core problem-solving to which the notation is so well-suited.

Morten covered recent experiments and experience: writing prototypes, tests and documentation; generating ⎕WC GUI code; and producing interactive tutorials for existing tools. There appear to be some productivity gains, particularly when an experienced developer is supervising. LLMs are already strong at non-APL tooling code (C#, HTML/CSS/JavaScript) that APLers regularly need to write around their core applications, and they’re steadily improving with APL code.

Of course, generative tooling is not the only thing on the road map. Morten talked about an increased focus on organisational and software security through the BSIMM initiative, including static analysis of both the interpreter’s C code and APL code. This can be used to, for example, find injection vulnerabilities through uses of (execute), ⎕SHELL, or SQAPL. He also covered recent language additions, including APL array notation and ⎕VGET/⎕VSET, and looked ahead to future work including a potential ⎕IMPORT module system — a prerequisite for the robust project and package management that the community has been asking for.

An APL App End to End
Rich Park

Rich followed with a showcase of Dyalog’s tools wrapped around a single example application: a video data CRUD/REST service with search and recommendation. The demonstration included the upcoming Stark REST router and its OpenAPI specification generator, the extensions to ⎕DT coming in Dyalog v21.0, and the use of isolates to push heavy computation into a separate Dyalog process so that Jarvis/Stark can keep servicing HTTP requests in the main thread. He showed APL code to compute search results and recommendations using simplified expressions of term-frequency inverse-document-frequency and cosine-similarity, to convey how using Dyalog to deal with the fiddly interfaces and inconveniences of real applications lets us focus on using APL to express core algorithms. Plenty to consider for anyone building services in APL.

Rich pointing to slide of application architecture overview diagram

Migration Tools for APL Systems
Morten Kromberg (remote)

Morten returned for a second presentation, this one looking at tooling for migrating to Dyalog from other APL implementations. There are tools to swap language constructs for Dyalog cover functions that reproduce the original behaviour — and you wouldn’t necessarily expect it, but even ∧/ (and-reduction) and ∨/ (or-reduction) can need special handling to behave identically for certain arguments.

GUIs are often the trickiest part of any migration. Often, the pragmatic answer is to move to a conventional web stack, such as React, but sometimes a customer would rather retain the native Windows GUI behaviour intact through the migration. For that, there’s the ∆WI emulator for APL+Win’s ⎕WI that is being developed by Davin Church. In the past we’ve even seen an APL2 GDDM terminal interface migrated to an HTML/SVG-based emulator. Looking further ahead, the path from ∆WI to eWC could let migrated (or original Dyalog-native) GUIs run cross-platform inside HTMLRenderer or a browser without much further refactoring.

Parsing User Input for Database Normalisation
Mark Wolfson and Kori Smith, BIG

Mark is a familiar face at Dyalog events; this time he was joined by Kori Smith to talk about the work BIG does in inventory analysis and data aggregation for the jewellery industry — highly customised data processing for approximately 1,000 customers. The case study they explored was the perennial problem of inconsistent, hand-entered, product descriptions that need to be mapped onto a regular set of fields for database storage and later analysis.

BIG’s approach combines APL with regular expressions to iteratively refine the processing in a way that can be tuned on an individual customer basis. As Mark and Kori explained, the use case demands more consistency than an LLM can comfortably guarantee, and the mainstream NLP toolkit is overkill for what’s actually a fairly bounded problem albeit with some ambiguities (“emerald”, for example, is both a gemstone and a cut of diamond).

Kori Smith presenting

Dyalog OpenAPI Client Generator
Holden Hoover

Holden presented the Dyalog OpenAPI Client Generator, a tool that promises to make it considerably more straightforward to interoperate with the many existing services that publish OpenAPI specifications. Several attendees indicated that they had encountered precisely this issue already, and would benefit from not having to hand-write clients for sprawling third-party APIs.

One nice side effect of a machine- and human-readable specification is that it encourages thinking through API design before implementation. Holden demonstrated the generator against the Open-Meteo weather API, and against the OpenAI API — the latter to generate an introduction-to-APL page complete with examples and an image. He also mentioned the Stark REST Router layer that sits on top of Jarvis, making it easier to expose a Dyalog application to the wider world of HTTP clients.

APL Primitives in the 21st Century
Enhancements in Dyalog v20.0: Arrays, Namespaces, Composition, and Inline Tracing

Asher Harvey-Smith

After lunch, Asher gave us a double-bill of presentations about the past and current development of language features in Dyalog.

First, he took us on a whirlwind tour of how the APL primitives have evolved through Dyalog v13.0 to v18.0, with a particular focus on extensions and new primitives motivated by leading axis theory. This is the idea that functions applied along the first axis can be used to apply to sub-arrays, or between collections of sub-arrays of two argument arrays, in a consistent and malleable way compared to the ad-hoc nature of bracket axis. He started with short left arguments to take () and drop () in Dyalog v13.0, and progressed through to unique mask () which marks unique major cells along the leading axis from the outset.

From there, Asher moved on to new features in Dyalog version 20.0. We saw APL array notation and its integration into the Dyalog session and editor, the ability to write namespace literals analogous to JSON, and inline tracing to step through an expression one function at a time. He explained behind () as a complement to compose (), with the filter idiom ⍛/ as his favourite example (for example, >∘0⍛/ to extract positive elements from a list). He concluded with ⎕VGET/⎕VSET for manipulating variable values without resorting to the potentially-dangerous execute (), and ⎕SHELL for more complete and controllable command-line execution from APL.

Asher presents a slide about short left arguments

Jarvis and AI
Brian Becker

Brian presented an experiment exploring how far a modern LLM could go in building a simple – but fully functional – Jarvis‑based web service. The target application was a Wordle™‑style game, and the model chosen was Google’s Gemini, selected for its easy, low‑cost browser access.

Brian began by crafting a prompt that described his requirements for the service. He then asked Gemini to refine the prompt and produce a project plan. Gemini responded with a surprisingly thorough plan, addressing several architectural details that Brian had not explicitly mentioned. When instructed to “do it all,” Gemini generated an HTML file containing the complete HTML/CSS/JavaScript front end, an .apln file defining the WordleServer namespace, and an .apls DyalogScript file to configure and launch the service. Then followed an iterative debugging loop (run the service, hit an error, paste the error into Gemini, apply the suggested fix, and repeat). Eventually Gemini produced a workable, if not elegant, solution. Brian proposed a cleaner approach, which Gemini incorporated. That single suggestion ended up being Brian’s only code contribution; all other APL, HTML, CSS, and JavaScript was generated entirely by Gemini. The final product was a clean, responsive game that Gemini named ARRAYDLE. Brian noted that the process might have been even smoother if Gemini had the ability to execute APL code directly.

This experiment reinforced two trends: LLMs are rapidly improving at generating APL code, and they already excel at producing polished HTML‑based front ends.

AVG — A Voxel Game
Kyle Croarkin

Kyle gave us a glimpse of his experience learning APL since he started in August 2025, and the substantial project he built to test his learning – AVG, A Voxel Game (essentially, a mini-Minecraft!). He’d wanted to develop something more meaningful than puzzles but nothing too daunting, so that he could really explore APL’s expressivity and the interpreter’s performance against the demands of a real-time game.

It was particularly nice to hear Kyle describe moments that more seasoned APLers will recognise. Kyle described arriving at a solution for finding invisible cube faces, only to realise it mirrored the structure of John Scholes’ Game of Life, giving him the revelatory experience of suggestivity. He talked about how quickly one can iterate on ideas when the notation is terse enough to keep everything on screen, and how APL puts the data right in your face. He was honest about the learning cliff, especially coming from a conventional CS background, and about the things that weren’t well-suited for APL in any obvious way (flood-filling algorithms for light and shadow being a notable example).

Kyle presents A Voxel Game

The APL Trust
Mark Wolfson

Mark closed the day with a talk about The APL Trust, a charitable organisation looking for applications for projects that either do work with/in APL or that benefit the APL community and ecosystem more broadly. As an example, a recent grant has supported the development of the APL387 font. Mark is also now an official Dyalog agent for North America, helping to support existing and prospective customers with their use of Dyalog.

Q&A and Conversation

The day was concluded with a Q&A session that gradually broadened into a more general discussion, touching on the ongoing challenges of promoting APL such as the glyphs, onboarding more generally, engaging with communities beyond the existing APL world, and the difficulty commercial users sometimes face in sharing their use cases without revealing industry secrets. None of these are new problems, but it’s always useful to discuss them together.

In Conclusion…

DYNA26 was a great day, well attended and warmly received. Conversations extended beyond the scheduled breaks and continued afterwards when we went for dinner and drinks.

The next user meeting will be Dyalog ’26 in Eastbourne, U.K., on 12-16 October. We hope to see many of you there.


Materials and recordings from DYNA26 will be added to the event webpage as they become available.

DYNA Fall 2025 – A Review

DYNA Fall 2025 brought together APL enthusiasts, customers, and Dyalog Ltd staff for two days of presentations and workshops in New York City. Attendance was strong, energy was high, and the sessions showcased both the maturity and momentum of the Dyalog ecosystem.

The event took place in the Jay Suites Conference Center at the end of September. We’d arranged a bigger venue this time, but it was still filled to capacity! There were eight members of Team Dyalog present, and the European contingent gathered at Brian Becker’s house for a few days beforehand for a “Conclave”. As we’re a geographically-distributed team, we try to take the opportunities that present themselves to work together in person – our thanks to Brian for hosting.

Day 1: Presentations

The Dyalog Road Map – Fall 2025 Edition
Morten Kromberg

First impressions: so many people! Old friends, new acquaintances, and a palpable buzz in the air. Our CTO, Morten, started proceedings with his customary roadmap and vision – what have we done, what are we doing now, and where are we going next. He highlighted both the necessary Sisyphean work, such as the ongoing improvements and interfaces to other systems, and the more exciting developments, such as new language features (array and namespace notation, ⎕VSET, ⎕VGET, and inline tracing). Morten emphasised our growth, in terms of both revenue and staff. He introduced our newest hires, including Asher Harvey-Smith, whose first day happened to be today!

Dyalog and AI
Stefan Kruger

Following Morten’s presentation, Stefan talked about Dyalog and AI. AI is a hot topic that impacts most companies in some way, but, as a minority language, LLM performance has been poor in APL. Stefan’s talk covered some of the recent developments in the field, highlighting the fact that frontier models today are capable of explaining even quite complex APL code correctly, but that they still struggle to write code unaided. He demonstrated an LLM agent capable of executing code, running tests, and reading documentation – showing that while this improved performance, we’re far off the productivity improvements that a Python developer could expect.

JAWS – Jarvis And WebSockets
Brian Becker

Brian took over to present JAWS. No, not the 70s movie, but the WebSocket extension to Jarvis: JAWS = Jarvis And Web Sockets (Jarvis is our web service framework). He outlined the different use cases for HTTP, and contrasted those against the use cases for which you need something else, and how websockets can fill that function. Brian showed some practical examples on how websockets are used, and how the websocket functionality slots neatly into Jarvis.

A Dyalog Interface to Kafka
Martina Crippa

Martina introduced us to Apache Kafka, an event-streaming platform widely used as a backbone in the data infrastructure in large organisations, such as banks. Large cloud providers often use Kafka as the glue between their services. Martina has been working on a Dyalog interface to Kafka. She explained why it matters, and demonstrated the APL Kafka API live. The Dyalog Kafka interface is being built primarily in response to customer requests, but it’s fully open source and we will be offering optional paid support packages for those that so wish.

Static Analysis of APL for Tooling and Compliance
Aaron Hsu and Brandon Wilson

The morning finished with Aaron and Brandon talking about the Static Analysis project. Static Analysis is becoming increasingly important, especially in regulated industries, where compliance demands for such checks percolate through all the way down to platform vendors. They demonstrated the principles upon which the Dyalog Static Analyser is being built: the parser from the Co-Dfns compiler, which has been extended to handle the whole of Dyalog APL. A clear visualisation of how the static analyser’s rules select features from the analysed code showcased the powerful potential that this approach promises. Presenting as a double-act performance is hard to get right, but Aaron’s and Brandon’s presentation went down well. Static analysis is challenging at the best of times, but demand is particularly acute in finance, where regulatory compliance drives tooling requirements.

Lessons Learned when Converting from APL+Win to Dyalog APL
Alex Holtzapple of Metsim International (MSI)

METSIM® is an all-in-one solution for mining and metallurgical operations; it is used in 57(!) different countries around the world – “in the remotest corners of the map”, as Alex put it. Over the past 18 months, Alex and MSI have worked closely with us to migrate METSIM® from APL+Win to Dyalog. After introducing himself and METSIM®, Alex described the process of working with Dyalog Ltd. He had a clear vision of what he wanted to achieve: he specifically wanted to preserve the UI’s design as it stands, because that places less of a burden on customers to modify their workflows and established processes. The migration has been a successful project, and the Dyalog-based product is now in the hands of their customers. Both MSI and Dyalog Ltd learned important lessons from the migration project. Alex said that they’d thought about this migration project for a long time, but what finally swung the decision was a visit to our HQ in Bramley, UK, to “look the team in the eye”.

Dyalog APL: Our (Not So) Secret Ingredient
Mark Wolfson of BIG

Mark Wolfson told us how they’re disrupting the jewellery business, and how Dyalog is forming a central component in this. BIG’s stack is a great example of a modern, heterogeneous services architecture: by the very nature of the business, they need to be able to consume data from a multitude of diverse systems and protocols. After this data has been transformed into a common format, it is then consumed by several internal systems to “derive insight from chaos”. BIG has always been an APL promoter, and Mark is doubling down on this. BIG is increasingly reliant on APL, and they’re investing significantly in their capabilities.

The Data Science Journey
Josh David

Josh talked us through Dyalog’s data science journey. Dyalog APL has long been a natural fit for data analysis, long before the term ‘Data Science’ became fashionable. Today, the field is – like so many others – dominated by Python and R. At Dyalog Ltd, we firmly believe that we have a role to play in this space, and we’re actively trying to attract new practitioners. Josh recounted his experience exhibiting at the 2025 Joint Statistical Meetings (JSM), Nashville, together with Martina Crippa, Rich Park, and Steve Mansour. There was a lot of interest from delegates, especially when walked through the extremely compact formulation of the k-means clustering algorithm in APL. A renewed focus on the Data Science application of Dyalog APL will inevitably impact our development roadmap – we need to improve both our data ingest story, and the raw performance in some key areas.

Josh also showcased Steve Mansour’s statistics package TamStat. TamStat is primarily intended as a package for teaching statistics, but it has several other interesting facets, too: it can be used as a library for statistics routines that you can use in your own applications (it’s open source), and also as a “statistics DSL” – a compact, dedicated way to express and evaluate statistics formulae.

What Can Vectorised Trees Do For You?
Asher Harvey-Smith

Asher is the newest member of Team Dyalog, and he has started his role by giving a presentation and hosting a workshop on the first two days of his employment! However, his association with Dyalog Ltd goes back longer than that, as he has previously completed two internships (the second as “senior intern”), and is already a seasoned presenter (he stepped up to the podium at the Dyalog ’24 user meeting in Glasgow). Asher wants to popularise the tree manipulation techniques used in the Co-Dfns compiler and also in the static analyser. Through a set of clear examples and animations, Asher has found a great pedagogical treatment of a set of techniques that many people have had difficulties grappling with. Asher also outlined when the “parent vector” technique is not appropriate.

ArrayLab: Building a 3D APL Game with raylibAPL
Holden Hoover, University of Waterloo

Holden Hoover, the inaugural APL Forge winner in 2024, demonstrated a 3D game called ArrayLab that he’s been building on top of Brian Ellingsgaard’s raylibAPL (Brian is also a former summer intern at Dyalog Ltd). One purpose for developing the ArrayLab game was to test the raylibAPL bindings whilst simultaneously exercising the Dyalog interpreter. When working with native extensions there are a lot of things that can go wrong! Holden also had to learn a lot about game development, in particular in-game physics. The ArrayLab game is a work in progress, but he showed a live walk-through of his progress so far, demonstrating correct physics and collision detection.

The APL Trust US
Diane Hymas and Mark Wolfson, The APL Trust US

The first day concluded with Diane Hymas and Mark Wolfson reporting on the progress they, together with a wider team, have been able to make on the APL Trust US. The purpose of the APL trust is to “give back” to the community. If you have an idea for something that you want to do with APL, you can apply for funding help from the APL Trust – the application process is being formalised at the moment. The good news from Diane was that the APL Trust is now launched as a registered tax-deductible charity.

Socialising!

An important part of multi-day gatherings of this kind is the impromptu hallway encounters – networking opportunities where like-minded people meet and learn from one another. After the presentations had completed, we retreated to the Yard House restaurant a few blocks up the road for dinner, conversation, and making friends. For several of us, this was our first visit to New York, and taking in the sights and sounds of Times Square at night is definitely an experience!

Day 2: Workshops

Tuesday was workshop day. We had a packed programme across two streams. In the morning, you could choose between learning how to use Jarvis with Brian and Stefan, or a deep-dive into namespaces with Josh, Morten, and Martina.

We have found that the namespace aspect of APL is frequently misunderstood, and we’ve run the “Introduction to Namespaces” workshop a few times now. Josh was managing a full house, with Morten and Martina assisting. In the room next door, Brian gave a hands-on, practical introduction to Jarvis and JAWS, with detailed explanations of the different use cases. Jarvis is already a core component in many users’ deployed Dyalog applications; with the introduction of web socket support, Jarvis/JAWS will find its way into more application deployments.

In the afternoon you could choose between learning how to use Link with instruction from Morten and Stefan, or an introduction to the key operator with Asher, who also attracted a full house.

Key is one of the advanced operators in Dyalog APL, and mastery unlocks a lot of applications, especially in the Data Science domain. Simplifying hugely, the science goes to the left and the data goes to the right! Asher had a job on his hands teaching such a large group with a range of abilities, but he was ably assisted by Martina and Josh. Next door, Morten was helping the group through gradually more complex source code scenarios with Link. Link is now into its fourth major version, and a mature workflow component that lets Dyalog users take advantage of a range of external tools that are expecting to operate on text files, such as Git, GitHub, VS Code, and many others.

In Conclusion…

The 2025 Fall DYNA conference was a well-attended, well-received event, with a great mix of newcomers, veterans, customers, and members of Team Dyalog. The highlights for us were the two customer presentations from Alex Holtzapple and Mark Wolfson – it is always interesting for us to see how people use our product in the field! Alex is new to Dyalog, and it was fantastic to hear him reporting such a positive experience and outcome. Although Mark has been a Dyalog user for longer, he was no less enthusiastic, and to hear that they’re really growing their APL development team is a vote of confidence. It was also great to hear how The APL Trust US is taking off.

DYNA Fall 2025 reflected our growing momentum, both in technology and community. Each talk underscored a shared commitment to pushing APL forward, not just as a language, but as a living ecosystem shaped by its practitioners.


Materials from DYNA Fall 2025 are being uploaded to the event webpage as they become available.

DYNA Spring 2025: A Review

Earlier this month we hosted a DYNA (Dyalog North America) event. We returned to the same venue as DYNA24, and again had a capacity crowd.

The day started with an update from our CTO, Morten Kromberg, regarding the latest developments at Dyalog Ltd – both within the company and with Dyalog and its associated offerings. One notable change is a transition in how we will provide the documentation. From Dyalog v20.0, we are moving towards using open-source markdown-based documentation on GitHub. The benefits of this approach are improved searching functionality and the ability for more people, internal and external, to contribute. If you see an issue with the documentation, you can raise a GitHub issue or even submit a correction as a pull request.

Several new tools are in progress, including:

  • an interface to Apache Kafka, which is a popular open-source distributed event streaming platform used by thousands of companies.
  • a tool to perform static analysis of APL code that will detect vulnerabilities and other bad practices. This will help our customers adhere to “best practices” for software vulnerability analysis.
  • leveraging AI both to help our customers develop APL code and to help them use AI in their own applications.

Morten then spoke about the current and forthcoming versions of Dyalog, sharing the highlights of v19.0, reviewing v19.4.1(!), and previewing v20.0, which will be available later this year. Among its many features are two highly anticipated ones:

  • Array notation – this will have a significant impact on how arrays can be specified in code. Creating namespaces is now particularly easy, as rather than creating a namespace and subsequently assigning values in the namespace, they can be completely specified in notation.
  • Inline tracing – this will allow the developer to trace each element of an APL expression, displaying information about left and right arguments, operands, and so on. This should help make understanding long or dense lines of APL code much easier.

Morten’s second presentation focused on efforts to provide sets of migration tools for two different purposes – to migrate applications that are currently using Dyalog’s ⎕WC to non-Windows platforms, and to migrate applications written in other APL implementations to Dyalog APL.

EWC (Everywhere Window Create) is intended to be as syntactically identical to ⎕WC as possible to simplify the process of enabling existing ⎕WC applications to run on platforms other than Microsoft Windows with virtually no changes. EWC uses HTML, JavaScript, and CSS in the HTMLRenderer or a browser to render the GUI. This opens up the possibility for users to integrate other JavaScript libraries, inject custom CSS, or develop custom controls to add additional GUI elements beyond those that ⎕WC can provide alone. Neil Kirsopp is our resident JavaScript expert, and is leading the client side of EWC. Morten showed screenshots of an existing ⎕WC application and its EWC equivalent, as well as a new EWC application that he developed to help track the administrative work necessary for maintenance and scheduling of the sailing ship he co-owns.

Morten Kromberg presenting at the DYNA Spring 2025 APL event in New York City. He is pointing at a screen displaying a sailing ship interface, which includes ropes, rigging, and a schooner in the background.

Photo by Devon McCormick

Morten next discussed source code migration from APL+Win to Dyalog APL. The challenge of migrating a “living” application where changes are being made to the APL+Win code while it is also being converted to Dyalog APL has resulted in a methodology using code in parallel text files, using Git for source code management. A framework to translate the syntactic incongruities between the two APLs has been developed. Perhaps the most daunting difference lies in the GUI architectures. APL+Win uses ⎕WI where Dyalog APL uses ⎕WC. A new tool that we have developed to ameliorate this is ∆WI, which is a ⎕WI emulator that uses ⎕WC under the covers. Although work is not yet complete, the pilot customer is very pleased with the migration effort and the performance of ∆WI.

Morten also noted that many ∆WI-based applications can run using EWC and, therefore, should be able to run in the cloud. Davin Church (Creative Software Design), with his extensive APL+Win experience as well as his Dyalog experience, has been enlisted to help develop ∆WI. At this point, Davin joined Morten and mentioned that when he compared Dyalog’s APL-based equivalents to APL+Win’s C-based “fastfns”, the Dyalog code typically ran slightly faster.

Mark Wolfson (BIG) spoke about how Dyalog is used within his company. BIG has revolutionised the Jewelry industry, and their product is known for accommodating and handling many different input files and formats from jewellery shops across the USA. Mark is quick to advocate for, and experiment with, some of the newest Dyalog features. Now with Jarvis and EWC, he has been able to very quickly deploy new front-end features to his customers, sometimes sometimes even while they are describing their problem to him over the phone! This is in stark contrast to trying to create a ticket to get the same features built and created by the C# development team.

Mark Wolfson speaking at the DYNA Spring 2025 APL event in New York City. He gestures with a presentation remote while discussing a topic, with a whiteboard containing Wi-Fi details in the background.

Brian Becker then presented “The Many Faces of Jarvis”. Jarvis is Dyalog’s web service framework that can be used to deliver JSON or REST-based web services – it provides a mechanism for clients to access your APL code over the net without them having to know anything about APL. Since its inception, Jarvis has become a key component of many Dyalog projects, both internally and amongst our customers. Brian described how features have been added to Jarvis in direct response to customer needs.

Josh David showcased some of the tools and functionality that are used in day-to-day development. He decided to live dangerously, and demonstrated this by working out a problem in real time using some of the public datasets made available by New York City. He did an analysis and produced a report of tree data (the plant, not the datatype!) across the five boroughs. It involved the use of some newer primitives such as the key and at operators, other system functions for reading/writing files, the HTMLRenderer and a JavaScript plotting library, COM for Microsoft Windows automation, .NET for cryptography routines, SQAPL for database access, HttpCommand for web requests, and ⎕R for regular expressions support. All these tools come with a Dyalog installation.

Josh David presenting at the DYNA Spring 2025 APL event in New York City. He is seated in front of a large screen displaying a slide titled "Leveraging Community Packages," which lists various technologies and tools used with Dyalog APL.

Photo by Devon McCormick

Max Sun (BCA Research) presented a demonstration of some of the tools he used to build the talk he gave at LambdaConf last year; he runs APL examples in a Jupyter Notebook, using SharpPlot for plots.

Brian and Mark presented thoughts and developments on Dyalog and AI. Brian posed two questions:

  • How can Dyalog use AI to help our customers?
    • Making documentation easier to search and navigate
    • Explaining what a piece of APL code is doing
    • Generating APL code
  • What can Dyalog do to help our customers use AI?
    • What tools can we provide to help our customers to integrate AI into their applications

Integrating APL and AI faces several challenges. Firstly, there’s very little APL with which to train Large Language Models (LLMs), especially compared to languages like Python and JavaScript. This can lead to frequent “hallucinations”, where the LLM just makes something up. Secondly, APL is not a focus for AI purveyors. Although there is documentation and packages for Python and other language to interface to LLMs, it’s up to us to develop them for APL.

Brian demonstrated a Google NotebookLM, into which much of the Dyalog documentation had been uploaded. This provided “context” for the LLM, which made the search results more accurate and applicable. Next came a demonstration of Cursor, which is essentially Anthropic’s Claude LLM integrated within Visual Studio Code. Brian provided a dfn and asked what the code did. The response was impressively accurate. He then loaded the HttpCommand git repository and asked for a summary – again the results were impressive. Brian then showed how he asked an LLM to write a simple piece of APL code. The LLM got it wrong, which Brian pointed out. This went through several iterations, with the LLM profusely apologising for its mistakes as it went on to generate another, different, mistake! It should be noted that different LLMs will perform better or worse depending on what body of material they have been trained on, and new, better, LLMs are being rolled out all the time.

Brian has used HttpCommand to develop interfaces to OpenAI‘s and Anthropic’s APIs. Many LLMs are OpenAI compatible, which means their API is very similar to OpenAI’s. Developing and documenting interfaces to LLMs will continue to be a focus. Mark discussed how AI could be useful at BIG, citing real-world use cases to balance inventory, improve look-ups, and provide alternative items based on their attributes and photographic similarity. Mark also raised the question of using commercial cloud-based AI for proprietary data. How private and secure is your intellectual property?

Brian’s presentation on “The APL Ecosystem” highlighted the online resources that exist to help people learn APL and participate in, and contribute to, the APL community. The single most useful resource seems to be the APL Wiki, but there is also TryAPL, APLCart, APL videos on YouTube, APL-related GitHub repositories, Hacker News, the APL Orchard on Stack Exchange, the APL Farm on Discord, the APL Challenge, the APL Forge, and various APL-related presentations at LambdaConf, Functional Conf, and PLDI.

To close the event, Diane Hymas asked everyone to “remember how you felt the day you discovered APL”. This was her lead-in to introducing The APL Trust – a non-profit entity aiming to promote awareness and use of the APL programming language by funding APL projects, especially in the areas of STEM (Science, Technology, Engineering, and Mathematics). Although the initial plan was to have one global fund, for tax purposes it was more expedient to start with a US fund, with other related funds in the UK and EU to follow. Hopefully the APL Trust will become an incubator of some great new APL ideas and software!

After the day’s scheduled agenda, most of the attendees walked around the corner to the Yard House for dinner and drinks. All in all, the day was fun, informative, and a great opportunity to interact with other APL enthusiasts.

————————————–

All the presentation materials from DYNA Spring 2025 can be downloaded.

DYNA Fall 2025 will take place on 29-30 September – register for updates as information becomes available.