Interview 2012 with Frédéric ‘AlphaSND’ Laboureur  

done in December 2012 by PureArea.net / André Beer

 

Seven (!) years ago – in September/October 2005 – I was able to do an interview with Fred, the man behind PureBasic. You can read it here: http://www.purearea.net/pb/english/interview.htm

This year I thought, more than enough time has passed since then. That’s why I asked Fred, if he would participate in a new interview.

 

And here we go – Fred was kind enough to answer me a lot of questions, which I sorted into three categories: Fred’s private life, PureBasic in the last years and at this time, and of course the future of PureBasic.

 

I would also like to thank you the following community members, who contributed questions and suggestions to this interview: Danilo, DarkDragon, dige, flaith, Inf0Byt3, Kukulkan, Luis, MachineCode, Michael Vogel, Num3, PrincieD, Rings, skywalk, STARGÅTE  (in alphabetical order).

 

Part 1 – Personal things:

1.

Hello Fred,

nice that you take the time to answer me the next questions. The community and I are very interested to hear how things are going for ‘the man’ behind PB

So let’s start – how do you “feel” currently, in private life and with the situation around PB (short after release of version 5.00)?

 

Hello Andre, and hello everyone. It's always cool to answer a few questions and brings some lights on PureBasic internals. As you could imagine the 5.00 version was a big achievement and I'm very happy with the results. It was a lot of work, but thanks to full time work on PB, it has been fast to get a new version out. In private life, there are no major hiccups and I feel well. To be honest, be really back on PB is really a pleasant thing.

2.

According to the last interview you should be 35 years now – it would be nice, if you tell us something about what happened in the last 7 years – are you married, have an own family / children(s), house, boat, dog or cat or … now?

 

Net yet, I'm 'only' 34 ! These last 7 years (really??) have flown very fast and there are no much changes here: still in Paris, no pets, no children !

3.

There is only one official photo (see last interview), which should be around 10 years old. Please show us an actual one, please please!

 

Ok, ok.

4.

PB is an important part of your life. How do you manage the “balance” between such a time-consuming project and the regular life (job, family, …)?

 

For now, I don't have a family, so things are much easier to handle when you don't have strong constraints. I guess there is nothing special about it: I work on PB the best when I’m motivated. Sometimes you need to get some fresh air so I either take a long break or find a job in a company (talk about fresh air!). It allows keeping in touch with actual technologies and obviously gives new ideas for PB.

5.

Do you have any hobbies or sports besides computer programming?

 

I'm no sport addict, but I do like tennis (especially watching, as I don't practice anymore on a regular basis), play guitar and video games.

6.

You switched between jobs in the computer industry (doing PB stuff as a side-job) and full-time developing PB several times now – actually with PB as daily job since April 2012. What were the reasons for this (are you able to live alone from selling PB licences?) and what is more fun?

 

There were two reasons for getting a daily job: take a break from PB (while still doing some dev here and here) and get money. PB incomes aren't very high, but I can live with it. This time, I would like to stay at fulltime as long as possible, so I'm trying to find ways to always be in the good coding mood. For example, I only work on PB during the week, as if it was a daily job. I wake up early (understand 10AM ) to have a full work day and stop around 7PM. Unlike my previous fulltime sessions, I don't try to rush and code the night. If it’s not finished, I will finish it tomorrow. That's means I get the evening and WE for other things than PB and I hope it will help to stay sharp and focused on dev. This is indeed definitely more fun to work on PB, as we try to make it better through so many different ways (new commands, compiler improvement, new platforms etc.) than you can't be bored (ok, I admit than bug fixing and doc sessions aren’t that fun but it's equally important).

7.

Which jobs and maybe also other projects beside PB did you do during the last years?

 

