TweetFollow Us on Twitter

January 92 - In Transit to MacApp 3

In Transit to MacApp 3

Howard Katz

I've been away from FrameWorks for a few months, but I haven't been away from the Mac and MacApp. I've made a move from Pascal to C in my own programming work-initially, with a lot of trepidation-and I've also done some playing around with beta versions of MacApp 3, pursuant to jumping into C++ with both feet. First, the news…

MacApp 3 final-getting close

According to Tom Chavez, MacApp's product manager at Apple, there are about 125 MacApp 3 beta sites out there, all merrily compiling away on beta number 3, digging up bugs galore. It saddens my heart to tell you this, but yes-there are bugs, though the number is diminishing with each successive beta release.

As I write, beta number 4 will soon go out to the seed list, a few short weeks before Christmas. If schedules hold, the final release of MacApp 3 should be finished and ready to go by the end of January-theoretically, about the time you're reading this. Tom says that even if that happens, though, it's unlikely that the documentation will keep pace with the software development, so you probably won't see a version that APDA can ship on the street before MADA's Orlando conference in February.

Ditto to Jesse

Jesse Feiler wrote a nice little piece for the last FrameWorks on his experiences in moving from MacApp 2 and Object Pascal to MacApp 3 and C++. I suspect the information that Jesse provided will be helpful for other developers who are going to be making the same move. It was for me.

In getting ready to move into C++, I've just made a similar though smaller transition of my own-from Pascal to C. I can strongly echo at least one of Jesse's sentiments-if you're going to make the language jump, dive right in. Stop reading about the language, just do it.

I had a lot of trepidation before making the move, and about one anxious week of trying to figure out what things weren't working and why. But that was it; it was relatively painless.

I spent four months on a C language programming project about four years ago, so this wasn't my first exposure to the language. But it didn't "take" very well the first time around. This time, for whatever reason, it did. I'm enjoying it.

Mostly bigger, hopefully better

I finally got a copy of MacApp 3 running on my system, though I haven't done anything serious with it yet. I'm still in the MacBrowse exploring stage. As it is, MacApp 3 grunts and wheezes and barely runs on my machine. I've an old, stock standard Mac II. I had to dig into the bank account to upgrade my RAM from 5 to 8 megs to get MacApp 3 to compile at all, and it complains bitterly at that. MacApp 3 development really requires 9 megs, or 8 megs and virtual memory, and that I don't have at the moment.

This seems pretty incredible to me. I can remember-though I'm not sure I want to-compiling MacApp applications on a Plus. Such a thing is no longer within the realm of possibility, even as a thought experiment. The main villain, I'm told, is CFront, which requires-this is no typo-5 megs to run. Great Caesar's ghost!

It seems that just about everything about MacApp 3 is bigger, and that doesn't necessarily mean better. Disk space requirements provide another example. I've got an external 40 meg drive hung off my machine that I use only for occasional programming projects, and amazingly enough, it's too small. I used to do everything on a 40-meg hard drive; now it's not even large enough for MacApp, let alone anything else.

It's easy to see why when you look at the numbers. My MPW folder, little changed from the way it arrived in the mail, is well over 12 meg, and my MacApp folder is over 21. The latter number, on your system, will depend on the number of different versions you need to compile MacApp in. There used to be just two: "Debug" and "NoDebug." There are now a minimum of four, when you factor in whether or not you're supporting System 7. Just my ".NoDebug Files" folder, created by MacApp, is well over 3 megs.

New idioms galore

RAM and disk requirements are a downer, and I haven't even talked about compile times yet. But everything else is peachy-keen. There are new idioms galore. How's the following for a good example of some of the potentially baffling and interesting new things in MacApp 3? This little gem is right out of TObject:
pascal void TObject::UpdateDependents(
                ChangeID theChange,
                TObject* changedObject,
                TObject* changedBy)
{
CDependentIterator iter(this);
for (   TObject* dependent = iter.FirstDependent(); iter.More();
        dependent = iter.NextDependent())
    {
        dependent->HandleUpdate( theChange, changedObject,
            changedBy);
    }
}

