Кіріспе

Классикалық Mac OS үшін объектіге бағытталған қолданбалық құрылғы. MacApp – Apple Computer компаниясының тоқтатылған классикалық Mac OS жүйесі үшін жасалған объектіге бағытталған бағдарламалық жасақтама. 1985 жылы жарық көрген MacApp, 1991 жылғы 3.0 нұсқасында Object Pascal-дан C++-қа көшті, бұл System 7-нің жаңа мүмкіндіктерінің көп бөлігін қолдауға мүмкіндік берді. MacApp, Adobe Photoshop сияқты көптеген маңызды қолданбалар үшін пайдаланылды. Алайда, 2001 жылдың маусым айында Бүкіләлемдік әзірлеушілер конференциясында (WWDC) нұсқасы көрсетілгеннен кейін, осы жылдың қазан айында барлық әзірлеме тоқтатылды.

Паскаль нұсқалары

MacApp – Ларри Теслер басқарған Apple компаниясының объектіге бағытталған қолданбалар құрастыру жүйесін жасаудағы алғашқы тырабы – Lisa Toolkit-тің тікелей мұрагері болды. Құралдар жиынтығының инженерлік тобында Ларри Розенштейн, Скотт Уоллес және Кен Дойл болды. Бұл құралдар жиынтығы Clascal деп аталатын арнайы тілде жазылды, ол Pascal тіліне объектіге бағытталған техникаларды қосты. Алғашқыда Mac үшін жасау Lisa Workshop-тағы кросс-компиляторды пайдалану арқылы жүзеге асырылды. Mac сатулары Lisa сатуларын тоқтатқаннан кейін, Mac үшін жаңа даму платформасын құруға күш салыныс жасалды. Lisa Programmer's Workshop 1985 жылы Macintosh Programmer's Workshop, немесе MPW болып өзгерді. Осы процестің бір бөлігі ретінде Clascal Object Pascal-ге жаңартылды және Lisa Toolkit, MacApp болып дамитын нұсқаулықтарды ұсынды. Apple 1992 жылы MPW Pascal қолдауын тоқтату туралы хабарлағаннан кейін, бұл нұсқа жаңартылмады, тіпті System 7 қолдауы да қосылмады, ал Pascal бағдарламашылары MacApp 2.0-ды PowerPC-ге өздері ауыстыруға мәжбүр болды.

C++ нұсқалары

Осы уақытқа дейін, 1980 жылдардың соңында, нарық C++ бағытына қарай жылжыды, ал Apple C++ компиляторының бета-нұсқасы 1989 жылы MacApp 2.0 шығарылымымен бірге пайда болды. Бұл қадам Usenet және басқа форумдарда Object Pascal және C++ жақтастары арасында ұзақ және қызу пікірталас тудырды. Дегенмен, 3.0 1991 жылы шыққаннан кейін, MPW әзірлеушілік жиынтығы ескіргеніне қарамастан, белгілі бір деңгейде қолдау тапты. Apple кейін барлық әзірлеуші құралдар тобын қысқартты, нәтижесінде MacApp және MPW жеткіліксіз қамтылды. Бұл қысқартудың бір себебі Apple компаниясының "келесі ұлы платформаны" енгізуге жасаған ұзақ әрекеттері болды, олар көбінесе қандай да бір платформааралық жүйе түрінде көрінетін. Олардың алғашқы талпынысы Bedrock болды – Mac пен Windows жүйелерінде жұмыс істейтін, Symantec компаниясымен серіктестікте құрылған сынып кітапханасы. Алайда, екі тарап та бір-бірімен жұмыс істеуден бас тартқан соң, ол ұзаққа созылған өлімге ұшырады. Олардың проблемаларының бірі OpenDoc құру болды, ол өзі Bedrock-пен тікелей бәсекелесетін платформааралық жүйеге айналды. Bedrock-ты OpenDoc платформасы ретінде ұсынуға әрекеттер жасалды, бірақ ешқандай нәтиже болған жоқ. Осы оқиғалар орын алғанда, MPW және MacApp көбінесе назардан тыс қалды. Бұл жаңа жобаларды нарыққа жылдам жеткізу үшін әзірлеушілердің ресурстарын жұмсаудың маңыздылығын көрсетті. Бірақ Bedrock сәтсіз аяқталып, OpenDoc ыстық қарсылық таба алмағаннан кейін, Mac енді он жылға жуық уақыттан бері қолданылып келе жатқан және үшінші тараптың жаңа өнімдерімен бәсекелесе алмайтын құралдармен қалды. 1990 жылдардың басында MacApp-қа нақты бәсекелес айналған жаңа шеңберлер пайда болды. Бірінші кезекте Symantec компаниясының TCL қолдаушылар жинады, бірақ кейін Metrowerks компаниясының PowerPlant нарықты толығымен басып алды.

Ұзақ өлім