I worked 2 years as a printer controller developer in a big company named Océ (http://www.oce.com) – an interesting experience, as I didn't know anything on the topic. The last job was during one year and half in a french bank named 'Societe Generale' as a developer on front-end trading tools. Again a lot learnt about stock markets ! As side personal projects, I have tried to do an online card gaming platform (3 months of dev in 2009 with a friend, we used flash as client and a java server to handle the communication and game logic). It was working but unfortunately we never reached the critical mass to make it work. Ha, and a little Windows Phone 8 app, 2 year ago called BlockBouncer.

8.

How do you live with the enormous expected attitudes of the PB community (new features, bug-fixes, …) and sometimes unfriendly comments of single users?

 

That's an interesting question. As long the criticize is true and objective, I don't have any problem with it. Obviously, if you have feedbacks (even negatives), it means than people are actually using your software and want it better. That said, when I read some untrue speculations and/or biased comments, it gets on my nerves. Most of the time, I contact the user in private and ask for explanations. It's never nice to read a bad comment concerning only one feature when you have worked on many.

9.

Do you still have the 'mojo' (motivation) to develop PureBasic or sometimes it’s so hard that you want to give up?

 

Up to now, I never wanted to give up. Sometimes the motivation is lower, but it often get back after a few time. That's why it's so important to work on different things, to avoid the routine. Lastly, I got quite some fun seeing the 3D engine improvements and new examples, as it was a domain where PB was weak.

10.

When you're programming, do you like to be in a quiet place, or with some 'sounds' around? Maybe some music, if yes what kind of music do you like to hear?

 

I usually put some music in the background, often movie/trailers style like Hans Zimmer, Two Step From Hell, AudioMachine. Having no voices in these music allows to concentrate better.

11.

What are your most favourite songs / artists – this year, but also in generally?

 

It's some french groups so you won't know them, but if you want some names, here we go: Olivier Trevidy, Eiffel, Noir désir, Debout sur le zinc.

12.

And do you have any favourite movies and books too, maybe some favourite sports to watch?

 

My all time movie is Rock, thanks to Michael Bay and the wonderful Hans Zimmer soundtrack. Second is probably Usual Suspects. After it's complicated, as I like a lot of movies. As a book, I just finished all Game of Thrones (waiting the next one, Georges RR Martin!), which is an amazing epic scale story. I mainly watch Tennis, and sometimes Football with friends.

13.

If I remember right, you enjoy to travel and to make vacations in foreign countries. What were your last trips and what are you planning next?

 

You remember right! Last year I was in Bali (Indonesia) and early this year was in Vegas for a friend bachelor party (No comment !!). The next stop will be probably Australia, still to be confirmed.

14.

Are you political interested? If yes, what do you think about the current situation in France, but also in Europe / the World?

 

No, I'm not politically interested. About the global France situation, according to the newspapers we can't see it does look very bright, the same for Europe, and guess what, the same for the rest of the world. It's just the whole thing (understand the global economy based on markets), which is broken.

15.

As we are short before: Where will you celebrate Christmas and the New Year? Are there any special traditions to you and/or your family?

 

Yes, I will celebrate Christmas with my family in Strasbourg, like every year :). The tradition is to give a gift to every family member, so we have quite some to unwrap! About New Year party, it will be in Paris with friends.

 

Part 2 – Development and current situation of PureBasic and it’s community:

1.

Please tell us some more about the current PB team. Who is actually involved in developing and support of PB, and what things are doing each one of them? How is the collaboration between you and the team members (humanly and practically)?

 

The current team is composed of the following people:

    - Timo (Fr34k) who has now a daily job but still doing some code here and here. He mainly works on the libraries, debugger and IDE

    - Comtois who has done almost all the new 3D related features found in the last PB version.

    - Gatean (Polo) who has kindly integrated his nice Form Designer in the PureBasic package, and maintain it.

    - G-Rom who do some additional 3D coding

    - André (you) who does the German support and documentation

    - Mesa who do the French documentation since 5.00 (and has improved it a lot)

    - Me

 

We work trough several channels. With Comtois and G-Rom, it's only trough the french forum. With Gatean, it was on IRC first and then Gmail/Gtalk. Mesa is trough private messages on the french forum and André is with emails. I only meet in real life Timo and Andre, so yes we can work on a same product without having real meeting

2.

And how do you motivate fr34k or Polo for doing the 'free coding work’? (okay, freak only needs pizza as far as I know )

 

To be honest, I don't have anything to do, as they are already motivated! That's the way the contributors work with PB, they do the things they want to. I never tell what to do, they come with the ideas, we debate and if I think it can be a great addition to PB, they start working on it. In addition, they get access to the sources, and indeed to my support. When you contribute to a project like PureBasic you learn a lot of new things and new way to handle programming, and I believe they are gaining a lot of experience. You have to follow the rules (especially coding rules), use the right tools, and understand the PB philosophy. They are all a great help which makes PureBasic a lot better than it would be if I did it alone, that's for sure. In the end it's the users, which benefit of their hard work. Big thanks to them.

3.

