I have asked Ales to have an interview with me regarding the open source projects and some information about himself, and I hope you all find it interesting as I have.
Q: Ales, can you please tell us something about yourself ?
A: I'm a university student from Slovakia, currently studying information systems at the Faculty of Informatics and Information Technology here in Bratislava – that's the capital city of Slovakia, and I'm one of the lucky students who actually arrives from the city.
Q: You are contributing a lot to FPC and Lazarus, how did you start programming in Pascal anyway ?
A: Well my first steps in programming were with QBasic on an old 286 machine running DOS. This was sometime around 1993 when my father got our first computer. There was an amateur programming and computer magazine from which I copied basic programs and tried to understand them, but I never got too far back then.
My first encounter with pascal was through my cousin, who used it at school (he's older then me). He was using Turbo Pascal for some really nice graphical programming, even software 3D engine! Truth be told I didn't do much programming back then tho, some tests, basic stuff. After some time, I found out about Delphi (again through my cousin) and tried some RAD development.
While all of this was going on I learned about this thing called Linux, and how cool people use it. So naturally, I tried it and one of my first question was "is there a free pascal compiler for Linux?". Didn't take google long time to find out.
Q: When was that exactly (the starting of using a "free" pascal compiler) ?
A: Hmm, must be sometime around 2003 I think. It was before 2.0.0, but after they started hacking around with the 1.9.x versions. When I came, 1.9.3 was in the trunk. So pretty late actually.
Q: Why did you use pascal and not trying to move to a different programming language ?
A: Well, it was a sort of momentum combined with personal preference. I was coding some hobbyist (and very badly written) projects in Kylix at first actually. So when I found FPC, I wanted to move to it and see how it goes.
Then, personally I just don't like C[++] that much. Another motivator was of course Lazarus.
Q: How did Lazarus motivated you to use and contribute to FPC/Lazarus projects ?
A: Well Lazarus was just damn cool! Written by so few people, it could do wonders even back then (and back then, it crashed more often than not). It also enabled me to learn programming. You see I am a very lazy person, and without code completion, and other nifty features I don't feel so motivated 🙂
Q: Do you know any other programming languages or just Pascal, and that's it ?
A: I know C, C++, PHP and Java "well enough". But I tried other languages like C# and Python too, but I never made anything significant with them.
Q: You have written the "never ending game" – Lentilwars, was that the first time you contributed back to the projects ?
A: Well, yes, I think my first changes were when I fixed some bugs while working on Lentilwars back then. I don't think I contributed anything before that era.
Q: Why did you choose to release Lentilwars as open source, and also giving back to open source ?
A: That came with Linux, and I think somewhat also from my upbringing. I started believing in FOSS the moment I found out about it. But the giving back thing really isn't as altruistic as some people might think, it all kind of came naturally. Also, my contribution isn't really all that big, compared to say Jonas or Peter.
My first bigger project was my still unfinished game, Lentilwars, and as I was coding it, and started writing net code for it, I found out a lot of bugs in the FPC RTL. So I just tried to fix them. I guess the FPC people eventually just figured out it's easier to give me access than do my patches manually heh.
As for the game, well I knew it wasn't commercially viable, so I thought, what the heck, I like OSS, let's give it a try.
LNet itself is just a sort of natural continuation of the process, at first it was just a net library for my game, but it outgrown it and is now a project of it's own.
Q: Have you received help from other people back (on the game), or it's just your code ?
A: Well not code wise. Apart from Milos (my friend who did graphics on it since the start), I only got translation help and some code snippets from you if I remember correctly 🙂
Q: lnet made a lot of changes since you have started writing it. Why did you do that ?
A: Ah yes well, one thing to understand is that lNet became much more important then Lentilwars, quite early on in fact. Sometime during 0.3.x series, it became "the" project for me. I got a lot of help on it from Micha (neli) and also a bit from Jesus Reyes (jesusrmx).
Micha did the whole HTTP protocol stack, including the server part, and Jesus [Reyes] helped me with visual FTP examples and some other issues.
A: Well, I don't think we directly compete against each other. It's all about use case and what people really need. Indy is great for it's wide protocol stack, but has a big footprint and doesn't work on all targets. Synapse is nice, but as far as I know doesn't have visual integration with Lazarus, and at least in the past was also not fully cross-platform. lNet has very small footprint and supports almost all FPC platforms, so I think that's the niche.
But on the whole, I'd recommend the other libs if I knew the person would be better off with them.
Q: The first lnet version was part of the game and had a very dedicated code only for that, so why did you rewrote it ?
A: Well, it was a sort of pride thing I guess. I wanted it to be "proper" which at that time meant, independent and modular. It all began very humbly really, I didn't plan any of it 🙂
I just felt that FPC could use a nice simple net library, since as I said back then, Indy had problems and even if Synapse worked, FPC threads didn't. I guess that was another reason to separate it and release
Q: I have made (and still do) a lot of work with lnet, and I find it a bit more complex to use then synapse for example (even on creating a new protocol using the library), what is the logic behind lnet, and why did you choose that logic ?
A: Well with lNet the first and most important aspect is internal consistency, small size but flexibility. After that goes "good design" and only after that, it is the ease of use. So yes, it's a bit more complex for the end user, but it offers a lot of flexibility and ways to do your modifications with little trouble. Another aspect in the past was to keep it thread free, but this has become irrelevant since then.
One more thing to keep in mind is that when I needed net lib for the game, Indy didn't work on Linux yet, and I simply couldn't get Synapse to compile.
Q: When did FPCBot arrive on that rewrite ?
A: Ah well FPCBot was a joke actually.
IIRC, one summer, we joked on the channel about how we need a logging bot, but it should be done in FPC.
Now of course, most bots on IRC are made using perl or some other scripting language, but I took the challenge out of boredom 🙂
It was easy enough to get a first version done in time and the bot was simply evolving (also with the help of others) since then.
Q: What other projects are you contributing to ?
A: Well, apart from lNet, FPC RTL, and some minor patches to Lazarus, I have some of my own projects which I work on, like PasTeX which is a LaTeX IDE/Editor (not released yet), GLSCene and a few utility things. I don't have membership in any other OSS projects however.
My contribution to GLScene was my "3D" mania time, and I thought how nice it'd be to get GLScene working in Linux with FPC. Most of the work was done by Christian actually, but crossbuilder and I took it up and he still keeps it up to date. I helped fixing a lot of the demoes and some Gtk code.
Q: What is the project you enjoy contributing the most ?
A: Well, lNet obviously 🙂
Q: Do you feel that you received something back from open source (knowledge, experience, anything else) ?
A: Oh yes, what you said and much more so much more!
I mean just consider the fact that I have a free OS, with free graphical environment, utility applications, development IDE, debugger, movie player etc… etc… 🙂
And then of course there's the experience.
But most important for me, with projects like FPC and Lazarus is the fact that I can hack the code, if a bug shows up, I'm not screwed.
It's also the whole community I like, most people are very mature and nice. You won't find many selfish people doing open source 🙂
Q: Where do you see yourself in 5 years from now regarding development, open source and your professional life ?
A: Well, I think I'll continue working on OSS projects I like, but I hope to get some bigger commercial thing going too, and earn proper money too! Hard to say tho, as I don't have anything planned right now. I tend to live from day to day.
Another nice thing could be public service, as in helping with IT in schools etc. I think I could use my OSS experience and help them save money and get rid of certain monopole.
Q: Do you have anything else that you wish to add, comment or say regarding this interview ?
A: I'd like to thank you for doing it I guess and would like to thank the whole FPC and Lazarus dev teams for doing a stellar job!
Me: Thank you Ales, and I also wish to thank the developers of FPC and Lazarus for their work.