TweetFollow Us on Twitter

OPENSTEP Porting to Rhapsody

Volume Number: 13 (1997)
Issue Number: 7
Column Tag: Rhapsody

Porting to Rhapsody PPC from OPENSTEP

by Andrew Stone, Chief Executive Haquer, Stone Design Corp.

Want your OPENSTEP application to run on more than one platform? Apple is making it easy

In late 1995, when the future for NeXT Software, Inc. seemed rather bleak, the first beta version of OPENSTEP 4.0 shipped to a few faithful developers. Faced with doing Java development in incomplete environments, I decided to yet again recommit to OPENSTEP and port our best selling drawing and design program, Create, which contains the Stone Libraries upon which our other apps are based. In an effort to save others from the pitfalls I fell into, I produced a porting guide http://www.stone.com/porting/ documenting the likely gotchas of the process of porting from NEXTSTEP to OPENSTEP.

It took me one month to port this 100,000 line code base to a state of linking and limping. After 8 months of intense debugging and working back and forth between the NT and MACH teams at NeXT and the SOLARIS OPENSTEP team at SUN Microsystems, Create 4.0 rolled into beta, and was the first app to ship for OPENSTEP in the fall of 1996. Proving the claim of true cross platform compatibility, it ran on Windows 95 and Window NT, SOLARIS, and OPENSTEP MACH for Motorola, Intel and SPARC architectures. Since the development and porting tools were just being debugged for the first time and my OPENSTEP knowledge was still nascent, the process was lengthier than a port from NEXTSTEP to OPENSTEP would be today. We shipped, and were underwhelmed by the lack of response from a beleaguered set of OPENSTEP users.

Apple acquiring NeXT on December 20th, 1996 changed all of that, proving once again that reality is far stranger than fiction. The Wheel turned full circle and the renegade ex-Mac developers were back home!

'Tis true that perseverance furthers, because 2 weeks prior to the 1997 WWDC on Cinco de Mayo, I was invited to NeXT Software's headquarters in Redwood City to build Create for the PowerPC. Unlike any previous visit to NeXT where I was watched with hawk-eye and not allowed to go anywhere unescorted, I was given full reign of the second floor of engineering, replete with my own office and access to that legendary espresso maker.

Two binaries were needed for the show: one for Rhapsody running on Intel, the other for Rhapsody running on PowerPC. The app was also built to showcase Yellow Box running on Windows with the Windows look and feel. This build compiled without warning, the app launched and hung. It turns out that I had a vestigial line of code from NEXTSTEP 1.0 circa 1989:

[menu display];

This was a workaround to get the menu to redraw after dynamically adding menu items. However, in the brave new world of Rhapsody, one cannot be sure what a menu is. Normally a menu is a subclass of NSView, which contains a display method. Under Rhapsody, Apple's drop-down menu is not a subclass of NSView, and does not recognize the display method.

The engineers at Apple/NeXT, in the midst of going through a total reorganization, had ported the kernel and compiler tools to PPC within a matter of months. They had built a cross-compiler to build PPC binaries from Intel machines, and once again, Create compiled cleanly. The PPC kernel was only a few days old, still dripping with amniotic fluid, when the first commercial app just came up and ran. As key team member Matt Watson is oft heard saying, "It just works!" Shouts of joy from the team could be heard throughout the building.

True to the promise of Rhapsody, no coding changes were required for the PPC/Yellow Box port, a few NeXT Interface Builder files (nibs) had to be adjusted to be more Mac-like -- mainly Create's main menu had to have its menu items reordered and renamed slightly to feel like a Mac. To solve this problem, a new interface loading paradigm was introduced: if a nib file has a platform suffix, that nib file is loaded instead of the one without a suffix:

NEXTSTEP look as provided by _NEXTSTEP___<NIB_FILE_NAME>-nextstep.nib

Macintosh look as provided by _Macintosh:__<NIB_FILE_NAME>-macintosh.nib

Windows look as provided by _Windows NT/95_<NIB_FILE_NAME>-windows.nib

The Mac and Windows NT/95 menus use a separation marker that you can find on the Menu palette of IB when you set the "Interface Style" in Interface Builder's Preferences (General) to "OPENSTEP for Windows." The separation marker must be disabled in the IB inspector to give it the light gray look. Menu organization and menu item naming should follow the User Interface guidelines of the target platform.