When did you have the idea to build a programming language on top of an ASM / C compiler and 3rd party tools?  (It seems an obvious and common choice today, but at the time of birth of PB for Multi OS (2000/2001) it was not…)

 

This was the natural choice for me, as I was an assembler programmer at the time being. To be exact, the first PB compiler was coded in BASIC (BlitzBasic on Amiga) and was working good enough, but when I wanted to move to Windows, I got a 'small' issue: BlitzBasic was Amiga only. So I began to port the compiler to C, having learning than using a single platform language makes ports impossible. That's why now the compiler is in C. You may think than the lesson what learned, right ? In fact no, the first Windows version have all the libraries coded in assembly. And guess what, when trying to make a Linux port no library were working. Again, we migrated the assembly code for portability (and easy of maintenance as well) and since then we use C as a central tool for every core tools. For other tools, we use PureBasic (DocMaker, UnitTest, IDE etc.).

4.

What were your main goals, when you started creating PureBasic? And what are they today?

 

The original goal was to do a modern version of BlitzBasic (the old Amiga version, not the PC version). It has now evolved so much than we have forgotten this goal since a long time and PB is growing by itself to an easy-to-use-but-powerful-all-in-one language. Our main goal today is to provide a stable and productive environment to get the job done quickly. It's designed for every kind of coders, from beginner to old timer who are bored to setup a big compiling environment only to play a bit with some libraries.

5.

How many lines of code is PureBasic up-to now?

 

If you count the code from various tools used by PureBasic, it's over 1 million lines. It's big for sure, we have more than 1500 commands on 3 different platforms. More than 14 years of development.

6.

What operating system flavours do you personally use for working on PureBasic? Which of the OS do you enjoy most?

 

My daily OS is Windows. It's simply the OS I'm the most productive and used to, so it's my main development environment. Visual Studio has always been a great tool to produce and debug code. I can't say I 'enjoy' Windows, I just use it and like it.

7.

According to your previous interview in 2005 the number of registered PB users was around 5000. What's the number today? Does the focus of the user base still is in Germany, and how the users are currently spread over the world?

 

It's around 8.000. It's now all around the world, with a bit more in Germany, yes.

8.

Wouldn’t it be good to “officially” publish this information on the PureBasic.com website? Once for advertising (PB isn’t only a small language with some hundreds of users), but also for third party developers, which want to develop add-ons for PureBasic, but want to know how many potential costumers they have...

 

You don't usually publish such information on your website. Also this number isn't very relevant, as the registered number is very different of active user numbers, which doesn't include illegal use and users who don't use PB anymore.

9.

Is PB still working from an economic point of view? Do you get enough money from licensing / donations and (especially as it’s your daily job again) is financial independence achievable working solely on PB?

 

As said before, it's fine with me. I don't get as much money than a daily job, but it's enough for me, considering than I do what I really want to do, and it comes at a price. What is encouraging is it's very stable from year to year, so I'm happy than PB still attract more people every year.

10.

Do you also doing 'contract work' with PureBasic for companies? If so, how can we hire you?

 

Not officially. I already have patched a lib or two in hurry for a company who needed a quick fix and got money from it, but it's not the rules. That said I'm open to include a feature someone would need against a financial reward. The feature would need to be compatible with PB command-set, so we can redistribute it. We won't make company specific development, which couldn't be integrated in the official package. Feel free to contact me if you have such needs.

11.

Is there anything that could bring you (and the PB team) an extra income? How about a little “PB-Market” (organized by the PB team), to which 3rd party developers can contribute PB-related stuff (e.g. libraries and sources)? I could imagine people would spend some money for a good Printer-Lib, a PDF-Lib, etc. Income can be shared between the developers and the PB group…

 

The forums are the central place for this, you can advertise your products here. While the PB-Market idea is interesting, I don't think I will go that way as it will ask a lot of work in development/maintenance, including contracts between all publishers etc. It's not a small thing to setup.

12.

Comparing PureBasic to other BASIC languages – what are the main points, with which PB stands out compared to them?

- fastest compiled BASIC

- smallest compiled executables

- more O/S (operating system) and uP (microprocessor) support than any BASIC

- largest built-in library support

- other?

 

To me, the strongest point of PureBasic is the included command-set, with clear, comprehensive naming and use. Once you have understood how to use a library, you can easily use them all. You don't have to bother about internal implementation, it just work. All features are important: a good IDE is essential, a good debugger, a good speed quality as well, strong native language features like list, map, array, complex structure, macro, unicode etc. What's make PB a great overall tool is because there are a lot of covered subjects.

