Was there ever an official explanation on why AmigaOS 2.0 offered two similar GUI gadget toolkits, in the form of BOOPSI and GadTools?

Or, to put it in another way, why were not GadTools gadgets simply offered as BOOPSI classes?

  • BOOPSI to me always felt like someone at Commodore had just taken a class in object oriented software design, was completely brainwashed by all the buzzwords, and just had to find a way to bolt it on to the existing system. – pipe Sep 9 '16 at 7:18
  • @pipe: eh, can't disagree much. The implementation especially ended up being slow. A linear search to access trivial getters?!? – user180940 Sep 27 '16 at 2:29
  • While I respect Commodore, perhaps apart from their marketing, the mere sound of BOOPSI indicates it isn't ideal! – nsandersen Dec 10 '16 at 0:42

I don’t know whether an official statement exists, but the most plausible explanation is that these were parallel developments. Such waste of resources was the norm at Commodore and is best illustrated by the release of the CDTV, using an extended version of the 1.3 operating system, when the version 2.0 was already released with a A3000. Of course, several efforts spent on extending the 1.3 version were not necessary if they coordinated with the development of the 2.0 version instead.

Gadtools is a library that doesn’t require version 2.0 for its features and there is indeed a pure 1.3 version of that library, I have seen in a developer archive. The same applies to the asl.library, which settles on gadtools for its UI. Of course, the version finally shipped with Amiga OS 2.0 was adapted to use the same color scheme/look&feel as the BOOPSI classes, but as you noted yourself, there is no interaction between these two features.

BOOPSI on the other hand, has been developed for Amiga OS 2.0 in the first place, as it requires several fundamental changes to the intuition.library to work. As far as I know, starting with the 3.0 version of the operating system, the gadtools.library has been adapted to use some of the BOOPSI features, however, it has to stay compatible with the 2.0 version.

  • Indeed, in the post-3.1 leaked source code, Gadtools gadgets are implemented as a private BOOPSI class (one class implements all gadgets, the base of OOP!). I too remembered a 1.3 compatible gadtools.library being mentioned at the time, but could not find any source for it. – user180940 Jan 26 '17 at 18:18

Both GadTools and BOOPSI were addressing limitations of Intuition before Kickstart 2.0, but from different angles. Intuition provided a great deal of flexibility in how a programmer created and displayed GUI elements. That was great for custom designs, but made it much more work to create the rote normal types of GUIs that many applications used. Also, the flexibility led to a lack of standards in GUI implementation, which created confusion among users.

GadTools addressed these two problems by simplifying the programming necessary for most application GUIs and also providing a means of standardization to make more applications look and work similarly, thus easing the learning curve for both programmers and users. It is also noteworthy that there was a new GUI "Style Guide" put forth by Commodore at the same time as Kickstart 2.0 release.

BOOPSI was there to enhance the ability for programmers to create fully custom GUIs, which was the tradition the platform already had with Intuition. However, programming GUIs is arguably better when using GUI frameworks that follow the Object-oriented (OO) paradigm. So, BOOPSI provided this paradigm for Intuition programmers that still wanted to go the customized GUI route, rather than use GadTools and "look like all the other programs."

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.