The AROS Show is here to help provide AROS information and to help promote the AROS Operating System.

Wednesday, January 16, 2008

Staf Verhaegen Interview!


Hello Staf, thank you so much for taking the time to do this interview. Could you tell us a little about yourself and how you became interested in Amiga's?
I have a long history in electronics and computers: it started with some hand held game machines, followed by a Philips Videopac G7000, Commodore64, Amiga 2000, Amiga 1200 and now also some Linux machines.

The Commodore64 and Amiga's came here because I had friends that also had these computers. I enjoyed the C64 scene with several of my friends for a lot of years, copying disks, playing games etc. When I had a friend that had an A500 computer and saw the graphic capabilities in demos and games, I knew I had to have one of these machines myself. When I was at the university we were allowed to use some HP UNIX machines and there I fell in love with the UNIX way of doing things. This was also the time that the WWW (World Wide Web) materialized starting with the Mosaic browser. Ah, those memories of these amateur web sites full of blinking text and animated GIFs, hidden areas in other university websites, ...

I also started programming on my C64 mostly in Basic. First by typing in program listings from magazines and trying to change them. Later on a program to print leaflets for cassette tapes, a computer version of the Marble Solitaire board game, a program for a running contest for youngsters organized in our village. The latter I started after a discussion at the counter of the local pub after a guy, a DB admin said he could not do it. I said I could do it with my C64 and I succeeded. :)
Later on I converted this program to AmigaE on Amiga and I also started investigating the C programming language.

Unfortunately computers is only one of my hobbies often leading to very limited time I can spend on this. I am also a supervisor of the local chiro, a Flemish youth moment analog to scouting. I also love to taste Belgian beers socializing with friends to taste new or rare beers. Analog to wine tasting not to socializing by getting drunk together, ...

How long have you been coding for AROS? Why did you decide to work on AROS?
Like I said in my previous answer I did get used to the UNIX environment while at the university. But I saw some things done more efficiently in the Amiga OS; especially the message passing through pointers and the Amiga shared libraries and devices architecture.

After the banktuptcy of Commodore I also felt that this nice technology should not die an ungrateful death. So I think I almost from the start in 1994-1995 have been following AROS closely on Usenet groups and mailing lists and then also gradually started fixing bugs or implementing new features for AROS.

What work have you completed for AROS up to this point? Please feel free to include details.
I have been doing bug fixes all the time all over the code. Then ported the Regina Rexx interpreter and tried to make it as compatible as possible to the ARexx on Amiga OS.

Afterwards I have been working on cleaning up the AROS build system. This was actually a (very) frustrating period for me and the rest of the AROS developers. I was not at the university anymore and only got a slow Pentium-II machine with not enough memory in it. Changing in the build system often leads to build failures so ideally one would test a full fresh build of the native and the hosted build. But on the machine I had this would take several hours for each of them. So I often commited code that would break the build on the server and for other people. I think due to this I earned the mark as a sloppy programmer by some other AROS developers (which of coure IMHO is totally wrong :) ).
Also this work is actually not finished yet as the current implementation still lacks certain features and the usage in all the mmakefile.src files in the code repository is still a mess.

In your opinion, are there any major improvements that still need to be added to the core of the AROS operating system?
I don't think it is so much things need to be added but work needs to be done to work out all the quirks and incompatibilities in the core. I would love to have a few more people that want work on this. Rob is likely going to work on DOS in the future but I think he is already doing too much work in too many areas. Some additional low-level developers would speed up this development process more. But doing low-level stuff is often considered non-sexy and does not earn much recognition.

About the Regina Rexx port for AROS, are you still maintaining it? How compatible is it to ARexx?
It's been a long time ago since I committed something to this code. It is still in a kind of maintenance mode as I may have a look at it when people complain about it. But due to lack of complaints, I don't think anybody is actually using it on AROS.

Up to now there hasn't been a m68k version so the real compatibility with ARexx is untested. I added the ARexx extensions to Regina and tested it with a few scripts of mine, but no real in depth compatibility testing was done.

I would still love to develop it further in a fully compatible replacement for ARexx on AROS/MOS/AOS4/OS3.x but I think there will always be a higher priority AROS needs in the coming months/years.

What AROS specific projects are you working on now?
Currently I am working on stabilizing the ABI for AROS on i386. I left the build system in a somewhat working state for this ABI work because I think this is currently the highest priority. Up to the point that the ABI is fixed we can't guarantee backward compatibility and I can now already say that once we switch to version 1 of the i386 ABI all programs available on the AROS Archives will stop working.

So when might this change happen? Will there be some kind of workaround that will allow us to run the programs already written for AROS? Is there something current AROS application developers can do to prepare for this change or should they just continue what they are doing and everything will be fine?
The change will happen when it is ready and I can't predict now when that will be. I hope to do it sometime this year though. I always found that development for AROS was already targeting higher level and more sexy things before we had some solid ground. I guess, this is now the price we have to pay for that.
I think it is almost impossible to program a workaround as some very basic things will be changed and I think it would be best to go for the short pain of forcing an update to everything. Changing to the new ABI will only be a recompile of your program and I do plan to set up a nightly build of the new system some time before the big change will be carried out.

Have you thought about what projects you would like to do for AROS in the future?
Sure, I have a TODO list ranging from low-level to higher-level stuff. I think I can easily fill up my free time in the next century with it.

