This article needs additional citations for verification .(November 2011) |
Developer(s) | Metrowerks |
---|---|
Initial release | December 23, 1993 |
Operating system | Classic Mac OS, Mac OS X, BeOS, Windows, Linux, Solaris |
Type | Software development tool |
License | Proprietary |
Website | www |
CodeWarrior is an integrated development environment (IDE) published by NXP Semiconductors for editing, compiling, and debugging software for several microcontrollers and microprocessors (Freescale ColdFire, ColdFire+, Kinetis, Qorivva, PX, Freescale RS08, Freescale S08, and S12Z) and digital signal controllers (DSC MC56F80X and MC5680XX) used in embedded systems.
The system was developed by Metrowerks on the Macintosh, and was among the first development systems on that platform to cleanly support both the existing Motorola 68k and the PowerPC (PPC) instruction set architectures. During Apple's transition to PowerPC, CodeWarrior quickly became the de facto standard development system for the Mac, rapidly displacing Symantec's THINK C and Apple's own Macintosh Programmer's Workshop. Apple's purchase of NeXT in 1996 led to a decline in CodeWarrior's relevance as Mac programming moved to the NeXT platform's own developer tools: Interface Builder and Project Builder, which were built on top of the GNU Compiler Collection.
Metrowerks responded by porting CodeWarrior to Microsoft Windows and introducing compilers for a wider variety of platforms. It became a major part of the software stack for Motorola's varied lines of microcontrollers, and eventually led to them purchasing Metrowerks in 1999. It was widely used on most platforms based on PPC or other Motorola processors, as well as many games consoles. The product moved to Freescale Semiconductor when that company formed in 2004, and then to NXP when they purchased Freescale in 2015.
Originally a single integrated product, now known as the "Classic IDE", the IDE was later replaced with Eclipse IDE. The current versions are 6.3 of the Classic IDE, [1] and 11.0 for the Eclipse IDE. [2] Languages supported are C, C++, and assembly language.
In October 1992, John McEnerney, formerly development manager of Symantec's Language Products Group, left the company to work on his own on a PowerPC product, initially thinking about a Pascal compiler. Rich Siegel, author of BBEdit, heard that McEnerney had left Symantec and told Greg Galanos of Metrowerks in Montreal. Galanos phoned McEnerney and asked him to "describe your dream job". McEnerney said he wanted to write a code generator for the new PowerPC (PPC) chip that Apple had announced they would be using in the future. [3]
Metrowerks had already developed Pascal and Modula-II compilers, originally for the Atari ST, but later ported to a number of contemporary machines including the Mac. They flew McEnerney to Montreal to meet with Galanos and his partner Jean Belanger. They felt that there was a huge opportunity for a new toolchain on the PPC, combining their compilers with a new code PPC code generator written by McEnerney. They felt could get to market more rapidly than Symantec, the leading supplier of development systems on the Mac. Symantec was nowhere near the release of their products for PPC, and Apple was using updated versions of their own Macintosh Programmers Workshop (MPW) for development on the PPC, a product that had been ignored for years. McEnerney was interested, but unimpressed with their compilers, and little came of this initial contact. [3]
Around the same time, Andreas Hommel was in university in Germany completing a MS in computer science. He developed an interest in writing computer games in C, but found that existing compilers generated poor-quality code. Over a series of years he developed his own C compiler for the 68k along with a simple integrated development environment (IDE). When he completed university he was offered a job in Hamburg but decided to try to see if there was a market for his compiler. A few months later he received a call from Galanos. After several transatlantic phone calls, Galanos invited Hommel to come to Montreal and discuss working with them. [4]
In February 1993, Galanos called McEnerney and asked if they could meet in Palo Alto so McEnerney could review a new C compiler Metrowerks had acquired. McEnerney was extremely impressed; the system looked like early versions of Think C, and was very fast. Describing it as "a diamond in the rough", McEnerney signed a contract with Metrowerks within hours. Hommel would extend his C compiler to a full C++ implementation while disentangling it from the code generation stage. McEnerney would write a new PPC code generator that would be driven by Hommel's compiler. Hommel's existing 68K code generator would be used for that platform, slightly modified to support Pascal as well. Berardino Baratta and Marcel Achim in Montreal would continue developing the IDE and develop a Pascal compiler running on the same code generators. [3]
Examining the new system, McEnerney decided to take an entirely new approach to code generation. Typical compilers of the era would repeatedly examine their intermediate representation (IR) producing more and more optimized versions of the code until they finally converted it to machine instructions. This approach was less important for RISC platforms, as the instruction set architecture was much simpler and there was far less work involved in deciding which particular type of instruction to use for a given task. Instead, McEnerney's new code generator took the initial IR and converted that directly to PPC code. [3]
The major change was to implement Chaitin's algorithm for register use. This system, introduced in 1982, was a landmark development in compiler technique. It allowed a code generator to map local variables to processor registers with very high efficiency. On a machine that relied on register use for performance, which is one of the primary concepts of RISC processors, this technique can lead to huge improvements. The downside is that it is expensive to calculate the results, being an O(N2) process. [3]
To help develop the PPC compiler, Apple's Jordan Mattson sent McEnerney one of their RS/6000 systems. By August 1993 the basic system was running. McEnerney got a phone call from a former Symantec colleague, Dan Podwall, who was looking for work at Metrowerks. Galanos called Podwall, who was immediately hired to write a debugger, completed in only four weeks. [3]
A prototype Power Macintosh machine was sent to the company in September 1993. At the time, the main IDE and compiler toolchain was still running on the 68k machines, producing PPC binaries that were then moved to the prototype and debugged. This allowed them to quickly port the system to the PPC, and by December the entire system was ready for production. [3]
The system was launched as CodeWarrior at the MacWorld Expo in January 1994. The Power Macs were slated to be launched that month as well, but a series of delays forced this to be set off until the official launch of the Power Mac machines on 14 March. [3]
At the time, both Apple's MPW and Symantec's Think C ran only on 68k machines, and only MPW was able to generate PPC binaries. Running natively on the PPC, and based on code dedicated to the platform, CodeWarrior offered dramatically higher performance, while allowing one to develop and debug on a single machine. Sales of other development systems ended practically overnight. Symantec, who had owned the Mac development market since 1986, did not release a native PPC version until late March 1995. By this time, several major Mac software vendors had moved to CodeWarrior and Symantec was never able to re-establish any sort of marketshare on the Mac. [5]
CodeWarrior was a key factor in the success of Apple's transition of its machine architecture from 68K processors to PowerPC because it provided a complete, solid PowerPC compiler when the competition (Apple's MPW tools and Symantec C++) was mostly incomplete or late to the market. [5] Metrowerks also made it easy to generate fat binaries, which included both 68K and PowerPC code.
Java support in CodeWarrior for Macintosh was announced for May 1996, slated for CodeWarrior 9. [6] Metrowerks took the approach to add Java tools support in CodeWarrior, including debugging, rather than write a new IDE. [7]
In 1997, Apple purchased NeXT in order to use their operating system, OpenStep, as the basis for future Mac products. OpenStep was based around the concept of the entire operating system and all of its applications being built using an internal development system. This was, in turn, based on the GNU Compiler Collection (GCC). While CodeWarrior would still be important for developers writing "classic" Mac applications on the platform, there was a clear time frame after which development would primarily be through the new OpenStep platform, and therefore be through the GCC.
In August 1996, Metrowerks announced CodeWarrior for BeBox, [8] a BeOS version of the IDE named BeIDE supplementing the PowerPC compiler that was already available to BeOS software developers.
After Metrowerks was acquired by Motorola in 1999, the company concentrated on embedded applications, devoting a smaller fraction of their efforts to compilers for desktop computers. On 29 July 2005, they announced that CodeWarrior for Mac would be discontinued after the next release, CodeWarrior Pro 10. Metrowerks indicated that revenue share of the product fell from 22% to 5% in the last four years and the effort by the company to concentrate on the embedded development market. The demand for CodeWarrior had presumably fallen during the time Apple began distributing Xcode (its own software development kit for OS X) for free. [9] In addition, Apple's switch to Intel chips left Metrowerks without an obvious product as they had sold their Intel compiler technology to Nokia earlier in 2005.[ citation needed ]
During its heyday, the product was known for its rapid release cycle, with multiple revisions every year, and for its quirky advertising campaign. Their "geekware" shirts were featured in the fashion pages of The New York Times . [10]
Prior to the acquisition of the product by Freescale, versions existed targeting Macintosh, Microsoft Windows, Linux, Solaris, PlayStation, PlayStation 2, GameCube, Nintendo DS, Wii, [11] Dreamcast, SuperH, M·CORE, Palm OS, [12] Symbian OS, and BeOS. [8]
Metrowerks versions of CodeWarrior also included Pascal, Object Pascal, Objective-C, and Java compilers.
Older versions of CodeWarrior can be used to develop on classic Mac OS. Classilla is built with Metrowerks CodeWarrior 7.1. [13]
Release name | Editions | Release date | Notes [14] |
---|---|---|---|
CodeWarrior DR/1 | Gold, Silver, Bronze | 1993-12-23 | Bronze supports 68k, Silver supports PPC, Gold supports 68k and PPC |
CodeWarrior DR/2 | Gold, Silver, Bronze | 1994-03-11 | |
CodeWarrior DR/3 | Gold, Silver, Bronze | 1994-05-05 | |
CodeWarrior 4 | Gold, Silver, Bronze | 1994-06-26 | |
CodeWarrior 5 | Gold, Bronze | 1994-12-15 | |
CodeWarrior 6 | Gold, Bronze | 1995-05-03 | |
CodeWarrior 7 | Gold, Bronze | 1995-09-05 | |
CodeWarrior 8 | Gold, Bronze | 1996-01-04 | |
CodeWarrior 9 | Gold | 1996-05-11 | |
CodeWarrior 10 | Gold | 1996-09-09 | |
CodeWarrior 11 | Gold | 1996-12-31 | |
CodeWarrior Pro 1 | 1997-06-04 | Mac and Windows bundled | |
CodeWarrior Pro 2 | 1997-10-23 | First version to target Mach-O and Yellow Box on Rhapsody with support for Objective-C [15] | |
CodeWarrior Pro 3 | 1998-04-07 | ||
CodeWarrior Pro 4 | 1998-09-10 | Last to include Pascal [16] Last to run on 68k [17] | |
CodeWarrior Pro 5 | Mac, Windows | 1999-06-18 | |
CodeWarrior Pro 6 | Mac, Windows | 2000-09-09 | Last to support 68k compiling [16] [18] Pre-release support of Mach-O, and use Aqua user interface on Mac OS X. [19] |
CodeWarrior Pro 7 | Mac, Windows | 2001 | First to run natively in Mac OS X and target Mach-O by default [18] |
CodeWarrior Pro 8 | Mac, Windows | 2002 | Last to run on Classic Mac OS |
CodeWarrior 9 | Mac | 2003 | |
CodeWarrior 10 | Windows | 2004 |
During the 1990s, Apple Computer released a monthly series of developer CD-ROMs containing resources for programming the Macintosh. These CDs were, in the early days, whimsically titled using punning references to various movies but with a coding twist; for example, "The Hexorcist" ( The Exorcist ), "Lord of the Files" ( Lord of the Flies ), "Gorillas in the Disc" ( Gorillas in the Mist ), etc. [20]
One of these, volume 9, was titled "Code Warrior", referring to the movie The Road Warrior . Later Apple dropped the whimsical titling in favor of a more sober "Developer CD series". Coincidentally the Metrowerks founder, Greg Galanos, an Australian, was also inspired by the movie and proposed the CodeWarrior name. Metrowerks subsequently used the name for their new developer product.
CodeWarrior CD packaging was very much in the tradition of the Apple developer CDs, featuring slogans such as "Blood, Sweat, and Code" and "Veni, Vidi, Codi" in prominent lettering. Competing products such as Symantec's THINK C were more conventionally marketed.
Metrowerks foresaw as it had with the transition to PowerPC, a need to provide a must have developer tool to help developers transition from MacOS software to Apple's future operating system, codenamed Rhapsody. [21]
In 1997, Metrowerks acquired the principal assets of The Latitude Group Inc. from David Hempling and his partners. Latitude was a software compatibility layer used to port Macintosh applications to the NeXT Computer and other UNIX systems. [22]
Latitude presented itself as a library that implemented the Macintosh System 7 API in the same way that Lee Lorenzen's Altura Mac2Win software as well as Apple's own Quicktime for Windows SDK allowed Macintosh applications to be recompiled for Windows with minimal modifications. Latitude had previously been used successfully by Adobe to port Photoshop and Premiere to Silicon Graphics and Solaris workstations. [23]
Metrowerks rebranded Latitude as CodeWarrior Latitude, [24] updated it for Rhapsody starting with Developer Preview 1 and then marketed it to Macintosh developers as a separate product for $399, alongside CodeWarrior Professional. [25] [26]
Latitude Developer Release 1 (DR1) was previewed at WWDC 1997 in the CodeWarrior Lounge. Latitude DR2 was released on Oct 27, 1997 and won an Eddy Award at the 1998 Macworld for Best Tool for New Technologies beating out Joy from AAA+ Software F&E and Visual Cafe for Macintosh 1.0.2 by Symantec. [27]
At the time, Steve Jobs was heavily promoting the OPENSTEP API (renamed Yellow Box) in order to access the new features of the operating system. For C/C++/Pascal Macintosh developers, this presented a substantial hurdle because it was markedly different from the classic MacOS API that ran inside Blue Box and was Objective-C based. Latitude was for a short time coined as the "Green Box" [28] for obvious reasons and appeared to be another hit for Metrowerks and further solidify its dominance in the Macintosh developer tools market but Apple secretly had plans of its own.
CodeWarrior's IDE for Rhapsody and CodeWarrior Latitude were both demonstrated at Worldwide Developers Conference in 1998 in the third party developer pavilion but were quietly discontinued at the show following Steve Jobs keynote address. Apple's announcement of its forthcoming Carbon API (codenamed "Ivory Tower") to appeal to developers who required a practical way to transition to the new operating system eliminated the need for any third-party solutions. [29]
Metrowerks used Latitude internally to port CodeWarrior to run on Red Hat and SuSE Linux for commercial sale and additionally to Solaris under contract from Sun Microsystems. Both products utilized gcc command line compilers rather than Metrowerks own compiler technologies to promote adoption within the UNIX developer community.
The final version of Latitude supported Solaris 2.3, SGI Irix 5.2 and Rhapsody DP2, dropping HP-UX support.
PowerPC is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple–IBM–Motorola alliance, known as AIM. PowerPC, as an evolving instruction set, has been named Power ISA since 2006, while the old name lives on as a trademark for some implementations of Power Architecture–based processors.
MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the Efika and mobileGT. Since MorphOS 2.4, Apple's Mac mini G4 is supported as well, and with the release of MorphOS 2.5 and MorphOS 2.6 the eMac and Power Mac G4 models are respectively supported. The release of MorphOS 3.2 added limited support for Power Mac G5. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop.
Copland is an operating system developed by Apple for Macintosh computers between 1994 and 1996 but never commercially released. It was intended to be released with the name System 8, and later after changing their naming style, Mac OS 8. Planned as a modern successor to the aging System 7, Copland introduced protected memory, preemptive multitasking, and several new underlying operating system features, while retaining compatibility with existing Mac applications. Copland's tentatively planned successor, codenamed Gershwin, was intended to add more advanced features such as application-level multithreading.
MkLinux is an open-source software computer operating system begun by the Open Software Foundation Research Institute and Apple Computer in February 1996, to port Linux to the PowerPC platform, and Macintosh computers. The name refers to the Linux kernel being adapted to run as a server hosted on the Mach microkernel, version 3.0.
Star Trek is the code name that was given to a secret prototype project, running a port of Macintosh System 7 and its applications on Intel-compatible x86 personal computers. The project, starting in February 1992, was conceived in collaboration between Apple Computer, who provided the majority of engineers, and Novell, who at the time was one of the leaders of cross-platform file-servers. The plan was that Novell would market the resulting OS as a challenge to Microsoft Windows, but the project was discontinued in 1993 and never released, although components were reused in other projects. The project was named after the Star Trek science fiction franchise with the slogan "To boldly go where no Mac has gone before".
Macintosh Programmer's Workshop (MPW) is a software development environment for the Classic Mac OS operating system, written by Apple Computer. For Macintosh developers, it was one of the primary tools for building applications for System 7.x and Mac OS 8.x and 9.x. Initially MPW was available for purchase as part of Apple's professional developers program, but Apple made it a free download after it was superseded by CodeWarrior. On Mac OS X it was replaced by the Project Builder IDE, which eventually became Xcode.
Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods.
Bedrock was a joint effort by Apple Computer and Symantec to produce a cross platform programming framework for writing applications on the Apple Macintosh and Microsoft Windows platforms. The project was a failure for a variety of reasons, and after delivering a developer preview version the project was abandoned in late 1993.
MacApp is the object oriented application framework for Apple Computer's discontinued classic Mac OS. Released in 1985, it transitioned from Object Pascal to C++ in 1991's version 3.0 release, which offered support for much of System 7's new functionality. MacApp was used for a variety of major applications, including Adobe Photoshop and SoftPress Freeway. Microsoft's MFC and Borland's OWL were both based directly on MacApp concepts.
Rosetta is a dynamic binary translator developed by Apple Inc. for macOS, an application compatibility layer between different instruction set architectures. It enables a transition to newer hardware, by automatically translating software. The name is a reference to the Rosetta Stone, the artifact which enabled translation of Egyptian hieroglyphs.
The universal binary format is a format for executable files that run natively on either PowerPC or Intel-manufactured IA-32 or Intel 64 or ARM64-based Macintosh computers. The format originated on NeXTStep as "Multi-Architecture Binaries", and the concept is more generally known as a fat binary, as seen on Power Macintosh.
Metrowerks was a company that developed software development tools for various desktop, handheld, embedded, and gaming platforms. Its flagship product, CodeWarrior, comprised an IDE, compilers, linkers, debuggers, libraries, and related tools. In 1999 it was acquired by Motorola and in 2005 it was spun-off as part of Freescale, which continues to sell these tools. In 2015, Freescale Semiconductor was absorbed into NXP.
The architecture of macOS describes the layers of the operating system that is the culmination of Apple Inc.'s decade-long research and development process to replace the classic Mac OS.
Think C, originally known as LightSpeed C, is an extension of the C programming language for the classic Mac OS developed by THINK Technologies, released first in mid-1986. THINK was founded by Andrew Singer, Frank Sinton and Mel Conway. LightSpeed C was widely lauded when it was released, as it used the Macintosh user interface throughout and was extremely fast. It quickly became the de facto C environment on the Mac, and the related Think Pascal quickly did the same for Object Pascal development.
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 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', 'CTYP', and Mcmd. Later it was ported to also support MacOS X development with a single code base.
The generically named Macintosh Processor Upgrade Card is a central processing unit upgrade card sold by Apple Computer, designed for many Motorola 68040-powered Macintosh LC, Quadra and Performa models. The card contains a PowerPC 601 CPU and plugs into the 68040 CPU socket of the upgraded machine. The Processor upgrade card required the original CPU be plugged back into the card itself, and gave the machine the ability to run in its original 68040 configuration, or through the use of a software configuration utility allowed booting as a PowerPC 601 computer running at twice the original speed in MHz with 32 KB of L1 Cache, 256 KB of L2 Cache and a PowerPC Floating Point Unit available to software. The Macintosh Processor Upgrade requires and shipped with System 7.5.
Dylan programming language history first introduces the history with a continuous text. The second section gives a timeline overview of the history and present several milestones and watersheds. The third section presents quotations related to the history of the Dylan programming language.
FutureBasic is a free BASIC compiler for Apple Inc.'s Macintosh.
Macintosh Common Lisp (MCL) is an implementation and IDE for the Common Lisp programming language. Various versions of MCL run under the classic Mac OS and Mac OS X.
Mac OS is the series of operating systems developed for the Macintosh family of personal computers by Apple Computer, Inc. from 1984 to 2001, starting with System 1 and ending with Mac OS 9. The Macintosh operating system is credited with having popularized the graphical user interface concept. It was included with every Macintosh that was sold during the era in which it was developed, and many updates to the system software were done in conjunction with the introduction of new Macintosh systems.