Interview with Timo 'freak' Harter  

(done by André Beer for PureArea.net in Feb. 2009)

 

PureArea: Hello Timo,

nice that you have the time to give an interview for publishing on the famous PureBasic support site www.PureArea.net!

 

1) Let's start with some questions about your private life:

Please tell us something about your person, your age, your family, how and where are you living, what you're doing in your main job/study (beside PureBasic).

freak: I am 24 years old and come from a small town deep in the Black Forest in south Germany. I have a rather large family (4 brothers and 2 sisters). At the moment, I am studying computer science at the University of Tübingen.

PureArea: As we saw a picture from you last year at the PB Team Meeting for the first time: can you show us an actual picture of you?

freak: Nope. It's bad enough that you published pictures of the meeting. I don't think the world can take any more of my beauty

PureArea: What are your hobbies, your favourite sports (are you a fan of any sports team?)?

freak: I am not very interested in most team sports, they never had any appeal to me.  I do however enjoy watching Snooker from time to time. It is a very elegant and precise sport, unlike some of the team sports. Besides, you can perfectly watch a Snooker match while coding on PureBasic

PureArea: What are your personal goals for the future - in private life and job?

freak: I am not really sure what to do after university yet. I have a quite strong interest in functional programming and so I am probably going to end up somewhere in that field. Functional programming is quite strong in the financial sector, although I am not so sure anymore whether that is the best place to end up given the most recent events.

As for private life, I'll take that as it comes...

PureArea: 2) Now some questions which are about your and PB's history:

We know, that Fred and Andre started programming on AmigaOS. So also the first version of PureBasic was for that OS. Did you ever have a Commodore Amiga yourself?

freak: No, I never owned one. The family living upstairs from us had one, and we went up there frequently to play games. It was the worst punishment from my parents to be denied going up there for a week

The first computer we had in the family was a 2x86 PC with a 40 Mb disk.

PureArea: What do you think about the "alternative OS" (Linux, MacOS, other) in general?

freak: Well, "alternative OS" is the wrong word imho. Just because Windows is installed on most end user PCs by default does not make it "the OS". Having said that, I don't think Windows (at least not the NT based versions) is particularly bad.

I enjoy the diversity of having different OS on the computer to switch back and forth between them, as each one has their own strength and weaknesses. Even more so, I find it very cool to be able to write programs, which run on different operating systems. This is one reason why the cross-platform aspect of PureBasic is quite important to me, and I have been working on improving this aspect quite a lot in the past and will continue that also in the future.

PureArea: We saw you playing at the Wii at the PB Team Meeting. Do you also play computer games in private? If yes, which system do you use - console or PC?

freak: I used to play a lot of 3d shooters back in school (the evil "killer games" ). But since I got into programming with (and especially on) PureBasic I somewhat lost interest. Once most PC games used to require hardware newer than what I had, I stopped buying newer games and even though I now have the hardware again, programming is just more exciting to me than playing games. Every now and then I install one of the older games again though and play it for a few days. I don't own any consoles.

PureArea: You are not a team member since the beginning. When did you first discover PureBasic?

freak: I started programming with QBasic on a project in school. After I hit many limits of the DOS environment, my interest turned to web design for a while. I discovered PureBasic while searching for a way back into application development.

I admit it was a bit out of laziness, as I was looking for a new Basic language because I did not want to go through the effort to learn anything new.

PureArea: What did you thought about PB at this time?

freak: Well, given the fact the PureBasic was only the second "real" programming language I learned, I did not have much to compare it to. It was pretty easy to get the first projects off the ground, which I liked a lot. I also enjoyed the fact that it made (and still makes) it very easy to do the first steps with the OS API, which was particularly responsible for the relatively quick move I made from programming in PureBasic to programming on PureBasic itself.

PureArea: How did it come, that you started helping Fred?  And when did you become an official PB Team member?

freak: This was a longer process over time. I first got to know Fred when the CVS was established to give users the ability to help improve the PB documentation. That was when I joined the IRC channel on a regular basis.

Quite a while later, I wrote a PB code similar to what later became the 'ExplorerTreeGadget()'. Fred said he wanted to rewrite it in C to make it a PB command. My response to that was that since I wanted to learn C anyway, this would be a good place to start. Since then, a friendship between Fred & me has evolved over time through countless hours in IRC, and I slowly got more and more involved with the PB development. Starting with a few Gadget commands and some work on the old IDE sources and later other PB related tools such as the SmartUpdate tool or others.

One day Fred said: "You do so much, I’ll have to put you in the 'About' box." I guess that's when it became 'official'

For a while, my main focus was the newer cross-platform IDE and debugger. Since the big 4.00 update, I also began working on the command-set for all platforms and this is where the most part of my work is right now. I pretty much work on everything except the compiler itself now.

PureArea: That's quite interesting. It seems that you are investing a lot of time in PB developing. Can you say us, how many hours per day or even sometimes the whole night (bug hunting...) you are working on PB?

