By Michael Webb, Publisher and Editor-in-Chief, See staff list for e-mail address
I've had a fun time with my Amiga lately, because I recently got a "new toy."
More specifically, I decided to buy HiSOFT C++ from Oregon Research after receiving their "Save Our Business" mailing back during the holiday season. Admittedly, a development application isn't the kind of thing that would get most people jumping for joy, but I am a hobbyist programmer, and in fact am working towards a degree in Computer Science (so I must like it!...either that or I'm nuts..).
Unfortunately, however, my days as a developer have not been the brightest. I fooled around with BASIC in several environments, but never went very far, as I saw BASIC as inherently limiting. I tried doing some assembler, but really didn't have the knowledge and experience needed in order to become comfortable with it. I tried several C compilers on the Amiga (and even one PC one), but never had much luck (the very ancient version of Lattice couldn't even properly compile a simple "Hello World" program I typed in from some book, and DICE just wasn't, in my opinion, very beginner-friendly). I ended up becoming an expert with the C/BASIC-like TI-BASIC environment on Texas Instruments's TI-85 and TI-82 graphing calculators. It is a fairly powerful and flexible language, but the machine itself (essentially a handheld computer) was too limited for anything particularly ambitious.
But then I happened upon HiSOFT's new environment. I have become understandably jaded by my programming experiences, and was expecting yet more frustration from this latest effort. What I got, instead, was amazement. Amazement, that is, in that HiSOFT C++ is a very well-integrated, powerful, user-friendly development environment, especially by Amiga standards.
As indicated by the name, HiSOFT C++ supports C++, or essentially good old ANSI C with objects, classes, and the like added in, if you care to use it. If not, standard ANSI C is just fine. The compiler can target anything from the 68000 to the 68060, including the 68881 and 68882 floating point units.
As indicated by the title of this article, this is somewhat of a "preview" review. I don't want to imply that a more thorough review is coming up, however; the main reason I'm doing a preview is that I'm too new at large-scale programming to really give this compiler a complete take. Instead, what I will do is discuss it from my limited perspective, as a beginner attempting to get started with C programming.
HiSOFT C++ has a very well-done user interface, somewhat unusual for a non-MUI application. I believe we can attribute that to a common heritage with Cinema 4D, another non-MUI application with a good GUI. As I mentioned, HiSOFT C++ is well-integrated. It includes an editor, and can compile and run directly from it. For more complicated efforts, the developer has a comprehensive project manager at his or her disposal. All of these workings can be placed on your screen of choice. There is online help that seems a bit quirky, but provides extremely comprehensive information on everything from the environment itself to specific C programming information. In addition to this documentation, there are several informative programming examples provided, including a complete and fairly complicated graphical game.
The editor should feel comfortable to those familiar with CygnusEd. It also features keyword highlighting (in other words, different colors for different types of text), and will do some tab/indentation handling automatically.
Again, I don't have enough experience either with HiSOFT C++, or with C compilers in general, to give detailed information about the quality of this environment. I am impressed with that I have seen, however. And when I feel ambitious, I might try out DevPac 3, an assembler environment, that was included.
As I mentioned, the online help is a little quirky. My biggest complaint is that the scrolling feels somewhat unnatural (the viewer mimics AmigaGuide somewhat, but is definitely a custom job). Overall, it is very useful. However, it takes the place of written documentation, and as good as the online documentation is in this case, it's always useful to have a book to take aside, or flip through, while all sorts of code is all over the screen.
The editor also has a few strange tendencies, mainly in the form of editing functions (for instance, I would like "Del" to clear the currently selected block, not just the current character). A lot of this is attributable to a lack of standards in certain areas of Amiga GUI functionality, whereby developers are left to improvise.
On the subject of documentation, I'm just a bit confused as to whether 68881/68882 optimization should be used with 68040/68060 optimization, or if the latter assumes the presence of an internal FPU (though that wouldn't necessarily be a safe assumption, would it?). This should probably be made a bit clearer, and maybe there should be some additional options, such as "68040 without FPU, 68060 with FPU," etc. Probably the best way to learn more about this is to actually write some code whose performance will vary with optimization type, and run tests. Personally, I haven't had a chance to experiment with this.
I am not qualified to go into much greater depth in this category. I have been pleased with most of what I have seen so far, and any difficulty I have had has been, for the most part, all a matter of getting used to HiSOFT C++ and C in general.
HiSOFT C++ comes in two forms, one aimed at developers ("Developer Version," $299.95 US), and the other without a "Source-Level Debugger" and "Easy Objects Library" (I have only a vague idea of what those are anyway) ("Lite Version," $169.95 US). Being a beginner, I took the latter option.
I'm extremely pleased with HiSOFT C++ so far, and look forward to finally really delving into Amiga C(++) programming. The only things really missing are up-to-date programming references. If you're new to C, a book such as Paul Overaa's "Mastering Amiga C" is essential. To go beyond the basics, you need Amiga-specific references, such as the Style Guide Reference Manual, and perhaps most of all, the all-important ROM Kernel Reference Manuals (RKM's). I have a rag-tag team of references from various (old) versions of the AmigaOS in my collection, and it sure makes [attempting to] learn the material, well, "interesting." Unfortunately, AmigaOS 3.1-current references are almost nonexistent. Come on, Amiga, let's do some publishing! To Amiga International's credit, however, the fairly recent Developer CD has a great deal of useful information, documentation, and examples, and I'd recommend it whole-heartedly for anybody trying to get into Amiga-specific programming.
But on the software end, HiSOFT appears to have a real winner in the form of HiSOFT C++. It is quite up-to-date, in the sense of providing an integrated environment, as well as diverse CPU support, and is highly user- and beginner-friendly. If you are thinking of trying to learn Amiga C programming, HiSOFT C++ is a great way to start.
Return to the April 1998 (Volume 2 Issue 9) Main Index