To all our existing users, business partners and friends we have not yet met: Happy New Year from everyone at Dyalog – we hope that we can be of service to you in the year(s) to come!
But what – or who – is a CXO? Well, according to Wikipedia, a chief experience officer (CXO) is the officer responsible for the overall user experience (UX) of an organization. The chief experience officer ensures the organization has good customer service, so customers are able to have a positive experience.
Since I joined the company nearly eleven years ago, the responsibility for customer experience has been an important part of my job as CTO. During this period we have grown very significantly – the five people who were responsible for Dyalog APL before the acquisition in 2005 have now become more than twenty, and we have plans to hire a couple more this year. We have reached a point where we have the manpower not only to keep existing clients happy by continuing to accelerate what has become one of the largest sustained investments in APL in the history of the language, but also to be more aggressive in going after completely new business – and attracting new generations of APL users.
As a natural consequence of this growth, we have decided that it is time to split the CTO role into two parts, with the addition of a CXO role. The CXO will focus on understanding the customer experience and what we need to do as a company to improve it, and the CTO will be responsible for implementing enhancements to the technology that we offer our users (and make sure that Dyalog itself masters the technologies that it needs to use to implement solutions today and in the decades to come).
Jay Foad appointed CTO
With immediate effect, Jay Foad will assume the title of Chief Technology Officer and be responsible for the core development team at Dyalog Ltd. Jay has been with Dyalog for just over five years now, and has impressed everyone with his ability to rapidly understand almost everything that goes on under the hood. Most importantly, he combines a keen interest in the lowest levels of hardware and software, with the ability to argdiscuss the finest points of APL language theory with the likes of John Scholes and Roger Hui.
I will take the role of Chief Experience Officer and be responsible for the rest of what was the CTO role. In many ways, I will be going back to what I have been doing most of my life – working with large and small APL users to put APL technology to good use. My primary responsibility will be to make sure that Dyalog understands the needs of current and potential users and to work closely with the CTO and his team to satisfy these requirements. This is not just a question of eliminating defects and making sure that the help desk provides a good experience when users need help with our software (although that IS important). More importantly, the software needs to have the features that current and future users actually need in order to be competitive when using APL as a development tool. The features need to perform well, have decent quality and they need to be designed in such a way that each feature is not only easy to discover and use but it should ideally also be easy NOT to use, if you have no need for it.
More APL Skills at Dyalog
For the last 2-3 years, we have been moving steadily along an essentially unchanged technical road map. You can find slides and video recordings of presentations from the last many Dyalog User Meetings at http://dyalog.com/user-meetings/index.htm. Our most important goals are to:
- continuously improve the quality of our products.
- continuously increase performance – this includes taking advantage of parallel hardware.
- port Dyalog APL to new platforms.
- provide cross-platform development tools that make it straightforward to develop applications on any of the platforms we support and deploy and maintain them on any other.
During the same period, we have gradually increased our investment into adding tools written in APL, in addition to enhancing the core technology. One important change in emphasis signalled by the creation of the CXO role is that Dyalog intends to accelerate this trend and significantly increase its capacity to do programming in APL, by adding young APL developers to our staff. There are several reasons for this:
- We need more APL developers in order to create tools, tutorials, documentation and other training materials. This is necessary to make existing users more productive and to make Dyalog an attractive tool for a new generation of users.
- We would like to increase our capacity to engage with our existing users in order to better understand requirements and help you take advantage of new tools and language features.
- We would like to work with new users, helping them get started with that first application implemented in Dyalog APL.
- We want to participate in the creation of the next generation of APL “Top Guns” so that we can eventually extend our application audit, tuning and migration services.
You may be able to help us: we will be looking to place APL and core technology developers within user organisations as part of their training. If you think you could host a Dyalog developer for a few days or a week to show them what life looks like on the front lines, or you have a small APL development project that might be suitable for a young APL developer to use as a learning experience, please contact me.
Promoting APL
In addition to having the right features and tools, we need to be sure that people know about them. Over the past decades, our ability to develop new features has often exceeded our ability to produce training materials and samples for them. A significant part of the CXO role will be to work with our CEO, Gitte Christensen, to significantly increase our efforts to tell the world outside the existing APL community about the well-kept secret that is Dyalog APL.
An important goal will be to produce completely new, modern samples and training materials – including videos and regular web casts – to make it easier for both existing and new users to discover and take advantage of Dyalog APL and associated tools. We will also spend significantly more time and effort creating a presence at conferences and online forums outside the array language community.
It is going to be a busy New Year!
Very touching …
Thanks, Alexey!
I’ve been trying to formulate a response to this blog post that sets the correct tone of agreement with your statements and your strategy for the future of promoting APL. For a very long time APL has hidden in the shadows, known to only a few acolytes who have either been unable to communicate it virtues because they were poor communicators or they have want to keep this magic a secret so as to give themselves a competitive advantage. Normal programmers and people have not heard of it or when they have found anything written about it, they have been bambozzled by its strangeness — probably because the authors of the articles have either been bambozzled themselves or because the author has been a mathematician. The last point is not meant to be derogatory to mathematicians but let us admit that most people, including experienced, degree holding programmers, do not think like mathematicians and do not understand what mathematicians are saying. I gave up reading the Vector because I did not understand the articles even though I have a degree in an engineering subject from Manchester university. If you look at the J forum, the same is true — the posts are written in the most dense mathematics speak.
APL needs a voice to evangelise it that is down to earth, that talks in the language of common sense , that avoids obscure mathematical examples like the tower of Hanoi or Sieve of Eratosthenes or Mersenne prime numbers, that gives real world examples that use the “tricks” that the primitive functions offer.
If I were giving a talk to an audience that is used to programming in normal languages (C, C++, Python etc.) I would start with a simple pragmatic example written in say C. I would talk about loops and show that APL offers all the standard loop formats (Repeat until, For Next etc.) and indexes so they need not be scared. Then I would show the same program written APL using these structures and talk about the fact that I did not have to declare all the variable types or have other meaningless lines of code at the beginning of the program. I would talk about the fact that you write discrete little functions rather than humongous single programs and emphasis how this makes it so much easier to modify and add code to the finished program.
Once everyone was comfortable that this language was not something from another planet then I would redo the program I had just shown in C and “looped” APL using the primitive functions that give APL its extraordinary power and the use of arrays. I would emphasis the tricks that are similar to those used by Excel users where you turn the array into a list of ones and noughts with functions like “equals”, “greater than” etc.
I would then introduce some of the examples from Bernard’s book like the sales director’s forecast and the Ages into Categories and the Area Discount examples. Finally I would demonstrate the use of mixed and nested arrays and how useful they are although I would keep this simple. And really finally I would finish showing that there are even more functions I had not time to describe but finish with an example that is really dazzling especially if it can be compared directly to the same solution in C and/or Python
That little lot should take about 40 minutes but what I want to do is wet their appetite, make them curious to find out more.
In the last 20 odd years Python has come from nothing to being extremely popular and promoted as the best language to teach children while still being a serious language for professional programmers. All this time APL, which is obviously light years ahead of Python, has been hidden in the shadows and has moved forward only slowly. We need to aggressively change this!! APL needs a great communicator to evangelise it.