freak:  Especially the nights

It’s hard to put a daily amount of hours on it. Recently there are times when University demands so much time that I don't do much more than reading/responding the postings on the PB forums and then there are the times when we do a bug session (or developing something new and fun) that I spend pretty much the entire day on PB, quite often also until late in the night as I just can't stop when things are going well. I usually get a laugh from Fred the next day when he sees my 7am SVN commit

It’s fair to say though that after University and PureBasic, there is not that much time left most days.

PureArea:  Can you tell us more about the programming tools you use for creating the whole PureBasic package? The PB tools are written in PB itself I think, and when are you using C / ASM?

freak:  Those tools we wrote ourselves are provided in the library SDK. Other than that there is the C compiler of course (VC and GCC). The build process is managed by a large set of makefiles (220 makefiles for the libraries at the moment) and a set of bash scripts to put together the final package on Fred's build server (see his blog entry). We manage our code with Subversion. I used to use RapidSVN for that, but nowadays I am more comfortable with just doing the stuff directly from the command line client. For code editing I use Visual Studio on Windows, KDevelop on Linux and XCode on OSX. I make a lot of use of VMWare to test bug-reports on the various Windows and Linux versions. That’s about it for the day-to-day use. When things get really hairy I have to get out gdb or valgrind to find some really nasty bug in the libraries, but that’s quite rare as usually some print() in the code and some thinking leads to the right part of the code quite fast.

PureArea: Do you also work on own software projects, written in PB / other language?

freak: I have no real other projects written in PB. Whenever I start something new, it’s either good and useful and a therefore end up in the package (see PureUnit) or it never develops past the experimenting-stage. Since there is always something to work on related to PB there is no need for other projects to keep me busy.

For university I am working on the Scheme48 project (www.s48.org), a Scheme implementation on which the programming research group of my University does some work. You won't find any code from me in the public package yet though as my work is not yet complete, but someday you might

PureArea: Now, with new PB 4.30 released, we are interested to hear more about the future plans. Can you already tell us something about the next PB 4.40? And probably already something about plan of the most important improvements for future versions, please!?   

freak: Top secret

Well as I already wrote on the blog, the focus (at least from my side) is on threaded/parallel programming. We have some new compiler features in store too, and of course there is the move to x64 for Linux. I am also working a bit more on the IDE this time and its fun. I am sorry that I cannot be a bit more specific but I do not like to talk much about features which are still in the planning/writing stages as we ourselves have not made up our minds about it all yet and I do not want to make false promises.

PureArea: What do you think, are actually the most important

a) advantages and strengths

b) disadvantages

of PureBasic, compared to other languages?

freak: The biggest disadvantage is in my opinion the small development team and the fact that PB is a niche product. It will never grow to world domination simply because the market for this kind of language is too small. With the small team come a number of problems like the fact that we have to rely on user feedback for testing and bug-fixing much more than other projects do.

 

