Transcript
Special thanks to Adám Brudzewsky for providing this transcript.
00:00:00 Conor Hoekstra [CH]
You know virtual is great, but the real world is still pretty great as well. Go for a walk you know, hold someone's hand.
00:00:07 Gitte Christensen [GC]
And how do you make babies online?
00:00:24 [MUSIC THEME]
00:00:24 [CH]
Welcome to another episode of Array Cast. My name is Conor I'm your host and today we have a special guest. But before we get to introducing her, we are going to quickly go around and do brief introductions. We'll start with Bob, then go to Stephen and then go to Rich.
00:00:40 Bob Therriault [BT]
My name is Bob Therriault and I've been a J enthusiast for the last 20 years - two whole decades, and I'm not a professional programmer, but I'm very interested in language and it's very interesting, the things that are happening within this Community right now.
00:00:54 Stephen Taylor [ST]
I'm Stephen Taylor. I've been an APL programmer since forever and I'm currently a Q developer and the Kx librarian.
00:01:04 Rich Park [RP]
I'm Rich Park. I work for our special guest. I'm an APL programmer for the last… well, maybe almost three years now and I really enjoy teaching APL and talking about it and trying to talk about APL outside of the APL communities, as well as growing the APL community itself.
00:01:24 [CH]
And as mentioned, my name is Conor, I'm your host and I'm not a technically an APL or BQN or J developer. I'm a C++ developer, but I am a huge array language and paradigm enthusiast and I spend a lot of my free minutes in the day, whether that's when I'm running or not thinking about array languages 'cause it's a lot more fun to play with the array languages than to fight with compilers in other languages.
But with that out of the way, I think we're going to throw it to Rich. He's got 2 short announcements and then we will introduce our guest and start chatting with her.
00:02:00 [RP]
Yeah, so I think I mentioned this last time, but coming up fairly soon, is the Dyalog '21 User Meeting this year as it was last year, it's going to be held online. It's a fantastic opportunity to hear some updates and recent developments from Dyalog and also from some of our users. And that's going to be on Monday the 8th and Tuesday the 9th of November this year, and you can register online now. There will be a link to that in the in the show notes, I'm sure.
And the second thing is, I just wanted to give another shout out to the APL campfire, which is a sort of regular approximately monthly meeting where you get to hear some of the stories from a lot of experienced APL users and to find out about that, you go to apl.wiki/Campfire, which will also be in the show notes.
00:02:56 [CH]
And Bob, do you want?
00:02:57 [BT]
To yeah, I've just got one other announcement, I just thought of: It's that the British APL Association is working to provide a logo for APL. And I think it was actually prompted because of Conor's videos. Conor's been using a number of different logos, the Dyalog logo for one which everybody recognizes, the orange sort of triangle thing – very nice, but at one point what was it American…?
00:03:20 [CH]
American President Lines. It's like a shipping-logistics company.
00:03:23 [BT]
That's right, and so when he used the American President Lines's, people went "hm, it does say, APL". So they're now looking at… and they're looking for people's input coming up to the new year. If you've got any in any interest, we will provide a link in the show notes, to take a look at the proposed ones, and if you are a graphic designer or if you even if you're not, you'd like to propose something as a as an APL logo, generally not specifically to anyone group, but generally APL, then head over to that link and see what's been promoted. See what you thought. Think, and this is a chance for the community to actually get involved and develop a logo that will represent APL. At least that's the plan.
00:04:04 [CH]
Yeah, it's super exciting. Anybody that watches any of my videos or talks knows that I'm a huge programming language logo fan. And so yeah, it'll be… I've taken to this sort of apple matrix looking one that I believe Adám created, but that's just a placeholder until, you know, all the submissions are in and we vote and we choose, at which point I will adopt the official APL logo.
But with that out of the way, let's get to our very exciting guest today. We have the pleasure of having Gitte Christensen, if I pronounced that probably incorrectly, but she will, she will correct me in a second. She is the CEO of Dyalog APL, which I am incredibly thankful, is a company that exists today because I'm not sure if I would ever have discovered the APL/array paradigm if it hadn't been for Dyalog APL and their TryAPL website so they have been carrying the torch and sort of been the, I don't know if you want to call it "trailblazers" or "pioneers" that have been sort of carrying the APL torch. And now we're sort of, I think seeing a bit of a resurgence of APL and Array languages in the last few years, which is awesome.
So although she's the CEO of Dyalog APL, or I guess Dyalog Ltd, I think your experience goes back to the 80s when you discovered it in 1983 and you've worked at a plethora of companies including IP Sharp and Associates. But instead of me giving your background and history, I will throw it to you and I'm super excited to hear your story and how you, you know, came to fall in love with APL and came to be the CEO of APL or Dyalog APL. So take it away.
00:05:39 [GC]
Thank you very much and it was close enough so I won't repeat my name. So yeah, well and apologies to the campfires that might have heard the beginning of this talk. A little bit of it at least. But to start from a pre-APL and that's… almost 50 years ago, horrible. But I studied biology at the Copenhagen University with mathematics, physics and chemistry. It was the researcher education. There's like two kinds of biologists, the ones that likes the birds and the bees and go and watch them with mirrors, and then there's the people who are trying to find out how things work and look under the hood to see how the mechanisms work and it was the latter kind that I dived into
So one of the first, I think it was the first, semester we had mathematics. They started us out brutally with only hard topics first, but one of the things that was presented to us there, was something called LIMP, which was a programming language built on top of ALGOL W and it had arrays in it, believe it or not. You had to declare them up front with Xs and Ys and how long each axis were. But you could actually program matrices and vectors and stuff like that. You had to do it on punch cards, or if you couldn't find a terminal to punch the cards, you had to do it with a graphite stick and sort of do it on optical cards that was read by an optical reader.
00:07:25 [GC]
So obviously back then machines computers didn't have front end processors, so you could actually sit down and type out your program and have it run, provided that nobody started the program in the background because then everything was lost, so the safe bet was the class and in the end we had to do the treatment of all these data that we had collected and we did that on Texas Instrument 56, a pocket calculator. It had 2 K of memory, and so you could either keep your program, or you could keep your data. I chose to keep the program, but that was a mistake because I had to type all the data in three times because I discovered doing the statistics that I needed to do a logarithmic transformation because the data was not normally distributed, so I had to type the whole thing in again then.
00:08:18 [GC]
Then we finally graduated – good Marks and everything – so here we come, ready to save the world, we were some of the first environmental biologist to graduate from Copenhagen University and probably in the world, but there were no jobs because the government hadn't discovered that there was a problem and the municipalities, much less, but we were presented with graphs that showed us, for instance, the correlation between the temperature and the CO2 emissions. And that's almost 50 years ago, and the world is waking up to this fact right now. It takes a long time for science to reach the public, I guess.
00:09:01 [GC]
So one day, I saw in the newspaper in ad that said that long term unemployed academics could be retrained to EDP [Electronic Data Processing], that was what IT was called back then, so I applied for that and I got it, and so the first thing we were exposed to was seven weeks of Fortran training. That was a lot of fun and I was actually a pretty good hack at that. Then came four weeks of COBOL, I mean, my God, you had to write a whole page of declarations before you could actually start doing anything to the data, but I guess it had its purposes.
We had a course of something called CS4, which turned out to be the relational model that had just been issued about then, and we had business economics. I did a stint on user interfaces; we actually had to program the terminal screen like pixel by pixel, pretty much, and there were some subroutines that allowed you to make fields where people could type in. And then at the very end, we had four weeks of APL, and I still remember the day when one of the first things they showed us was 1 2 3 + 4 5 6 and out comes three numbers and I'm thinking "so, no loops, no declarations". And the one problem with Fortran I had: I could get it to calculate pretty much anything for me, but I couldn't get it to tell me what the result was, because to get data out of, or print out of Fortran you had to be able to tell it what size, how many positions you needed, what kind of data you wanted for the result, and that wasn't always easy, I mean, if I knew that I could have calculated this stuff myself, I didn't need the computer!
00:10:42 [GC]
But APL just told me the result! And I was just "why did they bother with all this other stuff?" And if I had known that while I was studying, I could have done a lot more of this data treatment or modeling than we were doing. So I ended up at IP Sharp Associates and because we had a three month practice period after the course, placed a place that a company that needed qualified workforce for EDP.
So I had expressed my appreciation for APL enough that I ended up with IP Shaft and as one of two and I, I ended up staying there. So what was I P Sharp back then? Well, it was a big mainframe in Toronto, but actually two, because there was one for development and one for production. There was about 40-50 subsidiaries worldwide. There were about 600 employees. We had a large worldwide packet switch network to connect all the offices with the mainframe in Toronto, and what we sold was computer cycles and communication by the 1000 characters. So we're sending 1000 characters worth about a dollar, and one computer cycle changed all the time because the computers got faster and faster, so it was a fudge factor on that.
But consulting was pretty cheap or very often heavily discounted because what the consultants did was building applications for the customers who ran them of course on the mainframe and burned cycles and did communication, so the more the consultant could build for the customers, the more money the company would make, so it was a really nice job.
00:12:31 [GC]
I was hired as one of these consultants to create apps and the first assignment I got was international financial consolidation for a large Danish group. They had subsidiaries all over the world, and they needed to consolidate all their monthly figures so that they could follow what was going on.
So I knew a little bit about accounting because I had done that during my summer holiday jobs, and I had the Chief Financial Officer of the group at my disposal, he explained to me what he wanted and I could always call him and ask him questions and every time I said I had something I wanted him to try, he came and tried it out and told me if the users would like that or not and my boss Johnny Larsen claimed that did was just one big plus reduction and then some administration, so how hard could it be?
But fortunately, at IP Sharp there was a large programming community, and many of these 600 people were actually consultants like myself and some of them with vast experience, so they were sharing both in terms of code and tools, which there were some official libraries, and then there was a whole bunch of stuff that people had made for themselves that you could rely on. And then they were always there with help and advice if you wrote an email saying "I'm wondering about this", almost immediately, and around the clock, you would get an answer from somebody.
00:14:05 [GC]
So in addition to an implementation of the relational data model called MABRA, they also had a multi-dimensional database framework magic-store and that lend itself completely to the task at hand.
The data for one of these is there's only one number for each account per month, so it was a four dimensional data structure and it was easily built with this framework and then it was just doing the admin on top of it, so I joined in April '83 and by October the system was in test with the Q3 accounts and it was put in production for the year end. I don't know of any other language you could do that. Mind you, it was tele-typewriter terminals; you didn't have to build the user interface and that I guess in today's measures is a big advantage.
00:14:57 [GC]
Now Johnny Larsen thought, "I mean, having a rookie build a system like that is pretty good going", but he thought "maybe I could need some advice from somebody more experienced". So I send an email with my program, it's about 1 meter, to Örjan Wikström in the Swedish office and I got back an email about 1 meter with advice and suggestions for improvements.
And I started reading and I didn't get it, so I kept this email for later and when the customer came back and asked for enhancements to the system, I read it again and then it made sense because now I could see that the way I'd written the program didn't lend itself to remembering how it was… it was quite unstructured, so I refactored it.
While I was doing the enhancement, we sort of rewrote that complete thing and made subroutines and stuff so the main story was in the main program and all the stuff I had need to do more than once was in subroutines.
00:16:08 [GC]
Now, if anyone is familiar with the core principles of extreme programming or agile programming, they will recognize what was going on here: The user at the center, rapid iterative prototyping, as we called it back then, get the merest thing that can possibly work out there, and let the user have a look at it and tell you whether they like it or not, before you build a complete complex of stuff and revise and revise and revise, until they approve. Refactor! Dare to refactor when necessary, and have peer reviews.
So this is what I learned back there in '83. It's quite modern right now.
00:16:50 [GC]
So in 1984, I was sent with all the other programmers at the Copenhagen office Morten Kromberg, who, in the meantime, I had imported from Norway. We met by email back in '83. It doesn't sound like something unusual today, but it probably was back then.
There was Birgit Christensen who had been hired as a second consultant before Morten arrived, and then Dan Baronet who did a stint at the Copenhagen office. That was quite usual, at IP Sharp, that if you needed some fresh air or change of environment, you applied for going somewhere, and they would find a place where they needed a consultant or a programmer for a customer.
And I know Stephen, and you've been also through the Copenhagen Office doing work for Novo Nordic, I think so, I mean this was exchange of ideas and knowledge and skills inside the company, and it was extremely valuable.
00:18:03 [GC]
So that conference that year was in Helsinki in Finland, and that was a real eye opener. I had sort of worked in the office, talked to the Sharp people, but here was a whole world of people who worked with APL and there were presentations on implementation of APL, sort of really deep knowledge. Algorithms you could use for various things. The presentation of the second generations of APLs, APL2 and the Sharp variety of nested arrays.
00:18:34 [GC]
And not the least, a lot of presentations of usages of APL. And when people talk about how they use APL, they don't talk about the techniques they used here and there, and modules of code or libraries; they talk about why they are doing this program. The problem they're trying to solve. And then once they've told you the solution to the problem, I mean the rest of us understand how to code that in APL. That's not the issue, it's the "how to solve the problem" and the deep knowledge about all these different areas of business or professional specialties that is really enlightening. I mean you, you get away from there completely high with all this new knowledge, presented by people who understand much more about it than you would ever do.
So that was the days, and during the days, Dan Baronet, by the way, he went around to all the vendors who exhibited APL systems and crashed all of them.
He had an absolutely uncanny ability to find the edge cases that would crash a system. Like, he would be able to index out of memory and stuff like that and so he was told by Ian Sharp he had to leave the Sharp APL and IBM's APL alone.
00:20:05 [GC]
And so, in the evenings we met at the hospitality suites of the different vendors. That was quite common back then, there would be like a suite at the hotel and there they would serve you snacks and drinks and you would meet up with some people who couldn't go to dinner with afterwards.
And there was people from not just IP Sharp, all sorts of companies: there were consulting companies there were the other vendors and some quite interesting people. I entered into friendships there at that conference that has lasted all my APL life. I mean, this's 40 years. So meeting in person is a very important thing for me at least.
And these user meetings went up on up until the early naughties. I missed the one in '85 because I was very pregnant at that time, but apart from that I went to all of them.
00:20:55 [GC]
So the interchange of idea knowledge can keep you at the forefront of your profession as a programmer.
Just remember that one good idea is worth the whole conference fee and travel expense to the company when you bring it back. And it's not just something technological you pick up, but it might be somebody else doing something completely different, solving a problem that looks very much like your own. So you do this lateral exchange of ideas when you meet up in events like this. APL was the first group to form a Special Interest Group, "fagråd" in Danish, and they became common across the world, like ACM had an APL SIG, British Computing Society had British APL Association, and in lots of other countries there were local APL interest groups.
00:21:52 [GC]
The interesting thing is that when IT became more and more established, up through the '90s, APL became the odd one out, and all the organizations started to sort of get rid of the APL SIGs or integrating them into software development umbrella SIGs.
I think the major reasons are… Ah, well, there was actually two: First of all, IBM had started a vendetta against APL, and I know the reason why, but I think that story is too long to tell you.
00:22:28 [CH]
Such a tease. Such a tease.
00:22:31 [GC]
Yeah, I'll come back and tell that story, you know.
00:22:33 [CH]
All right, listeners, stay tuned to the IBM Vendetta story at a future episode.
00:22:39 [GC]
Yep, exactly. but that IT community, their self-image as having control over the IT infrastructure and the data, and by implication the business itself, they often clashed with the APLers who were trying to solve a problem for the business. They were finance, people, actuaries, medical doctors, engineers, production planners, who had real problems to solve, for the company, or for the business they were in.
And they didn't really see a merit in all the rules and procedures of the IT hierarchy that they perceived as just slowing them down. And they couldn't get the data they wanted, and the IT department was considered as the no-can-do department.
They didn't really get along.
I like to compare it to religious communities, like their beliefs and convictions, and there's rules and ceremonies, and you had to adhere to that, because otherwise your whole world will crumble.
00:23:49 [GC]
And the APLers was sort of the Quakers of computing they're freethinkers: Responsible to themselves and obligated only to their purpose, so, I mean, you can see where the clashes arised. I recently read a recommendation from one of the big advisory companies that are also consultancies, that in fact there should be two kinds of IT in a company: there should be the one responsible for the infrastructure and the data storage and the security and the networking and stuff, which is sort of admin and sort like a company has its roads and bridges and stuff like that. And then one IT department responsible for answering the business requirements and developing things fast to new needs, with a thorough knowledge of the infrastructure of the company and where the data was. 'cause there is, I mean in my opinion there's a whole bunch of data being collected and stored for companies and never used, and there's a lot of knowledge in those data that you could get out if you could allow the people who understood the business to work with them, but it doesn't happen unless you can predict upfront what you need.
00:25:09 [GC]
Many of the best APL systems I've seen are systems that gives the user the freedom to use their knowledge in dealing with the data rather than forcing them to do a certain set of steps to get to a certain result that's required because that hardly needs an intelligent human being.
But the intelligent human being would like to ask questions of the data, ask questions of the system, and they should be allowed to do that.
00:25:40 [GC]
So IP Sharp was sold to Reuters because Reuters started themselves with pigeons bringing news from Paris to London and when they put electricity on that they continued to do the same thing: They just sent the data distributed to its customers and then forgot about it.
So by the time the PC (personal computers) had started to come out and the financial analyst wanted to use the historical data to do trends and analysis and stuff like that, and Reuters had nothing, because they'd throw the whole thing away. But IP Sharp had it all, because they had collected all these data in their time series storage, and so Reuters was interested in that data, bought IP Sharp and didn't discover that they had bought a software shop as well, so they started spitting out the bits that they didn't like, and the Copenhagen office was amongst that 'cause we were doing mainly consulting for mainframe customers.
00:26:46 [GC]
So we decided just the technical staff at the Copenhagen office to create our own company doing consulting for all the customers who would still need it, and that became Insight Systems and so we worked some years with that, but doing consulting for large corporation, as a small company, is a very difficult task to match the resources you have with the demand. I mean, it's always too much or too little.
00:27:17 [GC]
One of the things I did back then was document a large system for Novo Nordic. And the FDA had demanded that and year 2000 was coming up, and so they needed a thorough documentation of the whole system. So I did that and Morten had said to me at one point in time, "you can really learn a lot about a person if you read their programs", and I thought he was crazy… Until I started reading this system, and I said by the end of the period of documenting it, I could tell you exactly who had written what module.
I mean, there was a guy who was extremely organized setting up, I mean almost like a COBOL program declaring everything at the top of the program, and then the logic came clean and crisp.
00:28:11 [GC]
Then there was the gung-ho guy who said "oh, yeah, what are we doing today? Ah, we gonna get the data in here? Yes, then we need to filter it and that filter I'll put here, and then I'll jump down here and then I'll jump back up there. And oh, I wonder if I kept those vectors…" So programs like that was quite difficult to do.
There was a guy who, he was quite organized, but all his conditions for jumps in the code, I mean, you would read all this condition and then you would decide what data would come out of this condition. And then he would just do a tilde [APL's logical NOT] in front of that Boolean vector that came out of it, and you were thinking "OK, so I have to start all over again because it's not necessarily just the opposite – it could be." And so I asked him, why are we doing this? And he said "oh it's because if I wanted to go up in the program with a true condition, I used take [↑] and if I wanted to go down I use drop [↓], so the arrow is pointing in the right direction. But sometimes he had to just negate the Boolean vector to have that effect. And you do you realize how difficult is to translate that condition when you do that? Oh, he hadn't thought about that. It was just a visual clue to himself, what the program was doing.
00:29:46 [GC]
So I mean, yes, you learn a lot about people and the interesting thing is actually, when there was a conference in Denmark, and there was a young guy there from Chalmers University at the Technical University of Gothenburg in Sweden, who had studied old systems, old big administrative systems for the government and he said one of their conclusions was that these systems carried the convictions of their inventors.
And I said, "OK, that's no use to me", because I think a lot of people don't realize that when you program a computer, your opinion, your convictions, your beliefs goes into that program. I mean, it's not like a secret stuff underneath, but it's the way you think about the task, that you were trying to solve by the help of a computer it's obvious from the code, and I mean with APL that's so compact compared to a lot of other stuff, it's very easy to see because you can, I mean, the truth is in the code and it's always been there. but in fact there's a lot of micro decisions you make as a programmer that goes into the programming is not prescribed by anyone, it's just there because you think it's the way it should be, so that's quite interesting.
It was a big revelation to these people that that opinion got into programs, but it does.
00:31:19 [GC]
Then after some years of trying to make ends meet as a consultant, we merged with Adaytum Planning, which was a British company selling a planning application, which was actually a very thin skin on APL. A beautiful application that allowed… It was actually invented In IBM because at some point IBM started to, instead of doing one big budget exercise from central, they started to deploy it out into the departmental heads that they had to do their own budgeting, and one of those there was a guy who just did this planning application, but you could simply take last year's account and you could adjust the outcome and hold some of the things like salaries you can't touch and there was all sorts of thing, income for cost centers obviously didn't make sense, but most places you could also model the income.
And then you could run it backwards and see what you had to do, what the numbers should look like to achieve the required revenue or profit. And then I mean it allows the users to simply build the flow of the company, the economical flows inside a large corporation and experiment with it. It was beautiful and the customers really loved it.
00:32:49 [GC]
So we took it from DOS to Windows. We were actually hired to do client-server but the screen-scrape version of Windows that they were way down the road with wasn't really gonna make it, you had to build a real Windows interface so we had to do that.
But that was sold. We were almost going on NASDAQ, but then the, what is it it is called… "the dot-com bubble" burst and nobody was going anywhere, so it was a trade sale to Cognos instead. So we left the company and then again we were back as consultants and then in 2004, I think, we were approached by two customers of Dyalog, thinking that Peter Donnelly started talking about golfing a bit too much for their taste, so they asked us if we would be willing to head Dyalog in the future, because then they would help us with the management buy-in and so came full circle: started out, with a language vendor, responsible for now, we end back up back here, responsible for the future of APL, after having done both consulting and commercial software with APL.
00:34:12 [GC]
So why is it that we are doing so much building community at Dyalog these days? Well, first of all, it is important for people to know that there are other people doing what you do, with whom you can share experience, whether to support you, when you need it. And today this is pretty much, at least for young people, this is happening online in foras and on the social media, and we try to do as much as we possibly can with the resources we have.
We are not like a big corporation who can put a whole department on doing that, but we have some very enthusiastic people who really burn the candle at both ends and in the middle sometimes too, to be available.
00:34:58 [GC]
So this is one thing, to have feelers out there. We still do maintain our usual, or the annual, user meeting, if there's no COVID around, because we do believe that meeting in person is the fastest way to exchange knowledge and experience and get confidence in people, and the best way to get that good idea that make it worth the whole trip. And it's the fastest route to long-lasting friendships, both professional and personal.
00:35:32 [GC]
In the past, APL training was done on the job you had somebody who was like a lighthouse, knowing about APL, enthusiastic about it, and this attracted a lot of young people, who then was taught APL on the job.
It doesn't seem to happen so much anymore because the management is somehow not observant of the lighthouses that are making business-critical systems. So the day they retire, they very often find themselves without apprentices that can take over that job.
00:36:03 [GC]
And we are quite often, these years, asked whether we know somebody who could maybe do this kind of job. And we do tell them that, I mean, find somebody who knows about the subject matter, and we teach them how to do the programming, because it's not the program that's the problem, you need somebody who understand what needs to be done in your company, and then we can teach them how to do it.
00:36:28 [GC]
But I mean today also it's true that young people look for extracurricular training on the Internet and what we do is trying to make as much material available online and we also have online tutoring at announced points in time, so that if you want to learn APL, you can go to these sessions. And they all recorded, so you can actually listen to them afterwards as well.
00:36:57 [GC]
Now there's lots of people in the world who could use APL to great benefit, but they simply don't know it exists. I mean, like Conor just stumbled across it, and by some miracle and so what we do is we try to make presentations wherever we can, and in those most prestigious places as possible where there's many views. But I mean it's really uphill because with that multitude of information that you can find and on the net I mean why would this one stick out? Unless there's somebody who really it, it's somehow goes viral and I don't know how to make it go viral, but if you do, I mean we can certainly use some help .
So, but I mean at least we have TryAPL where you could try it out. There's stack exchange and there's also our own forum at dyalog.com where you can get help, get inspiration, get advice if you want to know more about it, I think it might be interesting for you.
So that's what I had to say about why we're doing community building and the reasons for it, I mean, the insights I've gathered join all the years with APL. But I mean, this idea is so brilliant that I mean it's just a saying that not more people knows about it.
00:38:23 [CH]
Yeah, I can't agree more and I said it sort of at the beginning that I'm so thankful for all the work that Dyalog APL has done. No, it's not just you know, the TryAPL website, but the APL Wiki that I know Adam and Rich have been heavily involved in setting up. I'm not sure if Dyalog owns that, but I know that a lot of resources have been…
00:38:47 [GC]
Vendor independent!
00:38:49 [CH]
Vendor independent, but yeah like it's a cornucopia of like anyone that's a fan of any language would wish that their language, especially if it dates back to the '60s, has this kind of resource because, you know, I can go back and search very quickly, you know, for like text searches of the titles and find out that, oh, you know Guy Steele, the inventor of scheme has you know he presented a couple different times at Dyalog or APL conferences in the past. And I even actually like, when I discovered that – because Guy Steele, he's someone I look up to, he's obviously a prolific individual in the programming language community – his talk that he gave at one point was what APL can teach the world. And I was like, "Oh my goodness, like why didn't they have YouTube back then?" and like record these, like, I would have died.
But I emailed him – this was, I think, a couple of years ago at this point, just shortly after I had discovered APL – and you know, I sent, it wasn't a long-winded email, but I was just like "I'm super excited about the language. You know, it's really, you know it would be… it'd mean a lot. Do you have like the slides?" And he, I think he's a very busy guy, but he graciously responded like, no text or anything, just the attached slide deck to his talk, but that's all possible because, you know, you can search that stuff up on resources like that. And so yeah, it's all the work that Dyalog gets done in terms of promoting the language you know, furthering the language, folding some of the ideas back from J, you know , Ken's second language into Dyalog APL. It's all just so, so, so awesome. And yeah, I'll pause there and I'll let others ask questions. I have a few but I'm sure they do as well, so but yeah, this it's super interesting to hear the history and I'm so glad that Dyalog has succeeded to the extent that it has. And yeah, we'll work on finding the viral YouTube video or you know, the equivalent of our Coke Mentos thing that we can figure out what that is for APL. And then let the Twitter, Twitter, birdswhatever, take it to the rest of the world.
00:40:55 [GC]
Brilliant!
00:40:57 [BT]
One of the questions I've got Gitte, is, with COVID, you've really had to change, you know there's been a lot of challenges for a lot of different companies, but Dyalog's actually, I think, respond to it really well that you've managed to transition to a lot of online. You've done your most recent gatherings online and they seem to have been really successful. What's what's your feeling about that process? How do you guys see it going for you?
00:41:28 [GC]
Well, first of all I've said income wise, I mean because we sell licenses that are annual, I mean it hasn't meant anything. I mean it's not like… other people have had a disaster with their business. For Dyalog, it's just business as usual on the income side.
On the expense side, we save a lot on cookies. Because nobody is in the office for some time. And it has worked surprisingly well with people working because we've been used to… There's quite a few people in America, there's one in France and there's us in Denmark, and those in England, and so we are used to working with each other remotely.
But there's something, because we usually meet at least twice a year, everybody and do this personal exchange of ideas and knowledge and enthusiasm and stuff. And that's missing because it's sort of starting to crumble the coherence and the the glue of the company are these personal meetings and that has been a problem and this is why I'm a firm believer that we should go back and have our personal user meetings where people are there really, physically. There's lots more participants in the digital ones, the Zoom conferences, and people we would really like to see to our user meetings, but who can't afford it, for one or another reason, so I think we'll sort of turn into a model where we do personal meetings, but also the digital ones so that we can actually meet these people who can't come to the to the personal ones. So, I hope that when we get back to the physical ones that people will continue to come. I think it's great to meet with these people, and not the least share a meal with them, because this is something very fundamentally human that you share a meal and you don't get that on Zoom.
00:43:47 [CH]
I can promise you 100% that I will be at the I had already planned – this might this might shock some of my C++ followers – but I had planned to go to the APL Dyalog conference in Portugal and was planning on trading that for my CppCon conference, which probably would have been on my own vacation time, 'cause I don't think NVIDIA – they're going to be like you're doing what? But yeah, like it's very odd to have like this podcast started in the midst of the pandemic. Every single person that I've met in the array community at large like I've never met in person every it's all been completely virtual, so and I completely agree that…. My sort of like socializing within the tech community. It happens at conferences like, work is work, you're sort of getting your day job done, but like when you get to go to a conference, it's basically like nerding out with people that are just as passionate about, you know, whatever you're passionate about.
00:44:48 [CH]
Or maybe it's even slightly different, but it's people like you said, exchanging ideas. They're excited about something, you're excited about something and without fail you're going to go away with at least, you know one new thing to think about, if not like a handful of them, which, like you said, it, it pays for itself.
And yeah, there's the human aspect of it too, it's just, we're all, you know, slightly living, and at least I'm living in quasi-solitary confinement in my little box up in the sky.
And yeah, I'm very much looking forward to the first in person, you know, pending that you know we're not on the Vega variants, you know, two years from now or something, but like, pending that things go back to normal, I will definitely be there.
00:45:31 [ST]
Gitte, can I ask you, what do you think a healthy, flourishing community looks like when you look at a as a languages community and look at the community of APL users, what do you look for to tell you, this is working?
00:45:46 [GC]
Well, I think, I mean, I always think, back to the way it worked at IP Sharp, where you just wrote away and you had answers trickling in to you almost immediately. I know that there are lots of theories about what should be in a community that it should be rewarding and you should be able to grow in grades and stuff like that, but I've never experienced the APL community like that. I mean, you could walk straight up to Ken Iverson and talk to him, and he would… talk to you as an equal.
And this is what I see very much in APL that that people treat each other with respect and as equals. Even if there's obviously difference in experience and stuff like that. It is very – yeah, now I need to be very careful with my English vocabulary here – but it is a community of equals and I would like to see that.
00:46:53 [GC]
I don't think that any kind of reward systems and star systems or whatever, that you see in many communities on the Internet, is something that would attract APLers. I think they would find it ridiculous, but I can be wrong. I am an old lady; I don't understand the ways of the young people on the Internet, so I have to rely on the young people in the company, which fortunately we have quite a few of.
00:47:25 [ST]
Let me press you on that a little bit.
00:47:27 [GC]
Mhm.
00:47:27 [ST]
I don't know about you, I'm a member of Stack Exchange and as I ask questions and give answers online, which is an important part of my experience on Stack Exchange that I can, as you were just saying, put a question out there and get helpful answers back in useful time. And I do look at the at the scores, the scoring of the people who answer to get an idea of how likely it is, the answer is going to be reliable. So there's some value in that.
00:48:03 [ST]
But what I guess I'd like your view on is the importance in a vital community of personal relationships and I want to distinguish this from in-person because it's not always the same. I can have personal relationships with people that're primarily conducted over video, but it's relating to somebody as a person, a father, a mother, a fellow citizen, a fellow cyclist, whatever it is, in ways that go beyond our professional engagement. I know that I've kind of tipped my hand by holding the Iverson College series of a kind of week-long house parties over the years, which were like conferences with no agenda which was basically predicated on the idea that we need to get together and spend time together, but as I look at building communities now, primarily online over the last two years, I wonder what you think personal relationships play as a role in that.
00:49:09 [GC]
I don't know, I mean, it is possible to create personal relationships online – I mean, I met Morten that way – so, but I think it's really difficult and there's this tendency for people to be, well, disrespectful of each other online because they are not sitting in front of that person, they are not reading that reaction of hurt or pain, when they see the result of their of their message.
00:49:56 [GC]
I think it's very hard to get a personal relationship if it's only via social media, and foras like that. I mean one-to-one communications like emails, yes, it's possible. You get a surprise when you see the person. It's different from what you imagine, but, it is possible to get to know someone quite closely, but I mean it's no surprise that… I mean, way back you have had these, what do you call in England, "friends by letter"?
00:50:31 [CH]
Oh, pen pals.
00:50:33 [GC]
Yeah, pen pals, and so you can do the same thing with email, just, it sort of then circulates much more rapidly, but on social media and foras, I don't think so, but you can maintain the relationship that you created when you met in person, and these personal relationship can help moderate these fora, because you do know that this person is actually a nice person, and even if he or she sounds arrogant, maybe they didn't mean it like that, they were just excited about the topic – wanted to convince you about something and it…
But there's all this culture of being offended these days. It's very difficult, I think not to run into somebody who will be offended by something you said. And then you can suddenly find yourself in a shitstorm and I wouldn't know how to avoid that.
00:51:38 [BT]
I did an online masters degree actually, and they used a format which is actually shown to be really successful and it's called blended and it's actually quite close to what you do with your conferences. 'Tis that every year you got together with your cohort, and you were I think you did three courses in the in the space of two weeks, so it was a bit like a boot camp. It was really intense, but you were working face to face with everybody for that two weeks and then the rest of the year you worked online. Now the big difference I found with that, and the thing I really appreciated is, in those two weeks I learned who was going to be really touchy, who would laugh at something I wrote. All those things, I would have no idea if I'd gone in just with pure Online, I really wouldn't have had an idea. It would have been so easy to misinterpret what I was saying and the big thing for me, was I found I was writing differently, emails or text, back and forth to people depending on who I was writing to. So it wasn't so much I was as concerned about what their reactions were coming back, but even starting it out I was, I was delivering a different message depending on who I knew I was working with. And it made a huge difference. There's no doubt about that.
00:52:52 [GC]
I agree completely.
00:52:53 [CH]
Stephen, were you going to say something before?
00:52:54 [ST]
Yeah, so there's two questions here, and they're very tangled, but one is, "Can you develop and maintain personal relationships online?" – So that's one question.
The other one, which is the one that's I'm actually puzzled about here, is the importance of personal relationships in a language community. And my own experience has been, like, well, I learned so much of the important things I know from actually being with people and Gitte, you were referring a while ago to basically serendipity at conferences. I think it was Lewis Hyde who said "the agile mind is pleased to discover what it was not looking for."
00:53:38 [ST]
You go to a conference. You come back with answers to questions you didn't know you had. New ideas or whatever. They maybe didn't come out of the scheduled work, but from some conversation in a bar where somebody showed me something. And I'm thinking: All this comes out of personal relationships out of being with people spending time. Somehow it seems to me that that's hugely important in a flourishing community, and it relates to the way in which I ask technical questions within the network of people I know.
00:54:15 [ST]
If I've got a very difficult technical question, I might go – yeah, let's get specific here – I might go and ask Michael Hughes, one of the smartest people I know. And I do that on the basis of our actual friendship, trespassing upon his hugely valuable time, and confident that it doesn't matter if I'm exposing woeful ignorance on my part about something that I might be expected to know about. Now, I contrast that with how I imagine putting or not putting the same question out onto an online forum.
00:54:58 [GC]
Yeah, I think that's very true. I mean, the grading mechanisms that are in these forums are somewhat compensating for that personal knowledge, and I mean hopefully, well, in the past, we knew pretty much everybody in the APL community, I mean, at least representatives from all the spots where APL was heavily used. In the future, hopefully that's not true any longer, so we'll have to start knowing how to build these relationship and spotting the really competent people within each technical area. But my God, it's so much easier, if you could just meet people and vet them and build that trust, I think it's the basic word here: Trusting each other.
00:55:51 [GC]
And I mean I've always experienced the APL community as a very, trusting open, and accommodating community. I mean, I've never been snubbed off at any point in my life, even as a pure rookie. When I asked questions they bent over backward to help me, even if it was hopelessly helpless, the questions I asked.
00:56:16 [GC]
Oh, and I still remember I had some statistical problems and there was this guy at IP Sharp who was a real statistician, so he helped me no end and I went to meet Ken Chakahwata at the London office, and I was a little bit stunned by this 2 meter tall guy who… I had expected an elderly gentleman with glasses, sitting at a desk, but no, here was this athletic guy. So, we went out and had a beer and I now had a different picture in my head, but my emotions and trusting this person was still the same, and that trust was built on the net via email, so that why I'm maintaining via email one to one communications, it's possible online. But I don't think in foras – I would be very cautious and even because if you answer one person in a forum, the other guys that waited will respond and react quite differently to these questions and the way you answer them.
Yeah, it's tough. Richard, are you going to say something?
00:57:24 [RP]
I think I was thinking about my experience of this kind of online space. And in particular, I have a couple of new colleagues at work who I haven't actually met in person at all yet. And so, you know, we have that kind of, it's very slow-growing connection there, but with one in particular, Rodrigo, I've been working on a particular project closely for quite a while now, and over that period of time I felt like we've managed to develop something more of a personal relationship that's really helped me get to know him well and stuff.
00:58:02 [RP]
But then I also look on the screen here and I see like, my example is Conor because although we've done this like several times, somehow to me it's like you're a famous YouTuber that I get to hang out with on a smaller basis occasionally. 'Cause that's how I kind of had my first experience with you. Was "oh man, this dude has done these cool YouTube videos comparing languages and he's talking about APL and actually getting APL into these other places. We should go cling to this dude, reach out to him.
00:58:35 [CH]
Famous is a very, very relative word there. Amongst people that make You Tube videos that compare 10 languages or more, you know OK, sure. In some very small pond, I'm a big fish. In the greater scheme of things, uh…
00:58:51 [RP]
Yeah, absolutely, but it's like you know, what are these things called? "Para-social relationships" is the sort of new word that's come out over sort of famous YouTubers and stuff, where you have a series of fans and the fans, because they have such a… they get to experience you a lot, even if you have no idea who that person is so they feel like they know you to some degree, but sometimes that leaks out into some pretty horrendous incidences, but I don't think that would… I haven't heard of that happening in programming communities, but in terms of online personal interactions, I know that's a risk.
But it's kind of interesting, having a very… Feeling like I'm having a very small sliver of something like that here, until I do get to meet, I'd say Bob and Conor in person
00:59:43 [CH]
Yeah, I think it always depends too on like for this, it's sort of, you know, we're all doing this on our, you know, free time for fun. It's like we all want to do this, whereas for work like it's a lot less social, a lot of the times, like you know, here we get to laugh, we get to go on tangents, we get to, you know, talk about what we're excited about. Whereas definitely, yeah, I started a new job a couple months before the pandemic and I've only met four or five of my coworkers and like I'm dying to like meet people in person 'cause you def… yeah, it's… I completely agree with Gitte that, sometimes it's just, it requires you know either – whether it's an alcoholic beverage or a non-alcoholic beverage or a meal or something – you know you get to know those people better. And also something you said to Gitte is that a lot of… sometimes things that get said online would never be uttered when you're sitting across the table from someone. Like I had an interaction, you know – for the most part apl.chat, the APL Orchard, has been amazing, but one time I had a fairly negative experience. I won't, you know, reiterate it, but it was just someone that was sort of saying negative things aAbout C++ and I was just like, I know that if I don't know who the person is, 'cause they go by a handle, but like, if I was sitting across the table, like you'd never be, you know, if someone's excited about a language you'd never be saying, you know, "insert language – I think this language sucks and it's terrible and blah blah blah" like, what? If you're in person, that's just going to lead to this really awkward interaction that, like, oh now someone sort of feels like they're…
01:01:21 [CH]
Don't get me wrong: There are bad actors that have no qualms with making people feel uncomfortable, but for the most part, I think that there's a lot of folks that they, when it's not like face-to-face and you're looking at the person, they'll feel more comfortable saying not necessarily unkind, but just sort of like more bristly things. And it's yeah, like when, at least in my experience at conferences, it's just I've always just had super lovely…
And don't get me wrong: I know there are people that have had negative experiences at conferences, but I think for the most part, when you're meeting people it's just, you know, everyone is just super nice, even if in the back of your head you are thinking "oh, C++, I don't like compiled languages". Like you're not going to tell that to my… or maybe you will – I'm not sure, but there is something too, like I think meeting in person. And yeah, you build trust, you learn the idiosyncrasies about, you know, people's personalities and yeah, it's… I won't want to go to like a version of the world where everything is virtual. I think that would be very.
01:02:26 [GC]
No, that'd be horrible.
01:02:28 [CH]
Like they made they made that movie, right? Or was it a book? Ready Player 1, isn't that the whole point? You know, virtual is great, but the real world's still pretty great as well. Go for a walk you know, hold someone's hand.
01:02:40 [GC]
Yeah, and how do you make babies online?
01:02:47 [CH]
I mean…
01:02:48 [GC]
Sorry about that, you'll have to cut that block.
01:02:50 [CH]
Cut that out‽ I was thinking: Put that at the front of the episode!
01:02:56 [BT]
That may show up at the front of the episode, yes.
So, at this point, with the with the old, I think it's a phrase from China, make them… "Every crisis is an opportunity" or something like that. We're – like, the crisis is COVID – we've been pushed into an online. It seems to have widened the community, but again, as you mentioned Gitte, the core of APL and J as well, I know the same thing: People are very close together, although I've only been to one J conference, I'm closer to those people than I am to other people that I've subsequently met online.
How do we, at some point when we get back to being able to get together, it will be a bit of a challenge to have a community that continues on with that personal part. Maybe it'll just happen organically, but the personal part from starting from this wider base that may not understand that, what do you think about how you're going to incorporate back into the personal space? Or have you guys thought about that, yet?
01:04:07 [GC]
Yeah, well, I mean, I think we definitely are going to go forward with our user meetings, but that is too costly for many of the young people who joined the community and maybe would do a backpack thing to a cheap place where they did their own food and stuff, and I know there has been attempts at doing that from the British APL Association.
We've had some – what did we call them? – "APL Moots"?
01:04:37 [ST]
Moots, moots!
01:04:39 [GC]
Yeah, yeah, we did it in a barn close to Stanstead, once. But it didn't attract very many new people that wasn't coming to the other events too, so I don't know, but I think… There might be an opportunity to do some youth camps or some cheap ways of being together and enjoying. Seeing presentations of people who are excited about what they're doing and how they use the stuff, and maybe do courses or golf – APL golfing – or challenges on implementing stuff using it. And I mean it could be fun, but I don't know how you would get the audience for one of these, because obviously we want to attract new people and it means that every APLer will have to come up with at least two young people.
01:05:39 [BT]
Well, I hadn't thought about that, but you're right, but I'm thinking because of what's happened online, you may be starting with a wider audience to begin with.
01:05:47 [GC]
Yeah.
01:05:47 [BT]
You may already have that wider audience, and that might be a really good way to bring that audience in gradually, because otherwise, as you say, the more expensive conference, you might have to travel further and costs involved with all those things you may be "people, I'm into it, but not into it that much", whereas this as a less expensive option… Or the other thing, actually, and you were mentioning, I guess, to some extent competitions. We haven't talked about the competition that Dyalog runs every year for people, you know, programming. And I think that's been a huge thing in developing the base.
01:06:23 [GC]
Yeah, I, I think so too. I would wish it had a wider participation. I mean we can see, there's a very small viral element to it because you can see from year to year that suddenly one country has a lot of participants and what happened there? And there's no telling how, so suddenly there's 10 participants from Nigeria. I mean how did they get to know about it, where did they find out, and how did it spread?
I mean, so there's a lot of research we could probably do by… and now we usually invite the winners to the physical conference. And so, we usually chat to them and ask them questions about this, that and the other thing. And they're always very accommodating with nice things to say about APL, but we should do more to find out how they got interested, and… But I mean many of the participants, I have to say, are "language eaters". It's the people who take a new computer language every week and so they find this one, and "oh, that's interesting – I'll do a competition". And I mean, I haven't seen anybody win the first year they participated. Usually, it's the 2nd or the 3rd year that they participate that they do the grand prize.
So, it's like when they first got interested they actually stay on and try again and again. So it's yeah, I think the only one who actually won the first time was Joel, the guy with the hat. I don't know if you've been back in olden times, and seeing the videos but he was really funny. We had just done the language bar by then, sort of all the glyphs at the top of the screen and he said, "well, there was these problems" and he just hovered over the different glyphs and so if there was one of them that could be used to solve this problem. He was so funny. And he had a bowler hat and which was also endearing. But he was an IT supporter, just very, very smart and so one of his friends said, "you know, Joel, you should do this. I can refer you, and I can also win money."
So, I mean, that's one of the things that we use as a marketing thing. If you refer somebody to the contest that you win the same amount of money as the contestant does. So we'd hope that more APLers would find suitable candidates. But I mean, there is quite a few participants, but there is lot less than there could be if everybody got together and started sending young people that way. They are all saying that it's that it's very enlightening to them to discover this language and how it helps you thinking, when they're done with the competition, and even those who didn't win any of the big prizes are amazed at what can be achieved. It should be more widely available to everybody.
01:09:52 [RP]
As someone who has to judge those entries to a deadline I say "we have enough".
01:10:01 [CH]
Alright, I think that's a pretty good place to start to wrap up. Yeah, we should… I completely agree, you know, with everything you said it's… I started at C++, slowly moved to functional programming in Haskell, and that blew my mind, and then moved to APL and that blew my mind twice as much as Haskell blew my mind initially, and it continues to on a day-by-day, week-by-week basis… Yeah, there will be many talks in the future that I give about APL and "notation is a tool of thought" and even if it's just for the sole purpose of like learning to think the APL way, like, in my opinion it's well worth the time and energy to learn it, but, yeah, if you go that far, why not actually just start using it as well if you can?
01:10:55 [GC]
Yeah, like that, but that's also the way of thinking is actually quite productive, even if you're using other programming languages, because you start programming in a different way.
01:11:05 [CH]
Yeah.
01:11:06 [GC]
And once you think of data the way you do with APL. So, it might actually, I mean… Just for the inspiration, even if you have to do it in another language, it might be well worth studying.
01:11:19 [CH]
Yeah, I completely agree. Yeah, maybe one last thing we can end on is I'll plug a new YouTuber that has entered the scene. His name is Asher Mancinelli and he started doing videos in BQN, Marshall's language.
01:11:35 [GC]
Oh, right.
01:11:35 [CH]
And then showing, CUDA C++ solutions that run on the GPU and it's fascinating how closely some of the ideas from APL can map to, sort of array programming on the GPU because they're very similar models. So yeah, we'll leave a link in the description to that, and I was just chatting with him last night and I said, "oh like, how did you find out about BQN/you know, the array paradigm?" and he said, "oh, you know I have some coworkers that used to program in APL back in the day." But he said "also, you know, I was largely inspired by this podcast," so hopefully, you know, this podcast is that's going to cause this chain reaction of you know people making more content and blogs and stuff and then other people seeing that content and before you know it, we'll have we'll have a rival APL conference, you know, set up in the in America or something. That's the dream.
01:12:32 [GC]
Most welcome.
01:12:35 [CH]
Alright, any last questions from Bob, Stephen or Rich, or…?
01:12:39 [BT]
More just a comment: I agree with you about the videos coming on. Asher's video, I watched this morning. I saw you made a comment on it. One thing I'm really impressed with is the quality. He's jumped his quality in like four videos has…
01:12:54 [CH]
Yeah, yeah in like two videos he went from just screen capturing his screen to polished transitions and beautiful sounding audio. It was…
01:13:03 [BT]
The one I saw this morning, I just went "holy smokes!" Like I mean, I worked at that for a number of years and that's kind of what I got to, but wow, I mean, he's just… Like it's really impressive to see that, and also just the volume. There's a number of different people have started to do more videos, and I think it's, to be honest, with a lot of the array languages, we're kind of in the long tail. We're not in the bulk of everything or what's trending, but that long tail is getting a bit thicker and that's really good to see. I think it's going in the right direction.
01:13:35 [GC]
Yep.
01:13:36 [CH]
Yeah, I completely agree.
Alright with that, we'll thank you so much for spending your valuable time with us, Gitte. This was awesome to hear about the history before Dyalog APL, and then after Dyalog APL. And once again thank you for all the work that not just you, but your company and your employees have poured into not just APL, but the array language paradigm in general. It's led to many people, including myself, discovering this and falling in love with the language. So we owe you a great debt and, yeah.
01:14:08 [GC]
Yeah, you're most welcome in both senses.
01:14:14 [CH]
All right, and we looked to having you back on to hear about the IBM vendetta – part 2 of this podcast.
01:14:20 [GC]
OK.
01:14:23 [CH]
All right, with that, we'll say happy array programming.
01:14:26 [all]
Happy array programming!
01:14:29 [MUSIC THEME]