But the biggest project I am thinking about is an Amiga development environment. This would be an environment based on the AROS development files and build system that allows you to write Amiga programs for all amiga-like systems (AROS/MOS/OS3.x/AOS4) without any change needed in the source code. It should also be integrated in several IDEs (Golded,Murks, eclipse, ...) so people can build Amiga programs on any system they like; for all Amiga-like OSes.

I noticed you recently posted suggestions on a package manager for AROS on AROS-Exec.org. Some say AROS doesn't need a package manager. Why do you think AROS would benefit from one?
I was one of the persons being very skeptical about a package manager. I am convinced that package managers as they exists in the UNIX world (like rpm and dpkg/deb) are not the way to go forward. They actually don't solve the problem, are bloated, unnecessary divide users in camps, ... People can read the post themselves if they want to. I do think it should be very easy to install, de-install and upgrade software on AROS. I do think some standardization is needed so that all programs use the same mechanism to indicate dependencies and version number for upgrading. But I do also think that if this standardization is done well the program overviewing the packages just needs to scan what is installed on the disk and what is available on web sites and just need to download updated programs and start the installation procedure that is delivered with the package.

Are you an Amiga OS4 developer as well?
I am porting ScalOS to OS4, yes. I started this port after I read an interview with Jürgen Lachmann where he declared that he did not understand people limiting the OSes that a program should run on. In a reply I offered him to port Scalos to OS4 :)
As they say, the rest is history.

For me this was a nice occasion to get familiar with the OS4 ABI. This was also done in the light of the possibility of making AROS in the future, OS4 compatible.

Unfortunately this OS4 porting has already been used against me by some close-minded people to paint me as a traitor to the AROS cause. I hope I have shown in the last months that this is not the case.

There has been discussion about OS4 compatibility built into AROS. What are your thoughts about it? How much does it differ from AROS? How difficult would this be to implement?
I don't think it is so much different then OS3.x or MOS and that compatibility can be easily added by adding support for it in a few build tools. Of course this may change in the future if the extended library interface system will be used for things as object oriented programming. If this is done we can then see if we want to support that also in AROS.

Have you used MorphOS at all? Do you have any thoughts about it?
No, I haven't used MorphOS yet. The only PPC equipment I have at home is an A1SE and AFAIK it does not run MorphOS. I don't want to stir up old fights here but I personally stayed away from the blue camp because I don't like the hard and confrontational business tactics of BBRV. But I don't let this personal reference get in the way of collaborating with or helping the users of MorphOS. They are also part of the big Amiga family.

How did you learn how to do the low-level coding that you do for AROS?
By browsing the code that was available and trying to understand how it all fit together. Also I'm not programming at the lowest level of AROS, these are the hardware driver writers, which is not my cup of tea.

Do you have any advice for beginners who want to learn to code for AROS?
I find this the most difficult question. I think it will depend much on the person, but things I advice to do:
- learn C it is a necessity
- try to get familiar with the Amiga way of doing things and not try to force other ways of working (like for example POSIX) into AROS.
- wander around on the AROS website, especially the developer section. Although parts are behind times it will teach you how to get started.
- find something you want to improve or add
- try to understand what already is available and discuss your ideas with other AROS developers on the maillist, aros-exec.org or on IRC
- implement it and finally wait for an AROS Show interview ;)

What programming languages do you know?
Already a lot of languages have passed my way; for programming C64 basic, Amigabasic, AmigaE, C, C++; for scripting ARexx, perl, python, csh and currenty I'm also using matlab a lot at work for data manipulation. I think any good programmer can adapt quickly to a new programming language. From the other side, certain languages are more lethal in the hands of bad programmers then other languages. This is also one of the reasons I'm wary of switching to C++ for lower level stuff in core AROS.

Are there any particular applications you would like to see available for AROS?
A good debugger. Me and gdb never have been good friends; even when run through a GUI like DDD.

What other operating systems do you use?
I'm a big linux user at home (Centos 4.6 on my Pentium 4 1.7 GHz desktop machine, Debian 4.0 on my A1SE, Ubuntu server on my sun ultra 5 used as
a firewall) and at work. I sometimes need to boot into Win2000 at home because the IT people at my company can't get their head around and make the VPN infrastructure linux compatible.
Of course I also use OS4 on my A1SE most of the time when working on the Scalos port.

What are your thoughts on the progress of AROS in the last couple of years?
Although recently the activity has increased again there have been dark times with some major developers leaving or becoming inactive. I hope it will increase even more in the future.

Is there anything at all you would like to add?
We should all be good members of the Amiga family and let the business people fight their fights. We should take over with AROS if they can't clean up the mess and otherwise be a good companion. Be open minded!

4 Comments:

Blogger rob said...

Thanks Staf and Paul, this is a great interview.

Staf is doing some of the most important and least glamorous work in AROS, and is doing a great job with it. You all owe this man a lot!

And yes, I'm probably spread to thin. You can help Staf, me, everyone by learning to code ;)

5:00 AM

 
Anonymous james007 said...

Great interview! Its very interesting to read about the devs and their plans for AROS.

Now when do we see AROS beta 1.0? :-)

7:06 PM

 
Anonymous craid-hjb said...

Very nice interview! Staf thanks a lot for all your contributions, you really did a lot for AROS.. we still would have been nowhere without all that! I hope you are going to succeed with ABI v1! Have fun! :-)

7:13 PM

 
Blogger Jackline said...

Hi Nice Blog.web based punch clock Labor Time Tracker is a “labor time tracker” for your business. It is a smarter, easier and faster way to track employee time for payroll and job costing.

10:50 PM

 

Post a Comment

<< Home