However there is also a very big advantage in that (maybe even PB's biggest) and that is the fact that the direction that PB is developed in is not dictated by some big business and the constant goal to maximize profit, but rather by what we as programmers think is a good direction. Also the close contact between developers and users through the forums is a big plus for many people and this is something that a larger company probably would not do either.

 

Another big advantage in my opinion is the fact that PB is both a cross-platform language but still quite close to the individual target platform. By for example using the native GUI controls, programs fit in with the look and feel on each platform unlike programs written languages/toolkits that use their own controls for that. This makes PB a good language for people who intend to write for one platform only (like many do for Windows) but also for those that want to write programs for multiple ones. Like it is with most things, this comes at a price and that is the fact that not everything works exactly the same  way on all platforms since some differences simply cannot be worked around.

 

The large command-set is an advantage too in my opinion. Sure, people tend to complain why library X was added because they themselves don't need it right now, but having the commands available when you need them without the need to go look for 3rd party code/libraries and how to access them from PureBasic first makes life much easier.

PureArea: Will you and Fred are working on some of the "so-called" disadvantages?

Or will they stay, e.g. because they are existing "by design"?

freak: Well, the niche product status is something that simply cannot be changed. Neither changing the name of the language nor starting a big marketing campaign will change this because as I said, the market is just too small for that. It is a fact that we have to live with.

 

About the cross-platform differences: We are constantly working on that. It won't happen all at once, as some of the remaining issues are not easy (or maybe impossible) to work around, but if you look at the platform-specific function list for the past few releases you will see that it is constantly shrinking (for example with 4.30, we introduced an OnError library that works the same way on every platform), and with new features we try very hard to design them in a cross-platform way from the beginning, so new differences are rarely added.

PureArea: Which users do you suggest to use PureBasic? More the beginners, the advanced, the professionals or all of them?

freak: Everybody. We try to introduce advanced features in PB but still keep it all accessible on a beginners level as well. Our goal is to make programming fun, and that is not really tied to a level of skill.

 

That said, there are things for which PB may not be suited best. For example for use in big businesses, which is mainly because PB is a niche-product developed by a small team. What a business needs is a large pool of developers that know the language so that they can hire replacements/new people to keep maintaining their products. PB does not have that, so don't expect knowledge of PB to be a bonus on your job application.

PureArea: Which BASIC language do you see as the biggest competitor to PB?

freak: To be honest I do not keep track very much of the competition, so I cannot really tell you that. I do think however that we made a big step forward with the new x64 version. As far as I am aware, PB is the only basic so far that can compile to native x64 executables. This will hopefully give us an advantage for a while.

PureArea: What do you say about the "OOP hype", which is going around from time to time, also in the PB forums? As we heard from Fred earlier, PB will stay always a procedural language. What's the current view of the PB team?

freak: Well, well...

 

Like so many other things on the internet, the OOP question has become a religious issue with most people taking a "my way or the highway"-position. This tends to make any discussion about it go down in flames, which is why I tried to keep out of such discussions recently. It’s funny because usually both sides of the argument seem to miss the point. OOP is neither a magic cure for everything, nor is it this big bad beast that needs to be avoided. It’s just another way of getting the job done, nothing more.

 

One thing I have noticed while reading the OOP related discussions in the forum is that people seem to try to prove their own "professionalism" by the fact that they can use the 'Class' keyword. The logical conclusion from that is that PB cannot be professional enough for them since it does not have it. This argument is plain rubbish. It’s the same line of arguments that leads to the browser wars: "I like browser X - hence browser X must be the best - therefore all other browsers must be bad - therefore whoever uses something else must be stupid, as they use a bad browser". In the end, all a web-browser does is display web pages, and every browser out there manages to do that. It is the same with programming tools. The tool that suits you best might not be what is best for other people. And quite frankly, if people need a buzzword like "OOP" to justify their own level of skill, then they have already proven their lack thereof. If you like it and it helps you write good programs then that is fine, but don't think because other people get along fine without it makes you the better coder.

 

"The best tool for the job" is what we said all along, and this includes the question of OOP. PB never tried to be and will never be the one and all for everybody. If you like it you use it, and if you don't then just don't. And if you find a task that you think can be better done with another language, then use that. That doesn't need to stop you from using PB for other things still. This is where programming is better than the browser wars: you don't have to choose one single tool. The more diversity the better, because in the end this is how you gain new knowledge. Maybe the next time the "OOP hype" as you calls it comes up on the forum, I might start my own fight for functional programming. After all, that is the only truly elegant way of coding

 

As a final word, I would like to quote Flon's Law: "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code." (Lawrence Flon, 1975)

 

It is the programmer that writes good code, not the language. And just because it contains classes does not make it a good program.

 

OOP in PB? Who knows, maybe some day. I will not rule that out for all eternity. It is however not on our agenda for the foreseeable future, and the chance of it happening is quite low.

 

... you asked, so no complaining about the long answer!

PureArea: Now some more questions about your and PB's future:

Can you imagine working full-time on PB, like Fred currently does?

freak: Personally I can, and I am sure it would be fun. It is however commercially not an option, as PB cannot support 2 developers fulltime.

PureArea: PureBasic has reached an almost very good reputation at its users. Will the PB team do anything in the near future to let PB better known and to extend the user base this way? E.g. like improving the marketing of PB (website, PC magazines, etc.)?

freak: We are programmers, not marketing people. I think everybody noticed that by now. So while you will probably not see us launching a big advertising campaign any time soon, I do agree that things like the website need work. We will have to get around to that some when and we will. It will just happen on our own time and not because some users think it’s what we need to do.

PureArea: The "PureBasic Team Blog" (http://www.purebasic.fr/blog) is very good thing to tell the PB community more about what's going on behind the scene, and to "teach" about good PB programming / converting to newer PB versions. Who had the idea and which aims do you follow with it?

freak: It was my idea. I played with the thought of starting a blog for quite a while actually, as every now and then there was stuff that I thought could interest some users, but the forum just seemed to be the wrong place for it. The thing that kept me from it was the fear of creating a blog that would quickly die because I would be too lazy to write something. Then finally I thought what the heck, let’s just start it and see how it goes. After all, nobody forces me to write something.

 

The idea behind it is to have a central place where everything we write about the PureBasic background and internals is collected (so it does not get "lost" in the forum). So even if there are no new blog entries for a while, it will hopefully grow into a valuable place of information over time.

PureArea: Thanks a lot, Timo, for your time and a very interesting interview. I wish you and PureBasic all the best for the future development!

Now you've the "final word". Is there anything you want to say to the PureBasic community?

freak: I want to thank the community. It’s been a lot of fun for me to work on and with PureBasic, and I probably wouldn't have gotten this far without the help of some of the long-term community members. After all, I started out here as a total newbie myself.

PureArea: Thanks a lot and Good Bye!

 

© March 2009 by PureArea.net - All rights reserved.