13.

What are the biggest strengths and biggest weaknesses of PB from your perspective?

 

Biggest strengths:

    - Multi-OS (Window, Linux, OS X)

    - 1500+ commands (coherent naming and code style)

    - Modern (IDE, Debugger, Fast, 64 bit)

    - Still in very active development, including core language features

 

Biggest weaknesses:

    - Not a mainstream language unlike C/C++/Java and the like

    - Heavily depends on a small number of developers

14.

Will/can you work on some of named weak points?

 

Well, it's difficult to address the main weakness, but who knows what the future will bring ?

15.

What do you see as your (PB’s) most competitors? How do you see them compared to PB?

 

From what I can see, I'm not impressed very much by the competition. In fact, I even have the feeling there is less and less competitive alternative language like PureBasic. In 2012, your language has to provide native 64-bit support, Unicode, IDE, Debugger, Windows, Linux, OS X and much more. If it doesn't, you will hit a wall very quickly or loose market shares. In the PB competitors, I don't know of a language with all these features except may be RealBasic (I'm not talking of mainstream languages here).

16.

What do you say to people, which don’t believe, that large projects can be done with PB because of missing feature ‘xyz’?

 

There is no need to answer this question, as (very) large projects exist in PB since a while. The core language is versatile and fast enough to handle big projects without any issues. Our biggest internal PB project is the IDE, which is actually 123 000 lines, but it's rather small compared to other projects than users sent me.

17.

Can you tell us some examples you know of such big projects?

 

Well no, I can't communicate this without their approvals.

18.

In which cases the "main languages" like C, C++, Java, C#, etc. are the better choice for the programmer?

 

These are professional languages, it requires solid skills and understanding of programming. Now, if you aim to be a professional coder, it would indeed more appropriate to learn one of these mainstream language or you won't find a job !

19.

About what in the entire PB package you are most proud of, and with which you are less satisfied?

 

From a user point of view: I'm proud of having a complex and robust compiler. It's an achievement, as you have to deal with many different user inputs. Also the last 3D progress is very nice and I like that.

From an internal point view: the compiler code is now very old and difficult to maintain, I’m somewhat ashamed when I read some parts. But you know the n°1 rule: never change a working code.

20.

What are your favourite 3rd party extensions for PureBasic (tools, libraries, …)?

 

Good question, I don't use any

21.

Is there anything in PB’s history, which you would make different today?

 

A lot of things. But that's part of experience, so you can't really made history again. Now if I had to start such a project now, there are a lot of chances than internals would be very different. Probably outputting LLVM code instead of assembler for example. I wouldn't have spent time on PowerPC version of PB. I would have avoided assembly for libraries. And so on...

22.

We are switching to the tiresome topic “bug-fixing”:

1. Have you ever fixed a bug only to have it reappear in a later version?

2. Do you add bug fixes to a "test suite" to prevent them reoccurring?

3. Could the community create a formalized test suite for pre-beta launches?

 

  1. Yes, on the numerous bugs we fixed we had this case several time.
  2. When it's possible yes. The compiler has a lot of unit tests and every time a bug is fixed, a test is added to validate the fix. For a library bug, it depends of the library. For a GUI/Screen/Sprite bug, we don't have unittest as it's complex to test GUI rendering. The command can return the correct result but don't display the right thing. For other libraries like string, cipher, etc. we have a test suite as well (run by PureUnit, in all possible modes – Unicode-Thread etc.).
  3. Do you mean access to the test suite ? Well we could imagine it.

23.

Assuming you're doing a release-test, how does it look like before releasing a new version of PureBasic?  How does it look and how many time does it need, to build updated PB packages for each supported OS?

 

The unittests are run during the build for every platform. If one test fails, then the build is aborted and no package is created. Sometimes we need to re-launch the build script several times after fixing some bugs depending of the OS. All in all, it goes smoothly, and we need about 1 hour to build the 7 different packages (Windows32/64, Linux32/64, OS X/32/64/PPC) if all tests are successful (we use virtual machines, so we can build all OS in parallel).

24.

How do you schedule the work on different libraries? Some people are crying at each release of a new version, because OGRE was the only thing that has been touched or that has not been touched.

 