Having taken the time to learn Java and the various development environments from Sun and Symantec over the last couple of years, I can unreservedly say that Rhapsody rocks the house and Java has a lot to implement before it offers the power, elegance and integration of Rhapsody. After this delightful porting experience, I believe that Rhapsody is Write Once -- Runs Right Everywhere.


Andrew Stone, an early HyperTalk developer and co-author of "Tricks of the HyperTalk Masters" emigrated to the NeXT community in 1989, going on to write such NeXT classics as TextArt, Create, DataPhile and 3Dreality.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Final Cut Pro 10.6.4 - Professional vide...
Redesigned from the ground up, Final Cut Pro combines revolutionary video editing with a powerful media organization and incredible performance to let you create at the speed of thought.... Read more
iMovie 10.3.4 - Edit personal videos and...
With a streamlined design and intuitive editing features, iMovie lets you create Hollywood-style trailers and beautiful movies like never before. Browse your video library, share favorite moments,... Read more
Motion 5.6.2 - Create and customize Fina...
Motion is designed for video editors, Motion 5 lets you customize Final Cut Pro titles, transitions, and effects. Or create your own dazzling animations in 2D or 3D space, with real-time feedback as... Read more
iMazing 2.15.8 - Complete iOS device man...
iMazing is the world’s favourite iOS device manager for Mac and PC. Millions of users every year leverage its powerful capabilities to make the most of their personal or business iPhone and iPad.... Read more
VueScan 9.7.90 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
Compressor 4.6.2 - Adds power and flexib...
Compressor adds power and flexibility to Final Cut Pro X export. Customize output settings, work faster with distributed encoding, and tap into a comprehensive set of delivery features. Features:... Read more
Capture One 15.3.2.11 - RAW workflow sof...
Capture One is a professional RAW converter offering you ultimate image quality with accurate colors and incredible detail from more than 400 high-end cameras - straight out of the box. It offers... Read more
Vivaldi 5.4.2753.28 - An advanced browse...
Vivaldi is a browser for our friends. We live in our browsers. Choose one that has the features you need, a style that fits and values you can stand by. From the look and feel, to how you interact... Read more
Parallels Desktop 18.0.0 - Run Windows a...
Parallels allows you to run Windows and Mac applications side by side. Choose your view to make Windows invisible while still using its applications, or keep the familiar Windows background and... Read more
TechTool Pro 16.0.1 - Hard drive and sys...
TechTool Pro has long been one of the foremost utilities for keeping your Mac running smoothly and efficiently. With the release of this version, it has become more proficient than ever. Main... Read more

Latest Forum Discussions

See All

Turn-Based RPG ‘Avatar: Generations’ Sof...
Square Enix London Mobile, Navigator Games, and Paramount Consumer Products just announced that the turn-based RPG Avatar: Generations based on Nickelodeon’s Avatar: The Last Airbender is soft launching this month for mobile. Avatar: Generations is... | Read more »
Tower of Fantasy launches today and brin...
Level Infinite and Hotta Studio have announced the release of their very ambitious looking shared open world MMORPG Tower of Fantasy. With its cross-platform functionality between PC and mobile, it looks to be one to roll the dice on and enjoy at... | Read more »
‘Genshin Impact’ Version 3.0 Gets a New...
After HoYoverse released Genshin Impact (Free) version 2.8 on all platforms, the company has slowly been teasing the major upcoming 3.0 update. This update features the Sumeru region with many characters. While details on the update including a... | Read more »
Out Now: ‘Tower of Fantasy’, ‘Tightrope...
Each and every day new mobile games are hitting the App Store, and so each week we put together a big old list of all the best new releases of the past seven days. Back in the day the App Store would showcase the same games for a week, and then... | Read more »
SwitchArcade Round-Up: ‘Book Quest’, ‘Cl...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for August 10th, 2022. In today’s article, we’ve got a little news about an update to a game I really like, a few new releases to summarize, and some sales to look at. A bit of a quiet... | Read more »
‘Pine Tar Poker’ is an Otherworldly Poke...
Developer BJ Malicoat, who put out the well-received and former Apple Game of the Day pick Downwordly in June of last year, is back working on another mobile game project called Pine Tar Poker, and it has caught my attention. Why? Because it’s a... | Read more »
Darkness Rises celebrates four years of...
Four years of uptime for a mobile game is akin to eternity, and this is exactly the milestone that Darkness Rises has reached. It is important for developers to keep updating to keep the game fresh, and NEXON has announced a massive anniversary... | Read more »
Keep Your Smatphone’s Case On When Using...
The original Gamevice was born as a sort of offshoot of the weird Wikipad gaming tablet/controller/hybrid thing way back in 2014. Interestingly, the first Gamevice controller for iOS only supported the iPad mini and launched in 2015, with versions... | Read more »
SwitchArcade Round-Up: A ‘Splatoon 3’ Ni...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for August 9th, 2022. In today’s article, we’ve got some news about a Splatoon 3 Nintendo Direct, a review of QUByte’s Thunderbolt Collection, a single new release summary, and the usual... | Read more »
Orangepixel’s Pacifist Survival Game ‘Re...
Back in June we learned that long-time mobile developer Orangepixel, who also makes games for PC and consoles (including the Atari VCS!), would be bringing the unique survival game Residual to mobile devices sometime this year. Originally launched... | Read more »