Coming into MacApp 3 from an MacApp 2 and Object Pascal background, I count at least five idioms here that are new to me. If you're new to C and object programming in particular, probably everything looks at least slightly bizarre. Even if you're an old and experienced C hand from way back, there are strange things happening here. The three clauses that determine the boundary-condition behavior of the "for" loop, for example, probably look somewhat, well, wrong. And yet, they do make sense-eventually.

How about the declaration "CDependentIterator iter(this)" in the above sample? That's worth at least a few minutes of silent contemplation the first time it's encountered in code. I know what a "T…" class is; what's a "C…" class? Can we all say "stack-based object" in unison? In other words, an object declaration where we really have the object itself, and not an indirect reference to one through either a pointer or a handle.

And what about the parameter the function takes-"this" in the above example? We've all been hearing about constructors; here's one in the flesh.

What else? What's a "CDependentIterator" anyway? Iterators are one thing; dependencies are something else again. The combination of the two is only slightly more potent than the nuclear-powered salsa that took my mouth out of action for two hours yesterday at lunch.

TObject, by the way, is quite a bit more beefed up than what I'm used to from earlier incarnations of MacApp. It's hard to believe this class once had a grand total of four-that's 4-methods, and that they were all we needed. By my count, TObject now has at least 36 methods. MacApp 3's new dependency-notification mechanism accounts for a good number of them.

References to the rescue

I had a few books open next to my machine as I MacBrowsed my way through the MacApp 3 source code. Occasionally I'd venture over to Harbison and Steele, the "official" C language reference manual. I'm told there's a C++ version out as well, but I haven't seen it yet.

Kernighan and Ritchie's "The C Programming Language" is also highly recommended. It's from Prentice Hall. Make sure you pick up the second edition when you go shopping.

I'll put in a plug for one other C++ language reference that I find myself dipping into and out of when I have a few moments to spare, and that's Dan Weston's Elements of C++ Macintosh Programming. Dan's discussion of C++ language features is based around a class library that he develops in the book. In many respects it looks like MacApp-two of the main classes are called "TApp" and "TDoc," respectively. Dan's a MacApp programmer from way back and makes the odd appearance at MacApp conferences. I've been enjoying the book and finding it useful.

I'll be picking up some of the other "great" C++ references over the next few weeks and will try and do some quick reviews in columns to come. In the meantime, I hope you had a good Christmas season and are looking forward to a sunny vacation in Orlando. Florida, watch out!

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Fallout Shelter pulls in ten times its u...
When the Fallout TV series was announced I, like I assume many others, assumed it was going to be an utter pile of garbage. Well, as we now know that couldn't be further from the truth. It was a smash hit, and this success has of course given the... | Read more »
Recruit two powerful-sounding students t...
I am a fan of anime, and I hear about a lot that comes through, but one that escaped my attention until now is A Certain Scientific Railgun T, and that name is very enticing. If it's new to you too, then players of Blue Archive can get a hands-on... | Read more »
Top Hat Studios unveils a new gameplay t...
There are a lot of big games coming that you might be excited about, but one of those I am most interested in is Athenian Rhapsody because it looks delightfully silly. The developers behind this project, the rather fancy-sounding Top Hat Studios,... | Read more »
Bound through time on the hunt for sneak...
Have you ever sat down and wondered what would happen if Dr Who and Sherlock Holmes went on an adventure? Well, besides probably being the best mash-up of English fiction, you'd get the Hidden Through Time series, and now Rogueside has announced... | Read more »
The secrets of Penacony might soon come...
Version 2.2 of Honkai: Star Rail is on the horizon and brings the culmination of the Penacony adventure after quite the escalation in the latest story quests. To help you through this new expansion is the introduction of two powerful new... | Read more »
The Legend of Heroes: Trails of Cold Ste...
I adore game series that have connecting lore and stories, which of course means the Legend of Heroes is very dear to me, Trails lore has been building for two decades. Excitedly, the next stage is upon us as Userjoy has announced the upcoming... | Read more »
Go from lowly lizard to wicked Wyvern in...
Do you like questing, and do you like dragons? If not then boy is this not the announcement for you, as Loongcheer Game has unveiled Quest Dragon: Idle Mobile Game. Yes, it is amazing Square Enix hasn’t sued them for copyright infringement, but... | Read more »
Aether Gazer unveils Chapter 16 of its m...
After a bit of maintenance, Aether Gazer has released Chapter 16 of its main storyline, titled Night Parade of the Beasts. This big update brings a new character, a special outfit, some special limited-time events, and, of course, an engaging... | Read more »
Challenge those pesky wyverns to a dance...
After recently having you do battle against your foes by wildly flailing Hello Kitty and friends at them, GungHo Online has whipped out another surprising collaboration for Puzzle & Dragons. It is now time to beat your opponents by cha-cha... | Read more »
Pack a magnifying glass and practice you...
Somehow it has already been a year since Torchlight: Infinite launched, and XD Games is celebrating by blending in what sounds like a truly fantastic new update. Fans of Cthulhu rejoice, as Whispering Mist brings some horror elements, and tests... | Read more »