It depends – sometimes we work on big things, which don’t fit the deadline so we postpone them for the next version. About OGRE, the work is done in parallel by Comtois and G-Rom, so I just monitor and wrap the new commands (and also updating the OGRE core libraries). So when they are ready I wrap all the new commands and publish them. That's why it can be huge. I also have a big TODO list where I note all the things, which would be good to add. Then I estimate the time to do such or such feature and start the work.

25.

Ok, we come to the feature requests:

Many people seem to miss the possibility of multi-line statements (line continuation in the source) since years. Is there a technical reason for not implementing this?

 

Here is a scoop: it will be in the next version. It wasn't as easy as people think. The PB parser is somehow complex and you can't just add such feature like that. The most important to me was to avoid a compilation time degradation, so when I recently found a good way to do it, I did it with no speed penalty.

26.

Some people are complaining about feature requests, which are made already years ago and are renewed from time to time, and because of a missing (positive) answer they feel ignored by you… What do you say to them – are some things to hard to implement, are there other reasons…?

 

What I can say is we are reading all the features requests. We don't answer because we don't want the users to have expectation on a feature when we have no time frame about the implementation. Another scoop for you: the next 5.10 release will be a special “Granted wishes release” ! The beta will be out for Christmas, as a gift for the community

27.

Which criteria do you follow to decide if a feature request will be implemented or not?

 