Price Scanner via MacPrices.net

Apple has 24-inch M1 iMacs available starting...
Apple has 24-inch M1 iMacs with M1 CPUs (8-core CPU/7-core GPU) available today in their Certified Refurbished store for $1099 shipped. Their price is $200 off standard MSRP. Each iMac is in like-new... Read more
13″ M1 MacBook Airs in stock today for $799,...
QuickShip Electronics has open-box return 13″ M1 MacBook Airs in stock and on sale for $200 off MSRP on their eBay store right now, each with free express delivery. According to QuickShip, “The item... Read more
In stock today: Mac Studio models for up to $...
Apple retailer Expercom has Mac Studio models in stock today and on sale for up to $400 off Apple’s MSRP, depending on configuration. Their prices are the lowest price available for a Mac Studio from... Read more
Mac mini with M1 CPU and 512GB of storage on...
Amazon has the M1 Mac mini with a 512GB SSD in stock today on sale for $749.99 including free shipping. Their price is $150 off Apple’s MSRP, and it’s the lowest price available for this... Read more
Need a Mac or iPad for school? Get a free App...
Apple’s Back to School promotion for 2022 continues to run through September 26, 2022. As part of this promotion, Apple will include a free $150 Apple Gift Card with the purchase of any MacBook Air,... Read more
Apple Watch SE on sale for $50 off MSRP
Amazon has Apple Watch SE GPS models on sale for $50 off MSRP for a limited time, each including free shipping. Their prices are the lowest currently available for SE Watches: – 40mm Apple Watch SE... Read more
Save $310 on a 14″ 24-core GPU M1 Max MacBook...
Save $310 on 14″ MacBook Pros with 24-core M1 Max processors at Apple (32GB RAM/1TB SSD) with these Certified Refurbished models in stock today for $2789 in Space Gray or Silver colors. Regular price... Read more
14″ M1 Pro MacBook Pros available today at Ap...
Apple has Certified Refurbished standard-configuration 14″ MacBook Pros with M1 Pro CPUs available today for up to $250 off original MSRP, starting at $1799. Each model features a new outer case,... Read more
13″ MacBook Air with M2 CPU, in Starlight, on...
Apple retailer Expercom has the new Starlight 13″ MacBook Air with an M2 CPU (8GB RAM/256GB SSD) on sale for $1135.05, shipped, through August 12, 2022. Their price is $64 off Apple’s MSRP, and it’s... Read more
14″ M1 Pro MacBook Pro with 1TB SSD on sale f...
Expercom is offering a $200 instant discount on the 14″ M1 Pro MacBook Pro with a 1TB SSD through August 12, 2022. Their discount reduces the price of this configuration to $1999 shipped — the lowest... Read more

Jobs Board

Solutions Engineering Manager - *Apple* - S...
…in our Hardware and Advanced Solutions group leading and developing our Apple technical practice to increase revenue and profitability. The ideal candidate would 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
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
Sephora Beauty Advisor - *Apple* Blossom Ma...
Sephora Beauty Advisor - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.