MacApp-тың негізгі әзірлеушілері 1990-шы жылдар бойы жүйеде белсенділігі төмен деңгейде жұмыс істеді. Apple компаниясының барлық "ресми" кросс-платформалық жобалары күйрегеннен кейін, 1996 жылдың соңында команда MacApp-тың кросс-платформалық нұсқасын ұсынатынын жариялады. Бірақ көп ұзамай Apple NeXT компаниясын сатып алып, OpenStep-ті Apple-дың негізгі даму платформасы ететінін, оны Cocoa деп атауын хабарлады. Cocoa сол кезде-ақ кросс-платформалық болды, ол алты платформаға дейін көшірілген және MacApp-тан әлдеқайда жетілген. Бұл Mac бағдарламашыларының наразылығын тудырды, олар өз бағдарламаларының «жазалау алаңына» жіберілгенін, яғни қолдаусыз қалдырылғанын айтты. WWDC'98 конференциясында Стив Джобс Cocoa-ға көшуге байланысты жағымсыз пікірлерге жауап ретінде Carbon жүйесін енгізетінін мәлімдеді. Carbon кейбір өзгерістерден кейін жаңа операциялық жүйеде ескі Mac бағдарламаларын іске қосуға мүмкіндік беретін еді. Metrowerks PowerPlant фреймворкін Carbon-ға көшіретінін хабарлады, бірақ Apple MacApp туралы осындай мәлімдеме жасаған жоқ. Осы кезеңде Apple-дың мінез-құлқына наразы болып, MacApp-тың адал қолданушыларының бір тобы қалды. 1990-шы жылдардың соңында Cocoa енгізілген кезде наразылық одан әрі күшейді, тіпті өнімді толығымен қабылдамауға дейін барды. Жағдай соншалықты нашар болды, MacApp қолданушыларының бір тобы WWDC'98 конференциясында өздері кездесу ұйымдастыруға дейін барды, Apple қызметкерлері бөлме беруден бас тартуы мүмкін болғандықтан, олар жалған атпен тіркелді. Apple бұл қолдауды байқады және 1999 жылдың соңында бұрыннан жұмыс істеп келген команда мүшелерінен құралған «жаңа» MacApp командасына жаңа нұсқаны шығару тапсырылды. Оған OpenStep-тен енгізілген көптеген жаңа Mac OS мүмкіндіктері үшін C++ орамаларының жұқа қабаты болған жаңа Apple Class Suites (ACS) және Project Builder-де құруға қолдау кірді. MacApp 3.0 Release XV 2001 жылдың 28 тамызында көптеген қолданушыларды қуантып шығарылды. Бірақ қазан айында өнім тағы бір рет, бұл жолы мәңгілікке тоқтатылды және MacApp-тың қолданыстағы нұсқаларына ресми қолдау көрсету тоқтатылды. Carbon-ға сәйкес келетін PowerPlant X 2004 жылға дейін шығарылмады, ал бүгінде Cocoa MacOS және iOS бағдарламалау үшін дерлік әмбебап құрал болып табылады.

MacApp бүгінгі күні

MacApp-ты 2001 жылы Apple қолдауын тоқтатқаннан бері, оны сақтап, жаңартып келген арнайы бағдарламашылар тобы тірі ұстап отыр. MacApp толыққанды Carbon оқиғаларын, Universal Binaries, Unicode мәтінін, MLTE басқаруын, DataBrowser басқаруын, FSRefs, XML талдауын, қолданушы басқаруларын, композиттік терезені, Drawer терезені, HIView терезені және қолданушы терезелерін қолдау үшін жаңартылды. MacApp-та HIObject және HIView үшін C++ орама кластары бар. Сонымен қатар, негізінен MacApp 2-ге негізделген Pascal нұсқасы Mac OS X және Xcode-ке көшірілді. Ол ұзын Unicode файл атауларын және автоматты байт алмасумен ағынды құжаттарды қамтиды. MacApp Xcode IDE-ді қолдайды. Шындығында, WWDC 2005-те Apple Intel процессорларына көшуді жариялағаннан кейін, MacApp-ты және MacApp мысалдары қолданбаларын Universal Binaries-ті қолдау үшін жаңартуға бір бағдарламашыға 48 сағат уақыт кетті.

Сипаттама