There are several points to look:

    - Is it fitting the PB philosophy ?

    - Is it useful for more than one user ?

    - Is it worth the new command ? (If it can be done with a combination of 2 other commands, it is really worth it?)

    - Is it possible on the legal scheme ? (i.e.: we got some native mysql request, we would like to add it but the license forbids it. Same for GIF at time, now it's more or less an outdated format)

28.

I can imagine that’s hard to satisfy all user wishes and requests – especially the totally different interests of application and game/3D programmers. How do you handle these opposites while further developing PB?

 

I do it by reading the feature requests, with the team developer feedback and my personal experience. We always try to reach a usable state quickly in all domains than PB support. If a missing functionality is really hurting the library use, chances are high it will be implemented soon. For new library, we try to follow the standards, like XML, AES, JPG etc.

29.

Wouldn’t it be a good idea, to let the user vote for the most important features they would like to see (natively build) into PB?

 

The fact is it would put pressure on us, and I don't want that. The PureBasic development has to remain fun and it won't be anymore if we have to implement everything the users want (and it will be quickly a big mess).

30.

About the PB community:

The PB forums are an excellent place to discuss about PB development, to report bugs and feature requests, and of course to help each other by sharing tips and very useful code examples. So this is one of the real benefits of PB. Furthermore there is the “PureBasic Team Blog”.

What do you think about more “Web2.0” platforms, like a PureBasic FaceBook or Twitter account, which could help to “spread the word” and so extend the PB community / sell more licences?

 

To be honest, I personally don't like Facebook. I don't think it will bring anything for a programming language, but I stand to be corrected. If you think it could help, why not.

31.

I’m not sure (as I’m no FaceBook user too), but I think it can be worth the effort. But maybe that’s a topic, which could be discussed in the PB forum?

 

Why not.

32.

Why do you leave discussions of other languages in the forums? Don’t you see that as a problem and/or as advertising for other languages? Other forum moderators would delete such threads immediately…. You doesn’t seem concerned by it, or…?

 

I like competition, I'm not afraid of it. If someone wants to share his experience with another language, why should we delete the thread? We are on a PureBasic forum so chances are high than the reader has already registered PureBasic. And it can help anyway, PureBasic isn't perfect for any tasks (even if we try hard to aim to that ).

33.

Do you know about any (local) PB communities, and what the PB team think about this?

 

No, I'm not aware of local PB communities. It would be good indeed.

34.

Will there be a (larger) “PureBasic User Meeting” one day?

 

I don't know, such meeting is hard to setup !

35.

Are there any “PureBasic promotional items” available, like a PB T-Shirt we saw years ago? Where can people buy it? And if not through yourself, would you give a licence to a third party to produce and deliver such items?

 

It's not available, the t-shirt was done on demand :). I don't know if there is a demand for such items, if yes I will see what can be done.

36.

The website (purebasic.com) still looks quite simple. Competitors seem to do a better job on marketing & advertising (and probably selling) their product. This problem exists since ages. Any chance to increase quality of website purebasic.com?

 

It's a complex matter as the whole site has a lot of code within, mixed with the HTML rendering making any lifting very complex. If someone is motivated to work on it, why not, but I don't have the graphical skill to do it.

37.

If someone wants to support the further PB development – what are the possibilities?

 

You can help to spread the word, for example by telling it's done in PB in your about box, or in your documentation. There is also a donation button in your online account !

38.

Ok, maybe offering some official ‘Done with PureBasic’ logos on the PB.com website would be a good idea then? How about little competitions for such things like most exciting logos, demo programs (with source), etc.? If needed, you can contribute some prices for the best submissions, and will be able to use them…

 

That's a good idea.

39.

What do you think about “cheaper licence fees” for students, schools, etc.? This could “pave the way” into computer programming – especially for younger people.

Let’s say there is a school with a computer room and 20 PC – they will neither pay for each student, and hardly for any PC. Can they contact the support for a special offer?

 

Yes, as I got some demands, I will do a special price for school/company on the PureBasic ordering form.

 

Part 3 – the future of PureBasic:

1.

There are currently PureBasic versions for classic Windows, Linux, and MacOS actively supported. That's quite impressive and in the last interview you already said there are no plans to support further platforms.

 

Still, the already supported platforms change continuously. So let's concentrate on that:

- Windows 8 is already released with support for 'Modern UI apps' and it is available for desktop, tablets and phones with added support for ARM processors and new APIs (e.g. DirectX11).

- There are rumours Apple is exploring to change the processor platform again, maybe to ARM based processors for desktop, phone, and tablets. Similar to Microsoft with Windows and Windows devices.

- More and more devices are touch-enabled. New displays/monitors for desktop computers, and "touch mice" (classic mouse with added touch input).

 

How do you generally think about such innovations and changes?

 

I think than your still can't work seriously with touch based computer, so for now there is no so much changes. Windows 8 has introduced Modern UI, which will complicate a lot the design of applications, as there is no Modern UI toolkit (the only thing I found is a Photoshop template, seriously ?). You have to create all your buttons, list from scratch with a paint tool, this is unbelievable. Actually, you can do you own Modern UI app with CanvasGadget(), it will be the same. About ARM, it's mainly for phone tablet. If Apple chooses ARM for its mainstream computer, I guess we will have to add a new backend !

2.

Do you see PureBasic support some of the big changes in the future, or do you want PB for developing classic Windows/MacOS/Linux desktop programs only, for x86/x64 compatible processors?

 

We will follow the trend, but for now it is unclear for me, so we will focus on what we do best: desktop development.

3.

The Mobile Market is still growing, more and more people are using their Smartphone’s and Tablet's for doing things in and with the internet. One competitor (Basic4Android) has a great user-base, but is lacking in game-development and iOS. Others (AppGameKit, BasicGL, Monkey) can do games, but don’t have enough possibilities to create powerful applications.

Any chance that PureBasic will support the mobile market, e.g. simplified command-set for Android/iOS in a separate “PureBasic Mobile” version? I can imagine for such a “beast” people would pay for an extra licence…

 

I think it could be a mobile market support, but as you said there is not too much in common between desktop OS and mobile one. The apps are often very small, and designed especially for 'small' (in size, not resolution) touch screens. So basically it would be only core libraries, and may be game libraries. All the GUI part will be missing. Another issue is Android, being a mix of Java and native calls. I don't know how we could support this easily.

4.

If you consider to support further OS and/or processor types, which have the best chances to be realized? (Windows RT, Android, iOS, ARM, other…?)

And which are a "no way", because of technical reasons, too much effort, or you just don't want to?

 

All these are 'new' platforms, which needs a lot of dedicated time. Apple always change its technology, so for software like PureBasic, it's hard to follow (remember, Carbon is dead, PowerPC as well, the license which had forbidden use of any third programming tool (!)). If it was a mass market, we would probably do it, but as it stands, PureBasic mobile would be used maybe by a few hundred of people, which is definitely not worth it.

5.

Perhaps a LLVM to convert to different platforms would be a good idea?

 

Yes, I follow LLVM since a while and it would be no surprise if we decide to add a backend for it (instead of raw ARM one for example).

6.

Instead of compiling only to ASM, could there be byte-code generated for java virtual machines, enabling web development from a unified syntax?

 

I don't think generating Java bytecode is a good idea, because java on client is almost dead. Nobody has an updated java client, it's a whole mess. But it could be interesting to generate JavaScript for web development. This would even enable small mobile app (HTML5 based).

7.

Fred, what are your current plans regarding the Visual Designer? We have seen that a new one emerged and there were some rumours that it will be ultimately integrated in the IDE as a unified solution. Will this happen anytime soon?

 

Another scoop: it will be integrated for the next version.

8.

Some of the existing libraries are a little 'behind'. For example the email and FTP functions do not support SSL connections or even authentication. Regular Expressions support seems limited. Are there any plans to enhance this?

 

Yes, it's planned. May be not SSL support as it's a complex subject of its own but other improvement seems ok.

9.

The cross-platform feature (the same PB source code can mostly be compiled on each supported platform, as long you only use the PB command-set) is one of the real benefits of PureBasic.

But the GUI abstraction is limited and not up-to-date. Are there any plans to enhance this by a layout engine, auto adjusted control sizes, etc.?

 

Yes, it's planned. The IDE itself use a self-made layout library, that's why it does look good on every OS. We plan to make this library native, it should solve layout issues.

10.

Will you add more gadgets (e.g. a grid gadget, a ribbon trail, etc.) and support more GUI features and events for existing gadgets (like sorting of listicons, getting mouse-click in a specific cell, etc.) natively?

 

It is constantly improving. Adding a gridgadget() isn't as easy as it seems. Even the OS doesn't provide one. Some gridgadget libraries are sold at much higher price than the whole PureBasic package that gives you an idea of the work to do. Basically, the perfect grid would be Excel, so.. Ribbon and such are doable indeed, but we try to keep the cross-platform thing a reality. If you are using Ribbons, it won't work on Linux/OSX (at least not natively). That's why the GUI abstraction is a bit basic.

11.

Currently PB supports natively two important and useful data structures: Lists and Maps. Can we hope to have more of them in the future?

The most useful would probably be a BST (Binary Search Tree) and maybe an AVL-Tree. We can write them by ourselves, but a native support would make it a lot easier to use them with any data type, since we don't have a template mechanism like in other languages.

Adding a new data structure every now and then would be great in general (stack, queue, priority queues, heaps, etc.)

 

It could be interesting, yes.

12.

Do you plan the support for “real” cross-compiling, which means we can compile the source for MacOS/Linux also on Windows (and vice versa), compile for 64 Bit on 32 Bit systems (and vice versa)?

 

It's not planned, as we would need the whole toolkit for each OS, which is huge (and I don't even know if Apple would authorize the redistribution of the framework). On a side note, PB is not perfect enough to blind compile to an other OS and expect it will work on it. It sounds like a lot of work for a little gain.

