Links| Forums| Comments| Report news
Chat| Polls| Newsticker| Archive

[Login] [Register] [Forgot your password?]

< Next messagePrior message >

Advent Calendar: Door 16 - GŁnter Bartsch
The 16th Advent calendar door is opened and we look forward to an anecdote GŁnter Bartsch.

At the end of August 2021, the developer had not only published the source code of his Amiga QuickBasic (AQB) compiler on GitHub, but also a first early version 0.7.0 and aroused great interest in the comments to our corresponding news item. With AQB, the author wants to provide a "modern, clean, OS-compliant and future-proof BASIC. An important feature of AQB are the modules: AQB has only relatively few built-in commands, but a - also syntactically - quite powerful module concept. The modules can be implemented fully transparently in BASIC (AQB) or also in C (GCC) or even mixed; AQB is fully link-compatible with GCC.

As the developer further explains, it should be possible to give AQB different "personalities" - currently only _aqb is implemented, which is intended as a default dialect and is oriented towards AmigaBASIC, QuickBASIC and FreeBASIC. But it should also be possible to give AQB a GFA, Blitz or Amos personality, for example. In general, the focus of AQB (at the moment) would be on system-compliant application development.

With version 0.8.0 he then introduced a source level debugger and since the last, current version 0.8.2 there are now instructions and functions for sound output, new tutorials and also a simple music demo programs.

Even though almost a year has passed since the last version, GŁnter continues to work on his project. As he tells us, there have already been quite a lot of further developments, which he "only" needs to finally bring into a release-ready state. We keep our fingers crossed for this and for the further development of his project and look forward to many more exciting discussions about it here. His anecdote or, in this case, short story :)

"The year is 1988. At the beginning of the year an event occurred that would change my life forever: I had gotten an Amiga 500 for my birthday. Ever since I had watched an episode of "ARD Computerzeit" on public TV in which the Amiga was introduced I knew: I want that computer and no other. At that time (I was 12) my funds were very limited - but at some point my parents had had enough of my whining so they fulfilled my wish.

