Serge Pilko is talking to Alister Christie about Delphi & a Delphi developer’s professional journey
In this article Softacom’s CEO and Embarcadero MVP Serge Pilko is taking an interview with Alister Christie, Delphi developer, Embarcadero MVP, tutor and speaker whose youtube channel is one of the leading places where developers can learn Delphi programming.
Read this interview to know more about Alister’s professional journey from a Delphi developer to Embarcadero most valuable professional (MVP), his youtube channel, books and more.
Career Beginnings With Delphi
SERGE: Today I have a guest, Alister Christie. I think you know this guy, because if you are a Delphi developer, for sure you saw his short and very useful videos about Delphi development.
Just a couple of words about today’s… let’s say event. In this media we are talking to Alister, as I already said a developer and Embarcadero MVP. Let’s say that today it will be an MVP-to-MVP talk. And of course, Allister is Embarcadero MVP, tutor and speaker on different events about Delphi. And of course he has his famous YouTube channel. I think it’s one of the leading places where developers can watch and get different useful information for them. And of course, learn Delphi programming and development. In this video we are not going to discuss deep tech stuff because we don’t have the time and this is not the goal of this video. In this video we’ll discuss our and Allister’s professional way and where he’s getting his passion, how he’s creating his videos. How is it? Because I think it’s very interesting for our audience. Is it okay for you Allister?
ALISTER: Absolutely, yeah.
SERGE: So in this case, my first question to you before we start our plan is “how do you think, where is Delphi today? What do you think? What’s the future? What’s the current status, and do you have any thoughts about this?
ALISTER: I think things are looking pretty good for Delphi at the moment. I was a bit worried initially when Idera first acquired Embarcadero, they seem to make some pretty fast decisions on, you know, what staff they wanted to keep and that kind of stuff. And what have you. But I think they’ve kind of realized that Delphi’s pretty good and are putting investment in R and D and all that kind of stuff into it now, which is, is that all very positive? So I think, yeah, in terms of the health of Delphi it’s pretty good. Yeah, a few people have problems….
SERGE: You felt this moment when Idera acquired Embarcadero, because yes, it was a long way from Borland to inspire what was next…
ALISTER: Yes, yeah, Delphi was languishing a bit with Borland. They weren’t providing enough resources for, you know, for R and D to go ahead and you got releases like Delphi 8, which was poor, no one used it. Delphi 2005 was better, but it still was bad. And then of course the spin-out into Codegear…
SERGE: Delphi’s still for desktop, or because they tried to go to web of course, to Backoffice, but again like web solutions and of course to mobile and cross-platform development?
ALISTER: Yeah. I don’t think Delphi is really a very good choice for doing web development directly, certainly doing… if you want to do REST services and things like that, it does that pretty well. It goes mobile, it does very well. Now having the, you know, write once and run on Windows, Linux, Mac, iOS, and Android, there’s a huge, huge advantage over most, most platforms, which is, you know, you end up writing different applications, there’s this not going to share too much between them. And weird situations I’ve heard of, Android teams and iOS teams and they end up competing with each other and not cooperating on the same project effectively.
But with Delphi it’s all one project and you can share pretty much all the code. The downside is that with Embarcadero marketing, they say it’s native, but technically it’s native CPU wise, not development wise. So it’s not, in some ways it’s not a first class citizen of any… FireMonkey’s works well enough that for its few shortcomings, the advantage of working across platforms is enormous, and a single developer can achieve what a team of five people or 10 people do.
So if you’re doing… the standard, you have whatever you’re doing for iOS and Android Studio, and then Visual Studio if you’re doing a Windows version, all these skills, you have to be a brilliant person to be able to master all these IDEs, or you have a team of people working on each of these projects rather than just a single project.
I think in that respect Delphi’s pretty good. I’ve done a little bit of FireMonkey development, a bit of Android stuff, but certainly not, probably not enough to give a really strong opinion on how easy it is to do the cross-platform development, but certainly being able to develop on Windows and then run it on Android… Building for Android, this is a painful process and you end up… it might take a couple of minutes to build a project, whereas it takes two seconds to compile 15,000 lines of code for a Win32 app. And so I think that the development cycle makes a big difference in productivity. The ability to test things so quickly.
SERGE: We do have commercial experience with cross platform development in Delphi.
ALISTER: Yeah, I’ve done some Android work with Delphi, a small real estate application, which
SERGE: Only Android, or iOS also?
ALISTER: I didn’t do the iOS version. We really only did the Android one. I’ve done some other bits and pieces. I did a little application that you could use to send mass calls to an Android device, send text messages or make phone calls so that you could use your phone and do mass mailing of text messages and things like that through a phone, and it kind of had the advantage that when someone responded you’d get all history there as well. So it’s all on the phone. And that was sort of a real estate type application. You’d use that to remind people of the auction or if it’s closing or anything.
SERGE: That’s great. And we are glad that we started from such positive words. What I said, propose to go back to basics. I think our audience will be interested because when Delphi developers start discussing something they start with “when did you start using Delphi, what’s what, why you did, why did you start?” What is your story?
ALISTER: You know, I have a degree in mathematics and computer science from a university here in New Zealand. I live in New Zealand.
SERGE: When was it? Are you checking your diplomas? (laughter)
ALISTER: I graduated in 1998 with a degree in mathematics and computer science.
SERGE: But I think it was Delphi 3 or 5…
ALISTER: Yeah, that’d be 3. That’d be 3 that was the first vision Delphia I used. But prior to that, I used Turbo Pascal 5.5 on an 8Mhz 286. Going back, might’ve been a 60 megabit machine at that stage. I can’t remember. It’s quite a long time ago. And yeah at university I would use Pascal on these horrible Macs and Mac Minis that were… in the first year. That was interesting.
SERGE: What was your first application? It wasn’t like a calculator or text editor or…
ALISTER: The first thing was little games and things like that. Built a game with some friends, just random things. Nothing, nothing very sophisticated.
SERGE: I started from drawing the clock, like calculating the position of the arrows and numbers and so on. But of course, calculator and text editor, for sure. But I remember, I remember Delphi had like demo project text editors. I remember. And we just got it and somehow improved it. It was also at my university.
ALISTER: Yeah. My mind, my first, first learning of programming, really. I’d done some kind of Basic and copied the machine code out of a PC magazine to do little applications and then stuff like that for DOS. But yeah. But we didn’t really learn how to program properly until university.
SERGE: At university you made the decision to be a software developer, or it was like 50-50? Maybe you planned to go to another domain. And then a specialization.
ALISTER: I wasn’t sure. I did a lot of mathematics, so there was the possibility of me becoming a mathematician, but I think I was too lazy for that.
SERGE: But mathematics, in which area? Statistics, or something like…
ALISTER: Discrete mathematics. I started doing postgraduate studies, an honors degree, and it’s papers and number theory and graph theory and some discrete math type things, which is really good. I quite enjoyed that. But I’ve never used any of that mathematics.
SERGE: Of course. Mathematicians can use their knowledge right now only in different artificial intelligence tasks in this case. Anyway, when they’re developing all these frameworks, because, you know, I am a developer who can just take an existing framework and, and I don’t know what’s under the hood, how it works at all. But how to build this library of framework, it’s like I should go on a mathematical task. It’s impossible to develop such tasks without this education from universities.
ALISTER: Yeah. Some of those AI-type things you do need quite advanced mathematical frameworks and knowledge, and neural networks, well beyond me. I did a video recently, my last video on Deepstack, which is a platform where you just download it and it’s in image recognition. So that’s facial recognition. Also, I use it in conjunction with security cameras I’ve got around the house, to recognize something as a person or a car. But, you know, my first application where you have a little text application, gets a number between one and 10 kinds of things. And these days people are, you know, their first test applications are image recognition stuff. It’s always these huge libraries that they can take advantage of, that they just link up with an image to some web service and get back. Yeah. What’s in it, you know, theme recognition, you know, it’s a beach or it’s a picture of a house or whatever.
SERGE: Do you believe in Singularity, when we will have a situation when we forget the basics… because we will know how to use all these cloud services, but how are they built, these services…?
ALISTER: Yeah, what happens if civilization gets reset, is kind of the analogy there, you know, if you went back 200 years, would you be able to survive? And in my case, probably not. I mean, I’ve got more knowledge about farming and stuff like that than most people, because I live in a lifestyle block, which is like a small farm. These days, it’s hard to cope without having a cell phone on you all the time to be able to look up basic facts and figures. How to get somewhere, Google navigation and things like that. So I think with sufficient training, I could go back and write machine code or, you know, write stuff in binary and understand how to build basic programs, but I don’t think I’d do it very well.
SERGE: Do you remember, how did you jump from the university to your first working place? Did your teacher suggest to you some position? How did it happen?
ALISTER: So basically the holiday work I was working on, I was needed for… just helping out with stuff at this place and I had to develop real estate software. And eventually I started working on a project.
SERGE: At which time, what project was it? Was it with Delphi? In 1998?
ALISTER: It was written in Delphi. It was in 1988, I think, in 1999. It would have been ‘98, possibly ‘97. Going back, so it was Delphi 3. I think Delphi 3 was reasonably new at that stage, whenever that was, and this real estate application, I’m still working on from time to time, it’s now Delphi 11.
SERGE: Again, classical office application, desktop office application, where some clerks can perform some operations for real estate objects, like apartments, or reports and so on?
ALISTER: Yeah doing some sort of content, you know, customer relationship management and doing all the back office stuff, accounting and, and making sure people like the salespeople get paid the appropriate amounts and that kind of thing.
SERGE: I remember it was such a revolution with Delphi because did you try, do you remember Visual Studio? 6.0 or 6.1 when it was so complicated to create some UI, some application with rich UI? This is why Delphi was…
ALISTER: Yeah. That’s before my time. I do remember buying a book on Win32 programming and just to get a window on the screen you had to write like pages of code to write “hello world”, whereas with Delphi, that was basically one line of code you needed to write, versus drag and drop.
It wasn’t really out of the revolution at the university that Delphi came out, I think. I had a friend who worked with it, and he was doing stuff for us. And I remember the term for him tables weren’t fast enough to write his own B-tree permutation, but that would have been on 486s back in the day, and the power of computers has gotten quite a lot better since then.
SERGE: I think it starts like okay, let’s start at this commercial development. But did you drop this year? Because I… if you’re a PhD you have a scientific life, I guess, did you drop that year? Or can you work in parallel?
ALISTER: No, I pretty much gave up on the academic side of things.
SERGE: You have this trait, I think, because you can see that you have this mission, your personal mission, like the educational part, because maybe you’ll fail. Because I have something like… I feel I have to somehow share my knowledge with everybody. You started commercial development, but you also have in the head some ideas about the educational parts… What was the goal you wanted to…?
ALISTER: How that came about is, I think we got a very old version of Camtasia. I think I had Invision 2 or something like that for doing training videos for the real estate software. And I used that to make some, you know, Delphi training videos back in probably 2006. It was with Delphi 2006. So it was way back then. So it’s just kind of going back. And just before this meeting through some of my early posts, the first ones were in 2007, but I think they might have actually… YouTube didn’t really exist when I started making videos…
SERGE: Where did you publish then?
ALISTER: Google video. It’s gone, it’s been wrapped into YouTube.
SERGE: I remember Google acquired YouTube, but yes, you started your channel in 2007 using Delphi 2006?
ALISTER: Yes. So there’s free uploaded… quite a lot of videos.
SERGE: And you were like a pioneer, I guess. Or did you have any competitors?
ALISTER: I don’t think there was anyone else doing Delphi videos at that stage.
SERGE: You know, right now it’s easy to have, like, we have a phone and you can write everything you want. You can write a lot of applications right on your desktop, but not in 2007 of course.
ALISTER: Yeah. And yeah, uploading these videos… and YouTube at that time only supported 320 by 240 resolution and five minutes was the maximum length you were allowed. So there’s a couple of early videos or an early video that I had to split into two because of that. There’s some comments on the quality of the video. Well, that was the best that could be done when they were made. I think YouTube, sorry, the Google video supported high resolution, but I’m not sure, I think I hosted… Oiginally I hosted videos myself on… well it was at the time Codegigury.com, which is now, now, now is LearnDelphi.tv. Those first videos originally were played with a Flash player, which is now… Those probably wouldn’t work at all in any modern browsers. I don’t think Flash is supported…
SERGE: Yeah because of security. That’s very interesting. As I understand it, you started posting this content in 2007. Who owned Delphi, it was not a…
ALISTER: Borland. That was Borland at the time, that spun out into Codegear, made Delphi into a sort of separate entity, owned by Boland, but operated semi-independently because they wanted to sell it. And that was for a few years before Embarcadero acquired it next.
SERGE: Alister, did you have the MVP program in 2007?
SERGE: In which year it became… the Embarcadero MVP?
ALISTER: I’m not sure about the MVP… I was one of the first when originally the MVP program started. So I was originally the only one in New Zealand, but now I think there’s a few in Australasia, but now there’s quite a few in New Zealand and Australia now. It’s gotten a bit bigger and it’s more organized now, Jim McKeeth is doing a really fantastic job of running the MVP program and he’s now got a bit of help as well.
SERGE: It means that Jim mcKeeth started and introduced this program. Am I correct?
ALISTER: He might’ve, you’d probably have to ask him.
SERGE: Yeah, I really can, but we had an Internet connection problem. I don’t know. Maybe on my side. I didn’t get your answer about which year you became an Embarcadero MVP, do you remember?
ALISTER: I’m not sure when it was, it was when it started. I was one of the first.
SERGE: Who initiated the moment? Did you send a request or Jim suggested it to you?
ALISTER: I think it was Jim McKeeth.
SERGE: That’s great. You’re like you were like a founder, let’s say. It’s very interesting.
Farms And Books
SERGE: For me, because I am also creating some content for me, it’s interesting. Where are you getting your ideas for your videos nowadays? Because…
ALISTER: Sometimes it’s just, you know, I’ll stumble across something that’s interesting. So now we might make a video on it. Other times, you know.. sometimes YouTube comments, a source of video content.
ALISTER: Or maybe someone else’s blog, post an idea for something.
SERGE: Do you have any personal messages from people? For example, you posted some video, then they are trying to reach you somehow. I don’t know.
ALISTER: Yeah. I get, you know, a fair number of comments, Youtube comments, and occasionally I’ll get messaged. Quite often, LinkedIn is often the best way to get in touch with me. I’m Allister Christy on that.
SERGE: Are you answering their questions? Because for example, sometimes we are posting something about Delphi and FireMonkey, and we have a lot of haters for Delphi, saying “stop, you’re providing wrong ideas, it’s dead, stop, you’re a liar. I’m just ignoring such kinds of comments.
ALISTER: I tend to get much negative. I often get comments that I talk too fast, which I definitely do, and I can’t help it. This is just my normal talking speed. I try to slow down a little bit for recording videos, but it can be hard to concentrate on so many different things when recording. Yeah, that one gets lost, I just end up talking fast, but yeah. ideas.
Yeah. Like the Deepstack one that was just, you know, I saw that Blue Iris, which is a security software I used was using it for object detection for providing alerts. And I thought “that obviously has an API. I wonder if you can access it in Delphi”, and of course, you know, has a REST…, so it was pretty trivial to work it out.
SERGE: Your format, like short videos, you think this is the best way for getting information or it’s more convenient for you? For example, for me, it’s not easy to find and prepare a huge video to deeply explain some subject. What about you? Because for you it’s easy, or you think it’s useful for the people, because they want long videos, because…?
ALISTER: Yeah, I, most, most of my videos are short. I mean, I’ve had to do DelphiCon, Coderage and that kind of stuff, and they took about an hour, 45 minutes to an hour, maybe half an hour. And usually, to produce an hour of video usually requires about eight hours of work to get that sorted. So, you know, just imagine, I mean I tend to watch through and edit it. So you’re watching, watching that in real time. And then I might do that a couple or three times, editing, and then also watch the finished product, but I’ll watch that double speed just to make sure there’s nothing majorly wrong with it. So yeah. So producing long videos is quite hard work. I’ve got some commercial content on which you can access on learndelphi.tv I think. But 36 hours or something of video, there’s quite a lot on the VCL and client datasets and some of the generics, and I’ve got one on zip compression in Delphi, which I’ve never gotten round to finishing, but I added a bit to it recently, but in Delphi we’ve now got 64 bit support, so you can do files bigger than four gigabytes, which is nice.
I still don’t have support for encryption, which would be good. But I think that would be my last, the last thing I really need in terms of support in Delphi, but yeah… So in terms of long content, if you want to, you know, they can get it back at Embarcadero Academy and get my mega pack, which is, you know, all my commercial videos, which I think is about 36 hours of content, which is, you know, a complete work week of watching, effectively. So it’s a lot of…
SERGE: How does, let’s say, how long does it take for, for you from ideation to publication? How much time, for example, for the whole process for one video, like one day, one week or…
ALISTER: In terms of uploading to YouTube, I can sometimes just, you know, record a video for the first time, and then do a little bit of editing and upload it. So the whole thing might need to take, you know, two hours just to get the video out.
SERGE: You have the inside motivation just too quickly… because you have everything ready. You have the, I don’t know, what do you need? Like a computer.
ALISTER: Yeah. Everything’s set up with cam and I’ve got a bright light up on the side and another white up here, which is off at the moment. And so just, you know, turn it on and start recording. So it’s usually…
SERGE: Are you working from home? Am I correct?
ALISTER: Yes, yes.
SERGE: That’s why you need silence.
ALISTER: Yeah. So I use a product called RTX Voice because it’s free actually, if you’ve got the video GTX card, it will filter out anything that’s not voice. So any other, you know, the dogs barking and even noises in the distance, chainsaws and kind of stuff gets filled out pretty effectively, and keyboard typing and all that kind of thing. So yeah, even clapping, you probably can’t hear that at all. So that gives me some, you know, a bit more of a studio sound feel without actually having to be in a studio. And you know we have lifestyle blocks. There’s a rooster and you know, you should hear crowing, dog barking and cows mooing and that kind of thing. So the country’s not a quiet place. They’re actually the cows are not at home d at the moment. We ran out of grass. So they’re living on another farm for now.
SERGE: But you, you know, is this like a dream of any developer, like work at home and just go outside and you’re in nature, mountains, fields, cows…
ALISTER: Yeah. I mean, it’s pretty cool, but it does take up a lot of time as well. So there’s… if you’re wanting to spend lots of time programming, you know, if you’ve got cows they need attention. They need feeding. And…
SERGE: But I think you are not the only one guy who is managing all these cows I guess…
ALISTER: So yeah, there’s pluses and minuses. There’s a lot of responsibility living in the country.
SERGE: But you know, it’s not like we haven’t heard about New Zealand, like huge green fields, mountains far away and rabbits, of course the rabbits.
ALISTER: We’ve got a problem with rabbits at the moment. We’ve got an air rifle, but the range on it is not sufficient. And I need to get my firearms license so I can get a proper .22 to deal with the rabbits, get the population down a little bit, and have some rabbit stew.
SERGE: Great. If you’re talking about the videos, do you have a plan for the future? Like putting some ideas to some list and you have the winners?
ALISTER: I do have a list and currently I am just finishing off my next book. So that’s, you know, whenever I’m working…
SERGE: Later we will discuss this.
ALISTER: We’ll discuss that later. So the videos have taken a bit of a backseat. I still use one or two occasionally…
SERGE: For the next year, 2022 assignments, do you feel some trend and have videos about this trend? I don’t know about AI, it was blockchain before if you remember. Do you have such a plan?
ALISTER: I have no plans in that regard for the YouTube content. Anyway, I do need to convert my first book into videos. And that’s…
SERGE: It’s like chapter by chapter?
ALISTER: I’ll do it. I’ll probably be a lot less formal about the content and get a little bit more, more on tangents and things like that, because I think that’s far easier to do on video. And I won’t necessarily be strictly going by the book, so to speak. I’ll try to include everything in the book and a whole lot more.
You know, one line of text in the book might be a couple of minutes of video. So, there might be large sections of the book that I might skip over, you know, condense down into shorter content.
SERGE: Alister, honestly, is it a commercial story?
ALISTER: Sorry, yeah, it’ll be a commercial video, it’ll be one for sale, Code Faster in Delphi,
SERGE: It’s not a secret, and I know it’s not, we are not talking about the money, but if you’re talking about…, you have development and you have like this educational part right now. What is more important? Where, where did you get your… Where is your business? Education or development?
ALISTER: [inaudible] … and also some investment properties. So that’s kind of where most of my income comes from that aspect. So at the moment, I’m not really working as a programmer, but I’m still tinkering. And of course, my book’s finished, second book is finished. What I’m going to be focused on this year is getting my next book published. I will probably make a bunch of videos and then get the video content for Delphi completed.
SERGE: You have a farm, it’s like right now I guess development is plan B because the farm is plan A, correct?
ALISTER: The farm is not profitable, it’s just a hobby farm. A big hole to plow our money into, but it does allow us to do some things like grow our meat and some vegetables and fruit. Because it’s the middle of summer here in New Zealand at the moment. So I’ve made a sort of first batch of plum wine from plums down from our driveway with trees down there. And there’ll be some other plums ripening up shortly. So I’ll be doing that. And then I’ve got lots of fruit, raspberries and blackcurrants and that kind of thing, straight off the trees.
SERGE: Ah, okay. Because you mentioned the books a couple of times, I think we have to expand on this subject. Of course your first book was Code Faster in Delphi, correct? How popular was it, how many copies did you sell?
ALISTER: Sold? I think about 500.
SERGE: Was it the paperback version, or was it…?
ALISTER: It’s available in electronic and paper. So I’ve sold about 300 eBooks through Lean Pub and around 200 through Amazon. I’m holding it up in front of me… It took… I was writing it part time, so I’m not quite sure how much effort went into it. I think I’ve earned more than minimum wage in terms of book sales. And I think it’s done reasonably well, as far as the Delphi book is concerned and I’m still selling copies.
SERGE: Code Faster in Delphi. What’s the target version in this book?
ALISTER: It was mostly developed with I think 13.3 and 10.4. Most of it I updated so that it was 10.4 and cause we had Delphi 11 since. And so it does have mostly up to date stuff in it. And of course there’s a bunch of exciting new things in Delphi 11, managed records and what not, that are quite cool. It’s all focused on being faster, being a faster programmer. So there’s a lot of discussion about how to use the IDE in a more efficient manner and taking advantage of keyboard shortcuts, and even touch typing. You know, if you’re doing the hunt-and-peck, you’re not a developer, you’re a chicken, So you really need to be using all your fingers and looking at the screen, not the keyboard when you’re typing. You’re very limited as to how fast you can type, and I’m not a particularly fast touch typist, you know, I’m at around 70 words a minute, which is respectable. I mean, I think the average is about 30, 35 or something like that for the average typist. There are people who can do a hundred or 150 even. And I think the world record is around the 220 words a minute mark.
SERGE: Let’s compare the new book with the previous one. What is the main difference? I think it’s not just more information based on the previous one, or maybe it’s another subject or… What’s the difference? Can you provide such information…?
ALISTER: The new book?
SERGE: Yes, the new book.
ALISTER: The new book is Code Better in Delphi. And Code Faster is all about productivity, what tools you can use, plugins to the IDE and libraries you should be using, take advantage of generics and anonymous methods and anonymous threads and all that kind of stuff. Code Better in Delphi is all about writing better code. So, you want to write code that is cleaner, more easily maintained. So if you look at the life cycle of code…
SERGE: Will it be a little bit about OOP, because clean code…
ALISTER: A little bit about that. I mean, certainly there are a couple of solid principles and that kind of thing. But it’s not, not an introduction to object oriented programming. You have to start from somewhere that’s probably a bit too basic, but do cover some stuff on interfaces and that kind of thing. And so dependency inversion and that kind of thing. These are things that if you want to write really large applications, you really need code that is highly decoupled. Otherwise you make a change, you create three more in unrelated areas because the codes are missed and there’s no proper separation.
So yeah, if you want to write code that’s scalable. So if you want to write, you know, working on a project, that’s millions of lines of code, you can’t do that just with writing code and forms. That’s just a recipe for disaster.
SERGE: How to share developments between the team, like one part, some developer is responsible for one part, another one for… yes, that’s the problem.
ALISTER: You need to divide up your applications so you can have different people responsible for different areas of the application. If you’ve got, you know, teams working on the project, you basically require vision control at that point. And even if you’re one person you should be using version control. And various back management and all these kinds of things, a little bit about agile and …
I’ve written about 180 pages, I think so far, 160 pages… I haven’t haven’t got page numbers or anything like that. There’s no footers and all that kind of stuff in there yet. So I don’t know how big it actually is. It is bigger. There’s more words than Code Faster in Delphi already, and I haven’t finished yet. So it’s going to be a bigger book. It’s a harder book to write because there’s more.
SERGE: But do you already have a publisher who is responsible for the publishing?
ALISTER: I’ll probably self publish, again. I’ve got a big enough audience to be able to make two. And if I’m doing DelphiCon and stuff like that, you know, I did that. My last DelphiCon presentation was on the book.
So that’s, I think if you were at DelphiCon and went to a certain number of presentations, you should actually get a free copy of it. Embarcadero, they’ve done a book deal with a number of authors to provide books. Which is really good. Certainly. I think books are a kind of… a physical book is a dead tree, you know, that’s kind of an integrated format, but it’s still in many ways the best way of getting the sort of high quality information that’s better than a series of blog posts or something. The quality is better, generally speaking. It’s just kind of well written and I think eight people did editing on my book, eight or nine people on the first book.
Why Delphi, And Why a New Book
ALISTER: So it’s a fairly easy read, and I’ve been trying to write short books. If you look at the old Marco Cantu books, they’re 800 pages or something like that, especially, they’re huge tomes. And you know, back in the day big books sold, but now I think the trend is for shorter books on targeted topics. So, there’s now books on design patterns and memory management and writing high-performance applications and stuff that are available. So you don’t get this huge book which kind of covers everything and only a little bit of detail. You get these highly targeted books on very specific topics. So you get to learn something in great detail rather than having to sort of work it out or for yourself, which is really good. I think that’s a really positive thing that’s happened over the last… probably starting with Nick Hodges’ books, Coding in Delphi, and then you know, More Coding in Delphi, and then there’s the Dependency Injection book. So, and yeah. You know,[inaudible] has written books and Primož Gabrijelčič has written a couple books and yeah, there’s now [inaudible] on all sorts of topics. So…
SERGE: You’re my hero because you have to be such a self-motivated guy for writing a book because I have a similar dream, but I have such a lot of professional, like routines, like daily routines. Of course I will spend my time with family, relatives. I don’t know how you can do that, especially, but you even have cows and dogs, I don’t have cows…
ALISTER: Yeah, I have the advantage that I have a regular job now as well. So I’ve got all the time for tinkering with projects. In theory I’ve got a lot of time. It doesn’t seem to materialize, I seem to be spending a lot of time doing chores and, now I’ve got a two-year-old son, which is, you know, I’ve got a lot of time with him, which is good.
SERGE: Okay. Talking about “Code Better in Delphi”, you mentioned the better cleaner code, but did you have an experience, like a migration like from a Delphi legacy project to up-to-date Delphi because it’s a little bit like migration and the better code and refactoring are similar things, so maybe there was an insight or idea for the book.
ALISTER: Yeah. Certainly a bit of code is generally easier to migrate because it’s generally more consistent and, and what have you. So yeah, if you’re doing, you know, if you’re trying to convert unicode using strings as byte arrays, that’s not a bad practice to begin with, but you have to now port a whole heap of code to use, T-bytes or something like that rather than strings. I’ve worked on lots of projects for… you know, writing to the new versions of Delphi, all from the BDE to using FireDAC and what I was doing at the moment, the real estate project I’ve been working on for the last two decades, more than. It’s in Delphi 11, but the database is all just string fields. So I’m just, I’m in the process of… I’ve written some scripts and things like that to convert that to use wide string fields and wide number fields and that kind of thing. So that’s, that’s working, but the interesting thing about that application, because it was FireDAC and I wasn’t sure what database to support, so I basically supported them all. So in its current state, it’s Postgre or Maria DB, SQL Server, SQLite, Firebird, InterBace, it runs quite heavily talking to any of those databases.
SERGE: There’s all these things and all these difficulties with the strings, for example. Imagine, is it possible to develop this real estate program from scratch using another technology? How many years will it take?
ALISTER: Yeah. If I wanted to rewrite, I don’t know, it would take years. It would be many years, yeah.
SERGE: The main benefit of Delphi is that we can still use stuff from 90, 98, and it’s still the same application.
ALISTER: There was a project, when I got on board originally it was written in Dataflex and then it was imported to Delphi because you know, Dataflex was a bit of a dead end. I don’t know if anyone remembers, it was kind of a database language.
SERGE: Anyways, this is the same. If we’re talking about Delphi, it’s the same forms. Unlike in Visual Studio, we started with WinForms and then we cannot switch to WP because there’s two different animals. But in Delphi we can migrate up to date and keep up to date version.
ALISTER: Yeah, nightmarish if you’re doing Microsoft technology, even Java or Android, they have really large changes that require you to rewrite your application. But you can take your Delphi 1 project and it will quite possibly compile quite happily in Delphi 11, because of all the backward compatibility that’s been maintained. It’s quite crazy, you might need to install a BD or something like that to get it working. The Delphi project I’ve worked on, was originally written in Delphi 1, might have been Delphi 2, I took over it in Delphi 3, and I’ve kept it… I’ve skipped a few versions here and there, but it runs in Delphi 11. It’s probably a couple of hundred thousand lines of code. It’s not huge, but it’s significant.
SERGE: If you are not calculating the lines of the components, just your…
ALISTER: Oh yeah. It’s millions and millions of lines of code, you can’t do… there’s QuickReports and Getit Express and no, I wouldn’t want to write those from scratch. Delphi allows small teams to be highly productive. And the fact that you don’t have to throw out your code every five years means that you can basically stay ahead of the… You look at these really large projects and they have hundreds of developers working on them and you think, does it really need that many people
SERGE: Anyways, that’s why we love Delphi.
SERGE: Was it in Android Studio?
ALISTER: No, it was Eclipse. So this is going back quite a while. And I just found programming Java painful, because it was so verbose. You had to write, even though it had garbage collection, so you didn’t have to [inaudible] anything, you just ended up creating so many classes to… You create a class and you need to plan, you have to create classes to pass into the constructor. And always, everything’s an object. Whereas in Delphi you can have standalone functions and things like that. That can be just as quite economic and easy. I found Java, let’s say a third of your code is meant to be in your material, your memory management. And so in theory, that would all be gone in Java, but I just found I was writing more code in Java than I would the equivalent in Delphi. I certainly have not done C# for 15 years, but I did a little bit of C# for a .Net framework for Windows mobile phones… but I quite liked .Net.
SERGE: But the interesting thing is that Delphi is most stable if you are talking about… if you compare it with Microsoft technologies, because with Microsoft it’s a new technology every two years, three years, you know?
ALISTER: Yeah. You’re looking at a serious rewrite every, every five years. And you probably wouldn’t have any code left after 10 years. I mean, if you’d written it in Visual Basic, I mean and then Visual Basic .Net, and then port it to C#, and then Winforms WPF, and then… whatever their current…
SERGE: Yes. What about the risk management for the decision-makers when they’re thinking about life cycles, if their software in five, 10 years, what will happen?
ALISTER: Yeah. I mean, people think going with Java or C# is the safe option cause you know, so many people are using it, but this is not necessarily the case in terms of… if your code is going to last decades… I don’t know what Delphi’s gonna be like in ten years’ time, maybe it’ll be gone, maybe we’ll all be programming in LISP, and REST, or one of the new languages that’s popular. But Delphi’s got a huge track record, right? You can take programs that are 20 years old and recompile them without very much effort. Sometimes no effort in the latest version.
SERGE: New hardware, new operating system, but it still works. yeah.
ALISTER: Yeah. I mean Delphi 1, you would have been doing that Windows for workgroups or something like that. It’s Windows 3.1. You can take that application and run it on Windows 11, or recompile it and run on Windows 11. And once you run it on WIndows 11 a 16-bit application is not supported at all anymore. And I think [inaudible]. But yes, you could recompile it and it’ll probably run. In terms of, as you say, risk management, I think the biggest complaint I’ve seen is finding Delphi developers. And this dichotomy of… there’s Delphi developers saying there are no jobs and people with Delphi projects saying there’re no developers. It doesn’t quit…
SERGE: That sounds strange, we have a project but we don’t have Delphi developers, and they’re talking about “we cannot find the work” with Delphi. We have to connect them to each other somehow.
ALISTER: So I think in this day and age, you know, it’s definitely possible to outsource projects to other countries and or parts of projects. If you can write a detailed specification for something, then, because of the collaboration tools out there.
ALISTER: People work all over the word now, so you don’t necessarily have to have someone in your local country to work on a project. It’s interesting. I was working on a project where most of the team was in another city. It was about a two hours’ drive from where I live, but I was actually working in the Wellington office working so I was a remote worker but I was still commuting to work, and they had this weird thing where they had a physical Kanban board which I didn’t have access to. So it was quite weird. But anyway, there was an instance where remote work did not work very well, but I think in this day and age I think the Covid pandemic has demonstrated that people can work from home…
SERGE: They are doing almost everything from home…
And I think shops and all the retail stuff ground to a halt but the IT stuff , they just carried on as normal.
SERGE: There’s a lot of risks for commercial real estate, because it’s not such a [inaudible], nowadays.
ALISTER: It’s interesting what’s going to happen to the leases [inaudible], generally speaking. They may have a three year lease or a nine year lease or something like that on a commercial property. It’d be interesting to see what happens with a lot of companies that are IT-type companies, even companies that aren’t IT-type companies but everything can be done by IT, to the office workers. Whether these offices, a lot of offices are just going to disappear and people are gonna, you know, come into the office one day a week or something like that, and work from home the rest of the time. And so a lot of these commercial premises are gonna be… there’s not going to be any real estate anymore.
SERGE: Let’s make it a little bit different… Let’s change the conversation. Do you have a launch date for your book? Do you have a deadline for yourself?
ALISTER: I don’t have a deadline, no. Probably if I had a publisher, I’d have a deadline and that would kind of make me work towards it. But the text is mostly written. I just got a few sections I want to finish off. I’m going to keep thinking of more things I want to mention, like I added a few paragraphs on peer review and pair programming and things like that recently. And yes, it’s a much bigger topic than Code Faster and more opinionated as well. I found it a lot harder to write, it’s probably going to be missing all sorts of topics, but there’s going to be a lot in there, and a lot of Code Faster.
SERGE: Okay. Are we talking about the Spring, or it will be in Summer? When will it be ready, what do you think?
ALISTER: Yeah. It’ll be finished in the new year, sometime next year it’ll definitely be finished.
SERGE: But that’s twelve months.
ALISTER: Exactly. So, I could get it done in a few months, in a couple of months, or it might take six months, but I think it’ll be out within six months.
SERGE: I want to suggest to you to get a couple of copies, free copies of your book. Maybe we can create some contests. And, like an investment let’s say, what do you think, maybe the best questions about Delphi, RAD Studio, some development…
ALISTER: Oh, I’ll leave that up to you. I’ll let you work it out, but yeah, some
SERGE: In this case, if you publish the contest rules in the description to the video, we will try to create something interesting. And it’s a long-term contest because we don’t know when the book will be ready, but anyway… Let us know when it will be ready because we also will announce it in all our marketing channels for free of course. We are also creating a Delphi environmental ecosystem because every year when we have such new events, like a new book will be like an event, in 2022 in this case.
I want to tell you best wishes because you need a lot of strength… because it’s interesting, it’s like this book “Zero to One”, it’s a lot of people just thinking, just starting, but they cannot finish. But you already have proven experience with the first book and I believe that you are making the second one and we are waiting for this book, of course.
ALISTER: Finishing the book, actually writing, finishing writing the text, and then you get people editing it and going through, and proofreading and all that kind of stuff. That takes quite a while for people to get through it. And you don’t want them all going at once, you want…. So I have the book in a Google document. And so people can go through and make comments and stuff, and then I can make changes as they go. And so it’s kind of an integrative interactive process updating the book. And I don’t want everyone going through all at once. I want people to go through sort of semi serially, so that people aren’t making the same… finding the same mistakes, so to speak. So everyone contributes new ideas and stuff around the same idea, but I haven’t gotten around to fixing. That’s their process and then you’ve got cover design and just getting all the formatting sorted, so that you don’t have a bit of text in a page break in the beginning of the next page, you know, you try and get everything looking appropriate and stuff like that. That all takes time as well. And getting all the footnotes sorted, then references. So just getting the text finished is not actually finishing the book. So I’m probably about 90, 95% complete when writing the text, but editing it will take time.
SERGE: But this is five percent, it’s like five percent.
SERGE: Anyway, I want to say good luck with this five percent, it’s very important, I guess, mentally I think it’s important because I know each author can get some concerns about his book or anything else. This is why I want to tell you good luck with your…. And of course there is the timing because I’m not sure how long people will be ready to watch us together. That’s why thank you for coming and thank you for your time, because you know, we are on two different points on the globe, it’s like my morning, but it’s your night.
ALISTER: Yup. Maybe 11:00 AM for you and 9:00 PM for me.
SERGE: I’ll see you in the next event somewhere. Maybe in some conference, maybe we will build something together. Some educational event or something like that.
ALISTER: I’m certainly happy to come back and talk about different topics or something more specific. We’re not going to get really weird tangents, random paths.
SERGE: Great. If you want to add something, you can send some info to the Delphi community, because we will share this of course, we do everywhere.
ALISTER: Indeed. Oh, well just, you know, if you want to find out more about my videos, then you come to LearnDelphi.tv, and my book is obviously available to purchase there. Likewise with the commercial videos, which, if you want to learn the VCL and ridiculous details in it, it’s quite good. They’re a little bit out of date now, the VCL ones I recorded were for Delphi XE3. So I need to record a new part for some of the new components.
SERGE: You have to migrate your videos.
ALISTER: Yeah, I’ll probably just do another video, another series because I’m recording them and they’re still perfectly valid, there’s no content in them that’s been superseded. It’s still… Every example will still work in Delphi 11. So there’s this… 20 new components and themes as well. You know, visual styles, which I don’t cover. And at some point, I may do a series on FireMonkey as well. But FireMonkey is a bit daunting. That’s a big, big topic.
SERGE: That’s a totally different universe, and as a framework. Okay. Thank you.
ALISTER: Thank you for your time as well.
SERGE: That’s our first such person-to-person meeting, an event. Thank you for coming. See you in our next educational or informational events. Bye bye.
ALISTER: Thank you. See you later.
Alister gives away three copies of his upcoming book related to programming with Delphi. The books will be sent for those of our subscribers who ask the best 3 questions on the topic of software modernization or software development using Delphi in the comments to this video.