13.

We have seen that you went to great lengths to keep support for older operating systems. Will this support be kept in future versions of PureBasic or it will ultimately be dropped?

 

It will be dropped at some time. As long it is too much work for an older OS, it will be dropped. For example we stopped the AmigaOS support since 4.0. The next version won't support OS X PowerPC anymore.

14.

PureBasic is a procedural language with several extensions. Will you ever support “real” OOP, or a more improved / easier method to (optionally) use it?

 

No. The command set is not OOP and it won't mix well. Either do a procedural or OOP language, but don't try to do both. It will end up like C++ where clean C++ sources are rare. Most are patches of C and C++.

15.

Beside the creation of dynamic linked libraries (.dll, .so, .dylib according to the different OS) with PB, it’s also possible to create own “user libraries” – thanks to ‘TailBite’. But that’s only an ‘in-official’ solution and not available for all OS, and most of all the created libraries often work only with the PB version they are compiled with.

Do you think about adding the possibility to create PB user libraries (sometimes called ‘modules’), to avoid the need for 3rd party tools with all their limitations?

 

For now it is not planed. We have a standard SDK for C/C++, and it is the one to use to do PB lib. The problem with PB-created 3rd party lib is it depends of all the internal PB commands. So if we internally change one of these basic commands, all the libs will be broken. Doing it in C/C++ reduces this problem as you usually only depends of the 'Object' lib, which is stable and not subject to change (at least from an API point).

16.

It’s possible to extend the PureBasic SDK with further information’s (e.g. documentation about internal structures, functions, …) to ease the creation of extension libraries for 3rd party developers?

 

Well, you only need to know about the object published in the SDK (ImagePlugin, SoundPlugin, Object, PureLibary). All other info’s are internal to each lib and subject to changes, so it is not a good idea to make these structures public.

17.