Бұл сипаттама MacApp 3.0-ға негізделген, оның негізгі моделі 2.0 нұсқасына қарағанда жетілдірілген және көптеген маңызды жағынан ерекшеленді. Mac OS жүйесінің өзінде өте қарапайым оқиғаларды өңдеу жүйесі бар. Операциялық жүйеден қолданбаға жіберілетін оқиға құрылымында тек "перне басу" немесе "түйіншік шерту" сияқты оқиғаның түрі, оның орналасқан жері және басылған модификатор пернелері туралы ақпарат болады. Пайдаланушының жасаған әрекетін, мысалы, мәзір командасын таңдауын анықтау үшін осы қарапайым ақпаратты кодтау қолданбаның міндеті. Мұндай кодты шешу қиын болуы мүмкін, экрандағы нысандар тізімін қарап, оқиға олардың шегінде болғанын тексеру қажет. MacApp команда үлгісін пайдаланып бұл мәселені шешті, онда пайдаланушының әрекеттері оқиға туралы мәліметтерді қамтитын нысандарға енгізіліп, одан кейін оларды орындау үшін тиісті нысанға жіберіледі. Оқиғаны "тиісті нысанға" сәйкестендіру логикасы толығымен құрылымдық қағидалар мен орындалу уақытында жүзеге асырылды, бұл міндеттің күрделілігін едәуір төмендетті. MacApp-тың ішкі механизмдерінің міндеті – негізгі операциялық жүйе оқиғаларын қабылдап, оларды семантикалық тұрғыдан жоғары деңгейдегі командаларға аудару және содан кейін команданы тиісті нысанға бағыттау. MacApp авторды осы кодты жазудан ғана құтқарып қоймай, сонымен қатар бұл құрылым кодты командаларға, пайдаланушының әрекеттеріне және оларды өңдейтін ішкі кодқа бөліп, анықтап берді. Мысалы, "жасыл түске бояу" және "қызыл түске бояу" командалары болуы мүмкін, олардың екеуі де бір функциямен басқарылады – ChangeColor. Командалар мен өңдеушілерді анық бөлетін бағдарлама Apple терминологиясында "факторланған" деп аталады. Бағдарламаны факторлау Mac OS жүйесінің кейінгі нұсқаларында, әсіресе System 7 жүйесімен бірге маңызды рөл атқарды. System 7 Apple Events жүйесін енгізді, ол бастапқы Mac OS жүйесінің оқиғалар жүйесін, тек операциялық жүйеден белгілі бір қолданбаға емес, қолданбалар арасында жіберілетін әлдеқайда бай жүйемен кеңейтті. Бұл AppleScript жүйесімен біріктірілді, бұл оқиғаларды скрипт кодтарынан жасауға мүмкіндік берді. MacApp 3.0-да Apple Events тікелей пайдаланушының әрекеттерінен басталыптындай бірдей командаларға түрлендірілді, яғни әзірлеушіге Apple Events-ті тікелей өңдеу үшін көп код жазудың қажеті болмады. Бұл MacApp 2.0 сияқты бұрынғы жүйелерді пайдаланатын әзірлеушілер үшін үлкен мәселе болды, себебі мұндай бөліну болмағандықтан, Apple Event қолдауы көбінесе қалдырылып кететін. Өзінің қолданбалық құрылымдық қағидаларға сәйкес, MacApp сонымен қатар негізгі Mac GUI-дың көп бөлігін қамтитын алдын ала жасалған нысандар жиынтығын қамтыды – терезелер, мәзірлер, диалогтар және ұқсас элементтер жүйеде ұсынылған. Алайда, Apple көбінесе "нақты қолданыста" пайдалануға болатын жүйелерді ұсынудың орнына, қолданыстағы Mac OS кодының үстіне жеңіл қабаттарды қойды. Мысалы, TTEView класы стандартты мәтін редакторы элементі ретінде ұсынылды, бірақ TextEdit іске асырылуы өте шектеулі болды және Apple өзі оны кәсіби қолданбалар үшін пайдалануға болмайды деп жиі мәлімдеді. Нәтижесінде, әзірлеушілер көбінесе осы қажеттіліктерді қанағаттандыру үшін қосымша нысандарды сатып алуға немесе өздері жасауға мәжбүр болды. Кәсіби сапалы GUI нысандарының жетіспеуі MacApp-тың ең үлкен кемшіліктерінің бірі саналады. Бұл мәселе MacApp R16 нұсқасының шығуымен шешілді. MacApp R16 барлық MacApp GUI нысандары үшін стандартты Carbon элементтерін пайдаланады. Мысалы, Carbon толық Unicode мәтіні мен ұзақ құжаттарды қолдау үшін Көптілді мәтін қозғалтқышын (MLTE) енгізді. R16 нұсқасында бастапқы TTEView класы MLTE элементін пайдаланатын TMLTEView класымен алмастырылды.

Белгілі пайдаланушылар

Adobe Photoshop бастапқыда MacApp 1.1.1 және Object Pascal тілінде жазылған, ал кейіннен Photoshop 2.5 нұсқасы үшін C++ және MacApp 3.0-ға көшірілді. Apple компаниясы MacApp қолдауын тоқтатқаннан кейін, Photoshop әзірлеу тобы техникалық қолдауды өз мойнына алып, PowerPC-ге көшіріп, Windows платформасымен ортақ пайдалану үшін өзгертілді.