Šiame straipsnyje trumpai apžvelgiamos pagrindinės programavimo kalbos, naudotos ar naudojamos aplikacijoms skirtoms „Mac“ kompiuteriams kurti.
Daugybė puikių programų buvo sukurtos naudojant „Mac“ skriptų kalbas („HyperTalk“ – 1987, „UserTalk“ – 1988-92, „AppleScript“ – 1988-93, „Prograph“ – 1982-89, „Shell scripts“ – 2001, „Automator“ – 2002-05, „Swift Playgrounds“ – 2014-16), tačiau komerciniai kūrėjai dažniausiai naudojo kompiliuojamas kalbas, kurias „Apple“ naudojo ir palaikė programų bei sistemos kūrimui.
Einant metams buvo naudojamos įvairios programavimo kalbos: Object Pascal, C/C++, Objective-C ir naujausia — Swift. Žemiau pateikiama trumpa jų raidos apžvalga.
Lisa Clascal (1984–1986)
Po to, kai „Apple“ naudojo UCSD Pascal „Apple II“ kompiuteriuose, vystant „Lisa“, pagrindinė programavimo kalba tapo „Lisa Pascal“. „Apple“ taip pat dirbo su objektinio programavimo kalba „Smalltalk“, atsiradusia „Xerox PARC“ 1969 m., bet jos sintaksė buvo neįprasta, o našumas prastas. Dėl to „Lisa Pascal“ buvo išplėtota į „Clascal“, su aiškiai atskirtais sąsajos (interface) ir įgyvendinimo (implementation) blokais, klasėmis, paveldėjimu ir metodais.
Pirmuosius porą metų programos „Mac“ kompiuteriams buvo kuriamos naudojant „Clascal“ kalbą „Lisa“ sistemose.
Object Pascal (1986–1991)
1984–1985 m. „Apple“ inžinieriai Larry Tesler, Barry Haynes, Ken Doyle ir Larry Rosenstein bendradarbiavo su „Pascal“ kūrėju Niklaus Wirth ir išplėtė „Clascal“ į „Object Pascal“ – pagrindinę programavimo kalbą „Mac“. Tuo pačiu jie sukūrė pirmąją „MacApp“ klasių bibliotekos versiją, kuri teikė GUI palaikymą.
Šie įrankiai buvo išleisti kartu 1986 m. rugsėjį kaip „Macintosh Programmer’s Workshop“ (MPW), kuris tapo standartine kūrimo aplinka „Mac“ kompiuteriams. Tuo metu vienintelė MPW palaikoma kompiliuojama kalba buvo „Object Pascal“. Tik kitą vasarą pasirodė beta C/C++ kompiliatorius. Nepaisant to, „Object Pascal“ kartu su „MacApp“ buvo plačiai naudojamas. Pirmosios „Adobe Photoshop“, kuri buvo sukurta išskirtinai „Mac“ kompiuteriams, versijos taip pat buvo kuriamos naudojant „Object Pascal“ ir „MacApp“.
Tuo pat metu „Think Technologies“ pristatė pirmą populiarią trečiosios šalies kompiliatorių sistemą — „LightSpeed C“, kuris vėliau tapo THINK C, įgavo C++ palaikymą, buvo papildytas „THINK Pascal“ ir galiausiai nupirktas „Symantec“ kompanijos. „Borland“ pritaikė „Turbo Pascal“ „Mac“ platformai, su „Object Pascal“ plėtiniais — tai galiausiai, 1995 metais, pavirto „Delphi“.
C/C++ (1991–2001)
Su „System 7“ išleidimu 1991 m. „Apple“ staiga perėjo nuo „Object Pascal“ prie C++, taip pat ir „MacApp 3.0“. Mažesni kūrėjai, turėję didelius „Object Pascal“ projektus, liko nusivylę — kai kurie produktai dingo, kiti išsigelbėjo 1993 m. pabaigoje pasirodžius „Metrowerks CodeWarrior IDE“, kuris palaikė C/C++ ir naujuosius „PowerPC“ „Mac“ kompiuterius.
„CodeWarrior“ tapo dominuojančia aplinka, ypač perėjimo prie „PowerPC“ metu, iki pasirodė „Mac OS X“ (2000–2001).
Objective-C (2001–…)
Su „Mac OS X“ atsirado pagrindinė programavimo kalba — „Objective-C“, o kartu ir nauja kūrimo aplinka „Project Builder“ (paremta „NeXTSTEP“, bet pritaikyta „Mac“). Ji 2003 m. buvo pakeista pirmąja „Xcod“e versija („Mac OS X“ 10.3 „Panther“).
„Objective-C“ buvo viena iš dviejų pagrindinių objektinio programavimo kalbų, kilusių iš C. Kita buvo C++, kuri buvo populiaresnė 90-aisiais. Tačiau „Objective-C“ labiau priminė „Smalltalk“, kurią „Apple“ buvo atmetusi „Lisa“ laikais.
Kalbą sukūrė Brad Cox ir Tom Love 1980-aisiais, o jos sėkmė atėjo su „NeXTSTEP“ pasirinkimu. Kai „Apple“ pasirinko „NeXTSTEP“ pagrindu „Mac OS X“, „Objective-C“ tapo neatsiejama dalimi.
Swift (2014–...)
2010-aisiais „Apple“ pradėjo kurti „Objective-C“ įpėdinę — „Swift“. Ją sukūrė Chris Lattner, padedamas Doug Gregor, John McCall, Ted Kremenek ir Joe Groff. Pirmoji „Swift“ beta buvo pristatyta WWDC 2014 m.
„Swift“ pristatoma, kaip daugiaparadigminė kalba, palaikanti beveik visas programavimo paradigmas: objektinę, protokolų pagrįstą, deklaratyvią ir kt. Kalbos evoliucija nuo versijos 1.0 (2014) iki 6.1.2 (2025) — milžiniška.
„Swift“ turi interaktyvų REPL režimą (kaip „Lisp“), kuris buvo išplėtotas į „Swift Playgrounds“ — įrankį pradedantiesiems, tiek „Xcode“ viduje, tiek kaip atskirą aplikaciją.
2019 m., su „Swift“ 5.0, buvo pasiekta ABI stabilumo riba — nebereikėjo prie kiekvienos programos pridėti „Swift“ bibliotekų. Taip pat buvo įdiegtas modulių stabilumas, leidžiantis naudoti binarinius „Swift“ modulius skirtingose versijose.
Kitos kalbos
Be pagrindinių kalbų, buvo palaikoma ir daug kitų:
1984 m. pradėta kurti vėliau tapusi „Macintosh Common Lisp“ (MCL). Ji buvo išleista 1987 m., iš pradžių kaip „Coral Common Lisp“ (CCL), vėliau kaip „Macintosh Allegro Common Lisp“ ir MCL. 1994 m. ji buvo perkelta į „Digitool“, kad būtų palaikomi „PowerPC“ kompiuteriai, o 2007 m. tapo atvirojo kodo kalba. Neįprastai kalbai, kuri paprastai laikoma specializuota, MCL buvo gerai integruota su „Mac OS“ ir jos grafine naudotojo sąsaja.
Po to, kai MCL nugrimzdo į užmarštį, „LispWorks“ sukurta kelių platformų „ANSI Common Lisp“ versija perėmė jos įgyvendinimą ir išlieka visiškai brandi bei produktyvi, turinti plačias naršymo, derinimo ir kitas galimybes.
Nepaprastai glausta ir galinga kalba, APL taip pat yra viena seniausių, apibrėžta dar 1962 m. ir pirmą kartą įdiegta po poros metų. Ji naudoja graikiškus ir specialius simbolius savo pasirinktame šrifte, sujungdama juos į paslaptingas eilutes, dėl kurių „Perl“ atrodo išplėtotas. Paskutinė jos versija „Mac“ kompiuteriams, „MicroAPL“ APLX 5.1, vis dar galėjo veikti „El Capitan“, bet jos buvo atsisakyta. Tačiau „Dyalog APL“ ir toliau aktyviai kuriama ir netgi palaiko „Apple Silicon Mac“ kompiuterius.
Kiti pastebimi praradimai yra „Absoft“, kurios „Fortran“ kompiliatoriai buvo plačiai naudojami „Mac“ kompiuteriuose nuo 1985 m., bet jų palaikymas nutrauktas 2022 m.
„Microsoft Visual Studio Code“, palaikanti daugiau nei trisdešimt programavimo kalbų, įskaitant „JavaScript“, C#, C++ ir „Java“, „Mac“ kompiuteriams pasirodė vėliau, o visai neseniai tapo „VS Code“.
Rodyklė
- David Cásseres (1983) „Classal“ žinynas LISA sistemai, pirmasis juodraštis.
- „Clascal“ - Wikipedia.
- Larry Tesler (1985) „Object Pascal“, ataskaita.
- „Object Pacal“, „Wikipedia“.
- MPW, „Wikipedia“.
- „CodeWarrior“, „Wikipedia“.
- „Swift“, „Wikipedia“.