Response to Feedback on Cut, Under and Merge

At Dyalog ’15 John Scholes and I presented proposals for future operators cut, under, and merge. Following the release of the video of this presentation, we received some feedback from a user. Our response to the feedback may be of wider interest.

  1. It’s early days yet for cut, under, and merge (they are tentatively planned for release in version 16.0), and one of the reasons for that is so that we can receive feedback from the user community. So thank you for your comments.
  2. We take our inspiration from many sources, and while it’s true that J has cut, under, and merge, cut saw the light of day in Rationalized APL (1983), under in Operators and Functions (1978), and merge in Rationalized APL (1983) again. And even before that, the ideas have been in mathematics or functional programming for many years.Wherever the inspiration came from, we don’t take them just on faith, just because they are in J.
    Even now, even in these early days, cut, under, and merge have undergone a vigorous internal debate. The discussion is informed by the experience in other contexts, J or otherwise.
  3. We are interested in what you think are the “few fundamental ideas expressed by a handful of mathematical symbols”, what you say is the definition of APL. From our perspective we have not violated and will not violate what we think are the fundamental ideas. But perhaps our set of fundamental ideas differ from yours?
  4. No one here is thinking of adopting the J spelling scheme (with the dots and colons).
  5. The Dyalog development team are in unanimous agreement that dfns, ⍺⍵-functions, are A Good Thing. As we see it, the recent and proposed additions to Dyalog APL have only enhanced the elegance and utility of dfns. For example, {(+⌿⍵)÷≢⍵}⍤r to compute the mean of not just vectors but subarrays of a specified rank, {⍺⍵}⌸ to compute the unique keys and the corresponding indices, {⍺(+⌿⍵)}⌸ to compute the unique keys and corresponding sums, and {⊂Cut ¯2⊢⍵,','}Cut ¯2 ⊢x~⎕av[4] to partition CSV x into its columns and cells.
  6. Cut, under, and merge are described and documented in discussion papers accompanying the video. If you have not already read them, they can be found in the Dyalog ’15 webpage and specifically here. Please tell us what more can be done as far as documentation, and what parts specifically are unclear.
  7. We have previously (and recently) examined the question of adding quaternions to Dyalog. Currently there are no plans to add them.
  8. Finally, examples of under from everyday life. Of course the processes involved can be composed, so that for example “dinner” can be:
    open the fridge
        take the food
    close the fridge

    but it can also be a more elaborate:

    take plate from cupboard
        open the fridge
            take the food
        close the fridge
        put food on plate
            open mouth
                put food in mouth
            close mouth
        clean plate
    put plate back into cupboard

    As remarked in the Dyalog ’15 presentation, once you are attuned to it you can see under everywhere, sometimes in subtle ways: Ashes to ashes, dust to dust.

SWEDAPL Meeting in Malmö, November 11th 2015

The November cycle of APL User Meetings is kicking off; the SWEDAPL meeting in Malmö was first this year, holding a meeting at the top of the famous Turning Torso in Malmö. Since it was just a short trip from our Danish office, Dyalog was represented by Gitte Christensen, Bjørn Christensen and Morten Kromberg – with Brian Becker and Dan Baronet joining the meeting remotely. Next week, Richard Smith and Nick Nickolov will be representing Dyalog at APL Germany in Erfurt and Dan Baronet at FinnAPL in Helsinki – check periodically for a list of APL meetings and Dyalog presentations!

Gilgamesh Athoraya welcomes us to SWEDAPL

Gilgamesh Athoraya welcomes us to SWEDAPL

This turned out to be a very international group – ten Swedes (two of whom were from India but based in Göteborg), six Danes who made the trip across the sound, two from the UK, one German and one delegate from each of Serbia and the Ukraine – plus about five North Americans who joined the afternoon sessions via GoToMeeting. This was the first “themed” SWEDAPL meeting; all of the talks were related to the use of Web Services in APL.

First up was our host Gilgamesh Athoraya from Data Analytics in Malmö, who showed us how he had been using Paul Mansour’s new RUMBA application interface which is built on top of Dyalog’s TCP toolkit (which is known as CONGA). Gil has been experimenting with support for Web Sockets, which are bi-directional connections that allow the server to push data to web client applications, making it possible to have very responsive user interfaces in web applications.

Joakim Hårsman explaining how slippery SOAP can be

Joakim Hårsman explaining how slippery SOAP can be

The next presentation was by Joakim Hårsman of CompuGroup Medical, who have been exposing data held on IBM AIX servers via Microsoft.NET-based Web Services for many years. Joakim had a few interesting stories to tell about getting a grip on and maintaining Web Services based on the protocol known as SOAP, which is supposed to make this easy…

The last talk before lunch was by Stephan Poßberg of Vallourec, who talked about the use of Web Services to make computational code available across a large, global organisation. Lunch was served on the 54th floor; unfortunately the weather didn’t quite allow us to see all the way to Helsingør.

The Turning Torso in the Mist, After Dark

The Turning Torso in the Mist, After Dark

After lunch, it was Morten’s turn, assisted by Brian Becker (who joined the meeting from Rochester NY) to present Dyalog’s brand new support for RESTFul web services, available in MiServer 3.0. Paul Mansour also joined this session and provided valuable insights into REST technology, which seems to be taking over as the preferred Web Service architecture for new applications.

Finally, Peter Simonsson from Aplensia in Göteborg told us how Web Services had become widespread at Volvo Cars, where a couple of hundred APL-based services provide the backbone of a network of applications centered around product data and production planning – with the earliest web services dating back to the days when APL ran under VM on IBM Mainframes.

Many thanks to Gilgamesh, Data Analytics and Optima Systems for arranging this event, which provided much food for thought, and inspiration for future work by several people at Dyalog – and by the sound of it, a number of users of APL as well! Expect to see more support for Web Services and Sockets in future versions of Dyalog products!