Last week I attended the Dyalog User Meeting in Glasgow. I decided to summarise my ‘top talk’ from each day in this post. This is purely based on personal opinion. Each summary contains an overview of the talk along with my thoughts.
Sunday: Taming Statistics with TamStat
Stephen Mansour’s talk was in fact a workshop. The intention: to show attendees the newest features in the latest version of the TamStat package. With TamStat users are able to run complex queries on data sets with simple semantic commands.
I attended one of Stephen’s previous talks on TamStat and it’s great to see how it has progressed. Alongside developing the tool Stephen has also produced a detailed user manual. The manual help users understand and run the commands. Also the manual gives examples of certain statistical tests and how you may use them.
The workshop started with a brief introduction on the concept of the tool. Also how it’s utilized with success by some of Stephen’s students. Attendees faced several scenarios with explanations on the correct statistical tests. Finally were let loose with the TamStat package. The simplistic nature of the language of TamStat enabled everyone to follow along with the scenarios. The most intriguing part of TamStat is it’s ability to simplify calculations. Alternative packages would require much more syntax!
Stephen also did a fantastic job of explaining statistic functions. He stated they fall into 4 main categories: Summary Statstics, Probability Distributions, Relations, and Logic. He uses these categories to organise the user manual and workspace. TamStat doesn’t just come as a Dyalog workspace. In-fact 2 other formats are available: Standalone Application, and Web Application.
Overall I had a great experience with TamStat and can see many applications. Both for the tool and the domain specific language.
Monday: The AirFix™ Model – Programming from a Kit of Parts
The last talk of Monday was John Daintree speaking on a fascinating deployment of the Dyalog interpreter. John started the presentation by likening software development to building a model airplane. He symbolizes the different tools and libraries in applications as parts you snap from plastic grids to assemble.
With John’s idea broadcast he started to explain how the operating system came into play. He stated Dyalog’s ability to run on Unix. An explanation that Android runs on a Unix based operating system followed. John pulled a tablet out running an APL interpreter in the background. He could use Dyalog’s RIDE software to connect to the tablet and run code!
John didn’t just demonstrate APL code running in an background interpreter. Also the ability to build functioning apps using RIDE/APL. The tablet was put to work running John’s CD collection app. An app that displayed and output audio files on the device. This was all written using APL!
The real “crowd pleaser” was John demonstrating he could run the CD collection app on his SMART TV and his android watch! Small devices with big potential, empowered by APL.
I found John’s talk interesting as it demonstrated that APL could be a major contender in writing and deploying apps on stores such as Google Play or Apple’s App Store. It added an extra branch to the audience’s practical application list for APL and I hope it has inspired everyone to play around with a few more platforms than the usual.
Tuesday: The Web Stack of the Future
We are in a web dominated world where key is connection. Pretty much every device has a way of talking to others these days and support for such communication is vital to have available to the developers. Conga is a library for Dyalog APL which simplifies connections and makes it easy to get data from one device to another. There was an announcement that Conga would be entering version 3.0 around the same time that Dyalog v16.0 would be released.
In the latest version of Conga, Bjørn Christensen the main developer of the library, has implemented the UDP protocol as well as WebSocket connections. Both of these are useful and valuable additions to the library which add several possibilities to application development in APL. UDP stands for “User Datagram Protocol” and it allows many packets to be transferred without having to have assurance that they made it to their destination. This protocol is very common with games and VoIP calls. WebSockets allow full duplex communication over a single TCP connection enabling real time data transfer between the client and server. This opens many possibilities when it comes to web applications such as server monitors.
This presentation excited me as it included the demonstration of features that have previously not been built into Conga and as such I had to use unoptimised libraries for. Conga 3.0 has huge possibilities and will be key in the advancement of web applications and servers written using Dyalog APL.
Wednesday: Same Difference
Wednesday was a day of celebration, several people gave fascinating talks about their personal history with APL and reminisced on the past 50 years APL has been actively used. I greatly enjoyed these stories and they made me appreciate the advancements in technology over the years. One of the senior consultants at Optima even told of a time when he would have to take turns with other developers to ensure the printer didn’t fall off the surface it was on as the printing process was so inefficient and violent!
Whilst these talks were both interesting and exciting, for this blog post I will be focusing on technical talks. So the talk I have chosen to write about for Wednesday is Simon Garland’s talk titled “Same Difference”. In this talk Simon talked about the languages being used at Kx Systems Inc. These languages, named “k” and “q”, were developed by a guy called Arthur Whitney whose early work was done in APL.
K shares great similarities with APL however Simon explains how k has evolved to have differences which change the way the language works and makes it unique. During the talk the differences were talked about in detail and Simon elaborated on how some changes made the language much more practical in the applications it was deployed in but also what downsides they posed.
This talk particularly interested me because k has been a language that has tempted my attention a lot recently and I have yet to dedicate much time to understanding and learning it. However this talk has given me the prompt I needed to go and explore k and learn about the differences and their benefits and pitfalls.
Thursday : Data Visualisation
Thursday hosted both talks and workshops. I have chosen to write about the workshop that I attended which featured a presentation of new MiServer and Chart Wizard features, along with a show of WPF/Syncfusion. There are promising new features becoming available to Dyalog users related to the visualisation of data and these features mostly reside in tools.
The first tool we looked at was the Chart Wizard. This Dyalog feature allowed you to take variables straight from the workspace and make them into smart and clear charts. The Chart Wizard will attempt to guess the correct chart for your data however you can also pick and choose the type of chart you would like along with alteration of axes and data. This tool has great functionality and I often use it to display variables when developing, sometimes it helps to see a visual representation.
The second tool we looked at was MiServer. This is a tool/application built to provide Dyalog APL programmers a way to build and deploy online sites in APL. As well as building HTML from APL code you can also add in supported Syncfusion controls and feed them data using impressive data binding. I will be interested to see how MiServer will utilise version 3 of Conga which offers WebSocket support. Finally we were shown a great demonstration of how to use the WPF tools provided with the Dyalog interpreter and some code from the Syncfusion site to create brilliant looking desktop forms that encapsulate the graphing and charting capabilities of Syncfusion. These visual representations were very visually appealing and the way that Syncfusion have written the libraries they provide means the graphs/charts are very interactive. Overall this was a good workshop that demonstrated a few different ways of turning the vast amounts of data we deal with as APL programmers into smart, visually appealing diagrams that make it much easier to spot patterns and trends or present data to clients.
Another great user meeting that Dyalog has hosted and I have been privileged enough to attend. The amount of knowledge presented at these meetings is truly staggering. I learnt a tremendous amount from simply watching the talks and even more interacting with the great minds behind them.
APL has celebrated it’s 50th birthday however this is an opportunity we should take to reflect on how APL is going to influence yet another 50 years of programming and what we need to do to make sure programmers are choosing APL to develop their applications in. As I said in an earlier section, we are in the web age and APL will need to keep up and contend with the ever growing arsenal of languages being built specifically with the web in mind.
What will the future of APL hold?