Driven by a lot of euphoria and even more childish naivety and curiosity I had spent every free minute of the year (and also many minutes in which I was supposed to do other things) with this dream computer (I still couldn't really wrap my head around the fact that now one of these actually was sitting in my bedroom).

A lot of people would probably imagine that I mainly wanted to play games on the Amiga - but that wasn't the case. In fact I didn't have any games for it and being a true geek with no friends the temptation to drift into the gaming world through private backup copies was rather small.

Instead, I did with the new computer what I had done - again in the absence of other software - with my Commodore Plus/4 which I owned before the Amiga: I wrote programs in BASIC. On the Amiga that meant coding in AmigaBASIC which was supplied on the Extras disk.

Despite all the euphoria, I soon had doubts as to whether this really was the greatest tool for the job. The execution speed of the Programs might have been OK compared to my Plus/4, but the editor was extremely sluggish. Of course those were thoughts that I first had never dared to say - after all, the Amiga was the best and fastest computer in the entire universe and AmigaBASIC was the official BASIC, which came directly from Commodore, the company where (in my mind) those gods worked who had created this dream computer - how could there be anything better?

Luckily I got my hands on a copy of the german magazine "Amiga Magazin". Even though I certainly didn't understand all the articles in it, from studying it I did learn that there were other programming environments for the Amiga that could possibly represent an improvement over the AmigaBASIC.

And so it came about that, together with my mother, I trudged through the Christmas-decorated downtown Stuttgart heading for department stores and computer shops looking for a Christmas present. So I described to various salespersons my troubles with AmigaBASIC and boldly asked them about compilers and assemblers. Usually the last two terms confused the staff, but at least two of them knew about the problems with AmigaBASIC so each offered their respective in-house recommended solution for that. Luckily I had enough doubts right there on the spot about the "True Basic" which was offered to me in the local "Karstadt" department store that I encouraged my mother to let us try again somewhere else. At smaller computer shop called "Schreiber Computer" I was then offered a product called "GFA BASIC" and the saleswoman actually succeeded in convincing both my mother as the sponsor and me as the user.

Compared to AmigaBASIC, GFA BASIC turned out to be a downright revelation - speed, instruction set, documentation - all a difference like night and day, I was amazed! If there were any last doubts in my mind whether this investment was the right one (the label "Interpreter" on the box bothered me a bit, as I much rather wanted to have a true compiler), these were finally scattered on the day when I got my hands on a copy of the "Sonderheft 3: Basic und Spiele" issue of "Amiga Magazin". It contained an article comparing various BASIC implementations for the Amiga in which GFA BASIC did very well.

The first weeks with GFA BASIC were very productive indeed - all those small sample programs from the manual worked fine, a small vocabulary training program was implemented just as quickly as various small graphics and sound experiments.

Accordingly, I felt well prepared and even more motivated, to tackle bigger projects now. Among other things, I had a painting program in mind, a kind of DeluxePaint clone in BASIC (now that I have this great programming environment, I don't need to buy any more software, I can write everything myself - so I thought). The beginnings of these projects were always done easily, first successes came - opening screens and windows, drawing pixels using the mouse, no problem.

However, as the programs grew in size, so did the number of bugs - not surprising, I knew that even back then. However, those errors turned out to be increasingly difficult to find: Program functions that just worked perfectly suddenly refused to work at all, although the code in question was the same. Yes, even the interpreter's built-in commands occasionally stopped working they way I expected them to. I debugged deeper and deeper, wrote small test programs - most of which worked fine - but as soon as I put the code back into my big program, it suddenly behaved completely differently or crashed completely.

Of course, that didn't deter me one bit - obviously there was just a lot to learn for myself, obviously I just kept doing something wrong and that's why my programs didn't work. I quickly realized that the commands apparently interacted with each other in complex ways - with this insight I was then able to solve many of my problems. "Ah, I have to first set the foreground and then the background color, then it works" - that was the kind of discovery, which I diligently noted in the manual.

Over time, my hypotheses, with which I tried to explain to myself the behavior of the interpreter in particular and of the Amiga in general, grew more and more complex. Apparently there was an enormous wealth of secret knowledge there to discover about how these miracle machines actually worked. Of course, such secret knowledge wasn't to be found in the manual, but could only be acquired laboriously through many experiments and collected from many sources. I wasn't discouraged - quite the opposite, I was fascinated by the thought that there was apparently a mystical world to explore there and motivated by the idea of me maybe someday too would belong to that secret circle of people who possess this knowledge.

So, undeterred, I kept experimenting and consulted more and more literature. "GFA BASIC 3.0 - Training for advanced users" was one of the books from which I hoped for enlightenment. The book - published by GFA Systemtechnik GmbH themselves, at least - actually opened up new horizons for me. Some of the techniques in there I had never seen before, some of the commands never heard of - that most of the example programs on the floppy that came with the book didn't work for me unless I modified them astonished not me in the slightest. For one, the programs I had previously typed in from books and magazines hadn't usually worked right away either and on the other hand I was able to put all that secret knowledge I had accumulated up to that point to good use to get the programs running - which actually was successful for most of them.

Despite all these partial successes and insights - a real breakthrough never seemed to happen for me. My larger programs tended to stay quite brittle and so very slowly a feeling of frustration set in.

During my literature research I came across the book "AMIGA Programming with MODULA-2" from Markt und Technik publishing company. There was even a matching compiler available - though only a very limited demo version - on a fish disk. That then was once again another revelation: a true compiler, I can write real programs like the professionals - and they even worked! Everything so clear and structured everything does what it should, just as it says? Should something like this be possible should there exist a world without any mystical secret knowledge?

At that point, GFA BASIC was quickly forgotten in my life - I was fascinated by Wirth's languages, so I spent the following years happily coding in Modula-2, Pascal and Oberon, but that's another story.

It was then more by chance that at some point during this period I found out what was behind my experiences with GFA BASIC: in some magazine article GFA BASIC 3.5 was reviewed and the author casually mentioned that while the first versions of GFA BASIC for the Amiga were quite buggy, the situation seemed to improve with each update. GFA BASIC had errors?! This product I purchased for money that was packaged so neatly and made by absolute professionals could have been not perfect? Those many surprising properties that I had so painstakingly explored could it possibly be that they were not intended at all?

I can hardly put into words what I felt when the full dimension of these insights slowly dawned on me: I simply had never considered that a bug could not be my mistake! What's more, probably the only mistake I had made was that I had never sent back this software registration card that came with the box - so I was never informed about available updates.

Well, today I like to think back to those days with a smile - those were very important lessons I learned back then, many of them still guide me to this day. Without the Amiga, without these programming environments - I would have never gotten to where I am today, I am very grateful for that." (dr)

[News message: 16. Dec. 2022, 06:51] [Comments: 0]
[Send via e-mail]  [Print version]  [ASCII version]
< Next messagePrior message >

Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2022 by - all rights reserved.