As a teenager I was used to implement simple mathematical algorithms on my Sharp pocket computer in BASIC. My first real Application was an AI board game written in the Pascal language on a Mac Classic II. It was a great experience to have a real programming language at hand to transform my ideas to code. I will probably never forget the happy hours I spent programming and the moment when my Mac was winning a game against a human player.
This blog is about the many languages Apple has invented and promoted during the last three decades and some lessons learned about it.
Act One: First Mac with Pascal and Smalltalk
When the Mac was launched its programming language was Pascal. Some years later it was extended to provide object-oriented programming for Mac development in the form of Object Pascal. Object Pascal was a modern programming language at that time but no programmers wanted to implement their code on a variant of Pascal that meant they could never run their code anywhere but on a Mac.
In 1984, Apple licensed Smalltalk to provide a dynamic object-oriented programming environment for the Mac. By 1996 this had become Squeak, which was put out to pasture around 2006 and now lives as an open source community project.
In 1987 when Apple launches HyperTalk, a dynamic object-oriented programming language for rapid application development for programming beginners. After the inventor left the company eventually Steve Jobs killed the project in 1998 and it never made it to OS X.
Act Two: NeXT Computers and Objective-C
In 1988, NeXT licensed Objective-C from StepStone and extended the GCC compiler to support Objective-C. NeXT developed the AppKit and Foundation Kit libraries on which the NeXTSTEP user interface and Interface Builder were based. While the NeXT workstations failed to make a great impact in the marketplace, the tools were widely lauded in the industry. This led NeXT to drop hardware production and focus on software tools, selling NeXTSTEP (and OpenStep) as a platform for custom programming.
Act Three: AIM alliance Dylan and NewtonScript
1990: Apple launches a joint venture with IBM (AIM alliance) to develop a next-generation OS based on PowerPC Reference Platform. They created two new companies called Taligent and Kaleida Labs as part of the alliance. Taligent was formed from a core team of Apple software engineers to create a next-generation operating system, to run on the platform. Kaleida was to create an object-oriented, cross-platform multimedia scripting language ScriptX which would enable developers to create entirely new kinds of applications that would harness the power of the platform. However efforts on the part of Motorola and IBM to popularise PowerPC Platform failed.
Early 1990: Apple develops a new dynamic programming language called Dylan. It’s intended to be the new language for Apple’s handheld platform, Newton. Apple would also develop a development environment for MacOS and Newton. However the plan was not successful and Dylan was killed around 1995
1993: Apple launches NewtonScript, a new dynamic programming language for their handheld platform, the Newton. Steve Jobs kills the Newton in a fit of pique in 1998, killing NewtonScript.
Act Four: OSX and Objective-C revival
1996: After acquiring NeXT, Apple used OpenStep in its new operating system, Mac OSX This included Objective-C, NeXT’s Objective-C based developer tool, Project Builder, and its interface design tool, Interface Builder both now merged into one Xcode application. Most of Apple’s present-day Cocoa API is based on OpenStep interface objects, and is the most significant Objective-C environment being used for active development.
Late 2000: When OS X was launched, it was promised to be a first class Java development environment. Accordingly, bindings were created to allow desktop Cocoa applications to be develop in Java, or for Mac applications to call Java libraries. The Java bindings were used for applications such as Adium, CyberDuck, and so on. Development of Java bindings for Cocoa was killed in 2004. Then in 2010, Java itself was killed after years of neglect.
Act Five: The Big Step to Open “Swift”
2008: Apple launches MacRuby, a new version of the Ruby dynamic programming language, but built on the LLVM infrastructure and Cocoa. In 2012, RubyMotion is introduced as a development language for iOS, just as MacRuby development turns out to be dead.
2014: At WWDC Apple introduced a new language, Swift, which was characterized as “Objective-C without the C” and one year later as a protocol oriented programming language.
Swift is a compiled language created for iOS, OSX, watchOS, tvOS and last but not least Linux. It is designed to work with Apple’s Cocoa and Cocoa Touch frameworks and is intended to be safer to erroneous code than Objective-C. It is built with the LLVM compiler framework and uses the Objective-C runtime, which allows C, Objective-C, C++ and Swift code to run within a single program.
Initially a proprietary language Swift 2.2 was made open source under the Apache 2.0 license in 2015 – breaking with Apple’s tradition to lock languages to its own ecosystem. Short time later IBM announced to support Swift on the server side and already developed a web framework named Kitura.