Price Scanner via MacPrices.net

Verizon has Apple AirPods on sale this weeken...
Verizon has Apple AirPods on sale for up to 31% off MSRP on their online store this weekend. Their prices are the lowest price available for AirPods from any Apple retailer. Verizon service is not... Read more
Apple has 15-inch M2 MacBook Airs available s...
Apple has clearance, Certified Refurbished, 15″ M2 MacBook Airs available starting at $1019 and ranging up to $300 off original MSRP. These are the cheapest 15″ MacBook Airs for sale today at Apple.... Read more
May 2024 Apple Education discounts on MacBook...
If you’re a student, teacher, or staff member at any educational institution, you can use your .edu email address when ordering at Apple Education to take up to $300 off the purchase of a new MacBook... Read more
Clearance 16-inch M2 Pro MacBook Pros in stoc...
Apple has clearance 16″ M2 Pro MacBook Pros available in their Certified Refurbished store starting at $2049 and ranging up to $450 off original MSRP. Each model features a new outer case, shipping... Read more
Save $300 at Apple on 14-inch M3 MacBook Pros...
Apple has 14″ M3 MacBook Pros with 16GB of RAM, Certified Refurbished, available for $270-$300 off MSRP. Each model features a new outer case, shipping is free, and an Apple 1-year warranty is... Read more
Apple continues to offer 14-inch M3 MacBook P...
Apple has 14″ M3 MacBook Pros, Certified Refurbished, available starting at only $1359 and ranging up to $270 off MSRP. Each model features a new outer case, shipping is free, and an Apple 1-year... Read more
Apple AirPods Pro with USB-C return to all-ti...
Amazon has Apple’s AirPods Pro with USB-C in stock and on sale for $179.99 including free shipping. Their price is $70 (28%) off MSRP, and it’s currently the lowest price available for new AirPods... Read more
Apple Magic Keyboards for iPads are on sale f...
Amazon has Apple Magic Keyboards for iPads on sale today for up to $70 off MSRP, shipping included: – Magic Keyboard for 10th-generation Apple iPad: $199, save $50 – Magic Keyboard for 11″ iPad Pro/... Read more
Apple’s 13-inch M2 MacBook Airs return to rec...
Apple retailers have 13″ MacBook Airs with M2 CPUs in stock and on sale this weekend starting at only $849 in Space Gray, Silver, Starlight, and Midnight colors. These are the lowest prices currently... Read more
Best Buy is clearing out iPad Airs for up to...
In advance of next week’s probably release of new and updated iPad Airs, Best Buy has 10.9″ M1 WiFi iPad Airs on record-low sale prices for up to $200 off Apple’s MSRP, starting at $399. Sale prices... Read more

Jobs Board

Liquor Stock Clerk - S. *Apple* St. - Idaho...
Liquor Stock Clerk - S. Apple St. Boise Posting Begin Date: 2023/10/10 Posting End Date: 2024/10/14 Category: Retail Sub Category: Customer Service Work Type: Part Read more
*Apple* App Developer - Datrose (United Stat...
…year experiencein programming and have computer knowledge with SWIFT. Job Responsibilites: Apple App Developer is expected to support essential tasks for the RxASL Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Operations Associate - *Apple* Blossom Mall...
Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.