After all that questions about OS / processor support and specific topics we come to a more general outlook to PureBasic’s future:

 

What is your development focus for the future? Do you plan to enhance game development functionality (3D capabilities) or more the “professional usage” (application programming)?

 

It will be a mix of both, as you probably expected. PB isn't a game only programming tool, neither an application only tool. The 3D side has been recently updated and it will continue like that, until we reach a mature command-set.

18.

What do you see happening to PB short-term (next 12 months) and medium-term (2-3 years)?

 

On short term, we would like to address most of the recurrent shortcomings of PureBasic on already available platforms. On medium term, I would like to explore other approach for PB, but I can't tell more as it's still in early development and it will take some time

19.

Assuming there will be more PB versions, do you already know what (new) direction you want for v6 and v7 or is that too far to plan?

 

Yes, I basically know what v6 will bring, but as said I can't communicate for now on it.

20.

We know your famous “When it’s done” statement and that you don’t like public bug-tracking, case-management, etc.…

But what’s your current opinion about a public “PB roadmap” or other types of regular “developer information’s” (e.g. twice a year an outlook about what’s planned to extend or to change regarding the command-set, the IDE, specific tools, …) for instance in the PureBasic Team Blog?

 

The fact is we did that but it didn't worked out. When you put a functionality on your Roadmap, people are expecting it for the next version (which is logical), but sometime we change our mind, or we encounter unexpected problem and the feature is gone or postponed. Then people get angry and nobody is happy.

We don't communicate our roadmap, but I don't think it's a big problem anymore as core features are now stable and mature. It made sense at time to know if 'unicode' or 'double' support was ever planned because they are major features without which serious development is difficult. It's not the case anymore, the vast majority of things we add now are enhancements, not core features.

21.

There is the “Feature Request and Wish-list” area in the (English) PB forum. There can anyone post their wishes, suggestions, etc. – often is added “+1” by other users.

What do you think about a real voting?

What do you think about specific invitations (of you to the user base) to make suggestions in a certain area, for example commands for databases, mathematical functions, graphic functions or compiler options, IDE features, etc.?

 

We could enable poll in this forum, I will see if it is doable. Why do special invitations ? If someone feels than a lib needs improvement he can just post in the feature request forum so anyone can comment on it.

22.

As PB is growing/improving more and more: Are there any plans to raise the licence fees / introduce upgrade fees? (of course not for already registered users )

 

These are private company decisions. I don't like the upgrade-on-every-version scheme, so I don't do it for PureBasic. If some people think PB is too low priced, they can send us more money, it's always welcome !

23.

Shouldn’t there be a better marketing / advertising of PureBasic, to extend user base and to secure your income for a fulltime-job working on PB (plus maybe pay some other developers to do specific parts on PB)?

For example the well-done PB 5.0 full version could be given to editors of PC magazines for testing, Google Adwords could be used, etc.

 

This is a recurrent question. I have already tried Adwords, but it didn't bring any significant sell increase  (read: no increase). About marketing it's a complex matter (at least for me) and I don't have the time to do it. On another side, I think than PureBasic is becoming more and more popular in the programming world, due to the fact we are around since a long time.

24.

Are you looking forward to expand your company? PureBasic seems predestined for dividing in several company divisions…

 

Well, it would be great but the income isn’t enough to take the risk. You would tell me than with a bigger company you would sell more. May be. May be not.

25.

PureBasic already had its 10th anniversary. People of "the first hour" are getting older (most of us passed the 30 already!?), people are getting totally different interests in their life.

Do you see a "long time" future for PB, and how does it look like? How do you motivate yourself to code for PureBasic for such a long time?

 

I do see a long time future to PureBasic, and I bet it will be somewhat different to accommodate new things happening in computers. To me, web is the platform of choice for the future so we will probably head somewhat in that direction.

26.

Finally, a not so serious question: When are you touring through Europe (the world), so that PB users can invite you for a beer at every stop?

 

Haha, it's a good idea actually ! Will think about it

 

 

The “End”:

Thank you very much, Fred, for your time, for the interesting statements and honest words.

Enjoy Christmas and all the best for the New Year 2013!

 

You have the "last word" – what would you like to say to the PureBasic community?

A big thanks for being there and supporting PureBasic ! It's awesome to see there are many users still around after 5 or more years and still doing productive things with PB. Stay sharp and enjoy, we have great plans for the future !

© December 2012 by PureArea.net - All rights reserved.