PowerPlant is an object-oriented GUI toolkit, application framework and set of class libraries for the Classic Mac OS, created by Metrowerks. The framework was fairly popular during the late (OS versions 8 and 9) Classic Mac OS era, and was primarily used with CodeWarrior. It was designed to work with a GUI editor called Constructor, which was primarily a resource editor specializing in UI elements. Constructor used several custom resource types, 'PPob' ("PowerPlant object"—a general view description), 'CTYP' (custom widgets), and Mcmd (used for dispatching menu-related events). Later it was ported to also support MacOS X development with a single code base.[1]
After Metrowerks was acquired by Motorola, then spun out as part of Freescale Semiconductor, PowerPlant and the rest of the CodeWarrior desktop development tools were discontinued.[2]
During its heyday from the mid-1990s until the early 2000s, PowerPlant was the most popular framework available for Mac programmers,[1][3][4] replacing both the THINK Class Library and MacApp as the premier object-oriented toolkit for the MacOS; however, the transition to MacOS X was rather difficult for many PowerPlant programmers.[citation needed] In 1997, there was no plan to port PowerPlant to the Yellow Box API found on Rhapsody, a radically different API that would become Cocoa, the official MacOS X API.[5] Instead Metrowerks plan was to port PowerPlant using Codewarior Latitude, a Mac to UNIX porting library they acquired recently.[6] In 2000, as Apple revised its transition plans, PowerPlant was ported to Carbon, with the Aqua user interface on MacOS X, offering a solution for developers wanting to support the new operating system.[4][7]
A new version, PowerPlant X, was introduced in 2004 as a native Carbon framework, using Carbon Events but never became as popular on Mac OS X as PowerPlant had been on Classic Mac OS.[8]
In February 2006, the PowerPlant class libraries were released as open source under the BSD license hosted on SourceForge.[9] Although it could theoretically be recompiled for x86-64 Macs, it is Carbon-dependent and therefore can only be used in 32-bit mode, which preclude its use for software to run on macOS Catalina or later as 32-bit application support was dropped by the system.[10]