MacApp
मैकऐप ऐप्पल कंप्यूटर के बंद किए गए क्लासिक मैक ओएस के लिए ऑब्जेक्ट ओरिएंटेड एप्लीकेशन फ्रेमवर्क है। 1985 में जारी किया गया, यह 1991 के संस्करण 3 रिलीज में ऑब्जेक्ट पास्कल से सी + + में परिवर्तित हो गया, जिसने सिस्टम 7 की अधिकांश नई कार्यक्षमता के लिए समर्थन की पेशकश की। मैकऐप का उपयोग एडोब फ़ोटोशॉप और सॉफ्टप्रेस फ्रीवे सहित विभिन्न प्रमुख अनुप्रयोगों के लिए किया गया था। माइक्रोसॉफ्ट के एमएफसी और बोरलैंड के ओडब्ल्यूएल दोनों सीधे मैकऐप अवधारणाओं पर आधारित थे। दस वर्षों की अवधि में, उत्पाद में ऐसी अवधि थी जब इसका बहुत कम विकास हुआ और उसके बाद गतिविधि में तेजी आई। इस अवधि के दौरान, सिमेंटेक की थिंक क्लास लाइब्रेरी/थिंक पास्कल मैकऐप के लिए एक गंभीर प्रतियोगी बन गई थी, जो बहुत अधिक प्रदर्शन वाले एकीकृत विकास वातावरण (आईडीई) में एक सरल मॉडल की पेशकश कर रही थी। 1990 के दशक की शुरुआत में पावरपीसी प्लेटफॉर्म पर कदम रखने के लिए सिमेंटेक धीमा था, और जब मेट्रोवर्क्स ने पहली बार 1994 में अपने कोड वॉरियर/पावरप्लांट सिस्टम को पेश किया, तो इसने मैक पर प्राथमिक विकास प्लेटफॉर्म के रूप में मैकऐप और थिंक दोनों को तेजी से विस्थापित कर दिया। यहां तक कि एप्पल ने भी 1990 के दशक के मध्य में कोपलैंड युग के दौरान अपने प्राथमिक विकास मंच के रूप में कोड वॉरियर का उपयोग किया। मैकऐप ने 2000 और 2001 के बीच मैकओएस एक्स में कार्बन प्रणाली में संक्रमण के लिए एक प्रणाली के रूप में एक संक्षिप्त विराम दिया था। हालाँकि, जून 2001 में वर्ल्डवाइड डेवलपर्स कॉन्फ्रेंस (डब्ल्यूडब्ल्यूडीसी) में एक संस्करण का प्रदर्शन करने के बाद, उस अक्टूबर में सभी विकास को रद्द कर दिया गया था। इतिहास पास्कल संस्करण मैकऐप लिसा टूलकिट का एक प्रत्यक्ष वंशज था, जो लैरी टेस्लर के नेतृत्व में एक वस्तु-उन्मुख अनुप्रयोग ढांचे को डिजाइन करने में ऐप्पल का पहला प्रयास था। टूलकिट के लिए इंजीनियरिंग दल में लैरी रोसेनस्टीन, स्कॉट वालेस और केन डॉयल शामिल थे। टूलकिट को एक कस्टम भाषा में लिखा गया था जिसे क्लास्कल के नाम से जाना जाता था, जिसने पास्कल भाषा में ऑब्जेक्ट-ओरिएंटेड तकनीकों को जोड़ा। प्रारंभ में, मैक के लिए विकास लिसा वर्कशॉप में एक क्रॉस-कंपाइलर का उपयोग करके किया गया था। जैसे ही मैक की बिक्री ने लिसा की बिक्री को प्रभावी ढंग से समाप्त कर दिया, मैक के लिए एक नया विकास मंच बनाने का प्रयास शुरू हो गया। लिसा प्रोग्रामर की कार्यशाला 1985 में मैकिन्टोश प्रोग्रामर की कार्यशाला या एम. पी. डब्ल्यू. बन गई। इस प्रक्रिया के हिस्से के रूप में, क्लास्कल को ऑब्जेक्ट पास्कल बनने के लिए अद्यतन किया गया था और लिसा टूलकिट ने मैकऐप बनने के लिए डिज़ाइन नोट्स की पेशकश की थी। एप्लिकेशन फ्रेमवर्क के बिना मैक प्रोग्राम लिखना कोई आसान काम नहीं है, लेकिन उस समय ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग क्षेत्र अभी भी अपेक्षाकृत नया था और कई डेवलपर्स द्वारा कुछ हद तक संदिग्ध माना जाता था। प्रारंभिक ढांचे ने इस संदेह की पुष्टि करने की प्रवृत्ति दिखाई, जो बड़ा, धीमा और आम तौर पर अनम्य था। मैकऐप शायद इस शब्द के सभी अर्थों में पहला सही मायने में उपयोग करने योग्य ढांचा था। संकलित अनुप्रयोग आकार और स्मृति पदचिह्न के मामले में काफी उचित थे, और प्रदर्शन इतना बुरा नहीं था कि डेवलपर्स इससे शर्मिंदा हो जाएं। हालांकि इसकी पहली रिलीज़ में "बहुत सरल", कई अनुवर्ती संस्करणों ने मुख्य समस्याओं को जल्दी से संबोधित किया। इस बिंदु तक, 1987 के आसपास, प्रणाली एक उपयोगी उपकरण के रूप में परिपक्व हो गई थी, और कई डेवलपर्स ने प्रमुख परियोजनाओं पर इसका उपयोग करना शुरू कर दिया था। मैकऐप 2 को 1989 में जारी किया गया था। सुधारों में कुछ यू. आई. तत्व अंतःक्रियाओं का सरलीकरण और मल्टीफाइंडर के लिए समर्थन शामिल था। ऐप्पल ने घोषणा की कि वह 1992 में एमपीडब्ल्यू पास्कल समर्थन छोड़ रहा था, इस संस्करण को सिस्टम 7 समर्थन के साथ भी अद्यतन नहीं किया गया था, और पास्कल डेवलपर्स को मैकऐप 2 को पावरपीसी में पोर्ट करने के लिए छोड़ दिया गया था। सी + + संस्करण इस बिंदु तक, 1980 के दशक के अंत में, बाजार सी + + की ओर बढ़ रहा था, और ऐप्पल सी + + संकलक का बीटा संस्करण 1989 में मैकऐप 2 रिलीज के आसपास दिखाई दिया। उसी समय, एप्पल सिस्टम 7 को जारी करने के प्रयास में था, जिसमें कई प्रमुख नई सुविधाएँ थीं। मैकऐप, 3 के एक पूरी तरह से नए संस्करण में संक्रमण करने का निर्णय लिया गया था, जो ऑब्जेक्ट पास्कल के स्थान पर सी + + का उपयोग करेगा। यह कदम यूज़नेट और अन्य मंचों में ऑब्जेक्ट पास्कल और सी + + के समर्थकों के बीच एक लंबी और गरमागरम बहस का विषय था। फिर भी, 3 1991 में अपनी रिलीज़ के बाद एक उचित अनुसरण प्राप्त करने में कामयाब रहा, भले ही डेवलपर सूट, एमपीडब्ल्यू, पुराना हो रहा था। ऐप्पल ने तब पूरे डेवलपर टूल्स समूह को छोटा कर दिया, जिससे मैकऐप और एमपीडब्ल्यू दोनों में कम कर्मचारी रह गए। इस कटौती के कारणों में से एक ऐप्पल की विकास के लिए "अगले महान मंच" को पेश करने का प्रयास करने की लंबी गाथा थी, लगभग हमेशा किसी न किसी प्रकार की क्रॉस-प्लेटफ़ॉर्म प्रणाली के रूप में। उनका पहला प्रयास बेडरॉक था, सिमेंटेक के साथ साझेदारी में बनाया गया एक वर्ग पुस्तकालय जो मैक और विंडोज पर चलता था, जिसकी एक लंबी मृत्यु हो गई क्योंकि दोनों पक्षों ने अंततः दूसरे के साथ काम करना छोड़ दिया। उनकी समस्याओं का एक कारण ओपनडॉक का निर्माण था, जिसे स्वयं एक क्रॉस-प्लेटफ़ॉर्म प्रणाली के रूप में विकसित किया गया था जो सीधे बेडरॉक के साथ प्रतिस्पर्धा करता था। बेडरॉक को ओपनडॉक प्लेटफॉर्म के रूप में स्थापित करने के कुछ प्रयास किए गए थे, लेकिन इससे कुछ भी नहीं निकला। जब ये विकास हो रहे थे, एमपीडब्ल्यू और मैकऐप को काफी हद तक नजरअंदाज कर दिया गया था। उन विकासकर्ता संसाधनों को इन नई परियोजनाओं में डालना अधिक महत्वपूर्ण था ताकि उन्हें जल्द से जल्द बाजार तक पहुंचने में मदद मिल सके। लेकिन जब बेडरॉक विफल हो गया और ओपनडॉक को एक गुनगुना स्वागत मिला, तो मैक के पास ऐसे उपकरण रह गए जो अब लगभग एक दशक पुराने थे और तीसरे पक्ष के नए उत्पादों के साथ प्रतिस्पर्धा नहीं कर सकते थे। 1990 के दशक की शुरुआत में प्रतिस्पर्धी ढांचे मैकऐप के वास्तविक प्रतिद्वंद्वियों में विकसित हुए। पहले सिमेंटेक के टी. सी. एल. ने निम्नलिखित अर्जित किया, लेकिन फिर मेट्रोवर्क्स के पावरप्लांट ने आम तौर पर पूरे बाजार पर कब्जा कर लिया। मैकऐप के मुख्य डेवलपर्स ने 1990 के दशक में कम गतिविधि स्तर पर सिस्टम पर काम करना जारी रखा। जब ऐप्पल की सभी "आधिकारिक" क्रॉस-प्लेटफ़ॉर्म परियोजनाएं ध्वस्त हो गईं, तो 1996 के अंत में टीम ने घोषणा की कि वे मैकऐप का एक क्रॉस-प्लेटफ़ॉर्म संस्करण प्रदान करेंगे। इसके तुरंत बाद, ऐप्पल ने नेक्स्ट को खरीद लिया और घोषणा की कि ओपनस्टेप कोकोआ नाम के तहत ऐप्पल का प्राथमिक विकास मंच होगा। कोको पहले से ही क्रॉस-प्लेटफ़ॉर्म था, उस समय पहले से ही लगभग छह प्लेटफार्मों पर पोर्ट किया जा चुका था, और मैकऐप की तुलना में कहीं अधिक उन्नत था। इसके कारण मौजूदा मैक प्रोग्रामरों ने इस बात का कड़ा विरोध किया कि उनके कार्यक्रमों को "पेनल्टी बॉक्स" में भेजा जा रहा था, जिसे प्रभावी रूप से छोड़ दिया गया था। डब्ल्यू. डब्ल्यू. डी. सी. '98 में, स्टीव जॉब्स ने घोषणा की कि कार्बन प्रणाली की शुरुआत के माध्यम से कोको के कदम के बारे में नकारात्मक प्रतिक्रिया को संबोधित किया जा रहा है। कार्बन कुछ रूपांतरण के बाद मौजूदा मैक कार्यक्रमों को नए ऑपरेटिंग सिस्टम के तहत मूल रूप से चलाने की अनुमति देगा। मेट्रोवर्क्स ने घोषणा की कि वे अपने पावरप्लांट ढांचे को कार्बन में पोर्ट करेंगे, लेकिन मैकऐप के संबंध में ऐप्पल द्वारा ऐसी कोई घोषणा नहीं की गई थी। इस अवधि के दौरान वफादार मैकऐप उपयोगकर्ताओं का एक मूल बना रहा जो ऐप्पल के व्यवहार से तेजी से निराश हो गए। 1990 के दशक के अंत तक, कोको की शुरुआत के दौरान, यह उत्पाद को पूरी तरह से खारिज करने के लिए बढ़ गया था। हालात इतने खराब थे कि मैकऐप उपयोगकर्ताओं के एक समूह ने डब्ल्यूडब्ल्यूडीसी '98 में एक कल्पित नाम के तहत अपनी खुद की बैठक आयोजित करने के लिए इतना आगे बढ़ गए, ताकि ऐप्पल के कर्मचारियों द्वारा उन्हें मिलने के लिए एक कमरे से मना करने से बचा जा सके। यह जारी समर्थन ऐप्पल के भीतर देखा गया था, और 1999 के अंत में एक "नई" मैकऐप टीम, जिसमें ऐसे सदस्य शामिल थे जिन्होंने इस पर पूरे समय काम किया था, को एक नया संस्करण जारी करने का काम सौंपा गया था। इसमें शामिल थे नए ऐप्पल क्लास सुइट्स (एसीएस), ओपनस्टेप से पेश किए जा रहे कई नए मैक ओएस सुविधाओं के लिए सी + + रैपर्स की एक पतली परत, और प्रोजेक्ट बिल्डर में निर्माण के लिए समर्थन। मैकऐप 3 रिलीज XV को 28 अगस्त 2001 को कई लोगों की खुशी के लिए जारी किया गया था। हालाँकि, अक्टूबर में उत्पाद को एक बार फिर समाप्त कर दिया गया, इस बार हमेशा के लिए, और मैकऐप के मौजूदा संस्करणों के लिए समर्थन आधिकारिक तौर पर समाप्त हो गया। कार्बन-अनुरूप पावरप्लांट एक्स 2004 तक नहीं भेजा गया था, और आज कोको मैकओएस और आईओएस प्रोग्रामिंग दोनों के लिए लगभग सार्वभौमिक है। मैकऐप आज मैकऐप को डेवलपर्स के एक समर्पित समूह द्वारा जीवित रखा जा रहा है जिन्होंने 2001 में ऐपल द्वारा इसका समर्थन करना बंद करने के बाद से ढांचे को बनाए रखा है और बढ़ाया है। मैकऐप को कार्बन इवेंट्स, यूनिवर्सल बाइनरीज, यूनिकोड टेक्स्ट, एमएलटीई नियंत्रण, डेटा ब्राउज़र नियंत्रण, एफएसआरईएफ, एक्सएमएल पार्सिंग, कस्टम कंट्रोल, कम्पोजिट विंडो, ड्रॉवर विंडो, एचआईवीव्यू विंडो और कस्टम विंडोज को पूरी तरह से समर्थन देने के लिए अद्यतन किया गया है। मैकऐप में एच. आई. ओ. ऑब्जेक्ट और एच. आई. वी. व्यू के लिए सी + + रैपर वर्ग भी हैं। इसके अलावा मुख्य रूप से मैकऐप-2 पर आधारित पास्कल संस्करण को मैक ओएस एक्स और एक्सकोड में पोर्ट किया गया है। इसमें स्वचालित बाईट-अदला-बदली के साथ लंबे यूनिकोड फ़ाइल नाम और स्ट्रीम किए गए दस्तावेज़ हैं। मैकऐप एक्सकोड आई. डी. ई. का समर्थन करता है। वास्तव में डब्ल्यूडब्ल्यूडीसी 2005 में, जब एप्पल ने इंटेल सीपीयू में संक्रमण की घोषणा की, तो यूनिवर्सल बाइनरीज का समर्थन करने के लिए मैकऐप और मैकऐप उदाहरण ऐप को अपडेट करने में एकल डेवलपर को 48 घंटे लग गए। विवरण यह विवरण मैकऐप 3 पर आधारित है, जिसमें पहले के 2 की तुलना में अधिक उन्नत अंतर्निहित मॉडल था और कई महत्वपूर्ण तरीकों से भिन्न था। मैक ओएस में स्वयं एक बहुत ही सरल इवेंट हैंडिंग सिस्टम है। ऑपरेटिंग सिस्टम से एप्लिकेशन में पारित इवेंट संरचना में केवल एक इवेंट प्रकार होता है जैसे "कीप्रेस" या "माउसक्लिक", और इसके स्थान और परिवर्तक कुंजियों का विवरण नीचे रखा जा रहा है। यह अनुप्रयोग पर निर्भर करता है कि वह इस सरल जानकारी को उपयोगकर्ता द्वारा की गई कार्रवाई में डिकोड करे, उदाहरण के लिए, एक मेनू कमांड पर क्लिक करना। इसे डिकोड करना मुश्किल हो सकता है, ऑन-स्क्रीन वस्तुओं की सूचियों के माध्यम से चलना और यह जांचना कि क्या घटना उनकी सीमा के भीतर हुई थी। मैकऐप ने कमांड पैटर्न का उपयोग करके इस समस्या का समाधान प्रदान किया, जिसमें उपयोगकर्ता कार्यों को घटना विवरण वाली वस्तुओं में समाहित किया जाता है, और फिर उन्हें पूरा करने के लिए उचित वस्तु पर भेजा जाता है। "उचित वस्तु" के लिए घटना के मानचित्रण के तर्क को पूरी तरह से ढांचे और इसके रनटाइम के भीतर संभाला गया था, जिससे इस कार्य की जटिलता बहुत कम हो गई थी। यह मैकऐप की आंतरिक मशीनरी की भूमिका है कि वह बुनियादी ओएस घटनाओं को ले जाए, उन्हें शब्दार्थिक रूप से उच्च-स्तरीय आदेशों में अनुवादित करे, और फिर आदेश को उचित वस्तु तक रूट करे। मैकऐप ने न केवल लेखक को इस कोड को लिखने से राहत दी, जिसकी प्रत्येक प्रोग्राम को आवश्यकता होती है, बल्कि एक दुष्प्रभाव के रूप में भी इस डिज़ाइन ने कोड को कमांड, उपयोगकर्ता-सामना करने वाले कार्यों और उनके संचालकों, आंतरिक कोड में अलग किया, जिसने काम किया। उदाहरण के लिए, किसी के पास "टर्न ग्रीन" और "टर्न रेड" के लिए कमांड हो सकते हैं, जो दोनों एक ही कार्य, चेंजकलर () द्वारा नियंत्रित किए जाते हैं। एक ऐसा प्रोग्राम जो कमांड और हैंडलर को साफ-सुथरे तरीके से अलग करता था, एप्पल की भाषा में, फैक्टर किया गया था। सिस्टम 7 से शुरू होने वाले मैक ओएस के बाद के संस्करणों में एक प्रोग्राम का फैक्टरिंग विशेष रूप से महत्वपूर्ण था। सिस्टम 7 ने ऐप्पल इवेंट्स सिस्टम पेश किया, जिसने मूल मैक ओएस के इवेंट सिस्टम को बहुत समृद्ध के साथ विस्तारित किया, जिसे केवल ओएस से किसी विशेष एप्लिकेशन तक ही नहीं, बल्कि अनुप्रयोगों के बीच भेजा जा सकता था। इसे ऐपलस्क्रिप्ट प्रणाली के साथ जोड़ा गया था जिसने इन घटनाओं को स्क्रिप्टिंग कोड से उत्पन्न करने की अनुमति दी थी। मैकऐप 3 में, ऐप्पल इवेंट्स को उन्हीं आदेशों में डिकोड किया गया था जैसे कि वे सीधे उपयोगकर्ता कार्यों द्वारा शुरू किए गए थे, जिसका अर्थ है कि डेवलपर को सीधे ऐप्पल इवेंट्स को संभालने के लिए ज्यादा, यदि कोई हो, कोड नहीं लिखना पड़ता था। यह मैकऐप 2 सहित पहले के सिस्टम का उपयोग करने वाले डेवलपर्स के लिए एक बड़ी समस्या थी, जिसमें ऐसा कोई अलगाव नहीं था और अक्सर ऐप्पल इवेंट समर्थन को छोड़ दिया जाता था। एक अनुप्रयोग ढांचे के रूप में अपनी भूमिका को ध्यान में रखते हुए, मैकऐप में अधिकांश मूल मैक जीयूआई-खिड़कियाँ, मेनू, संवाद और इसी तरह के विजेट को शामिल करने वाली कई पूर्व-रोल्ड वस्तुएँ भी शामिल थीं, जिन्हें सिस्टम के भीतर दर्शाया गया था। दुर्भाग्य से, ऐप्पल आमतौर पर "वास्तविक दुनिया" में उपयोग करने योग्य सिस्टम प्रदान करने के बजाय मौजूदा आंतरिक मैक ओएस कोड पर हल्के रैपर की आपूर्ति करता है। उदाहरण के लिए, टी. टी. ई. व्यू वर्ग को मानक पाठ संपादक विजेट के रूप में पेश किया गया था, लेकिन अंतर्निहित पाठ संपादन कार्यान्वयन गंभीर रूप से सीमित था और ऐप्पल ने खुद अक्सर कहा कि इसका उपयोग पेशेवर अनुप्रयोगों के लिए नहीं किया जाना चाहिए। नतीजतन, डेवलपर्स को अक्सर इस तरह की जरूरतों को पूरा करने के लिए ऐड-ऑन ऑब्जेक्ट्स खरीदने के लिए मजबूर होना पड़ता था, या खुद को रोल करना पड़ता था। पेशेवर गुणवत्ता वाली जी. यू. आई. वस्तुओं के एक समूह की कमी को मैकऐप की सबसे बड़ी समस्याओं में से एक माना जा सकता है। मैकऐप आर16 के जारी होने के साथ इन समस्याओं का समाधान किया गया है। मैकऐप आर16 सभी मैकऐप जीयूआई वस्तुओं के लिए मानक कार्बन नियंत्रण का उपयोग करता है। उदाहरण के लिए, कार्बन ने पूर्ण यूनिकोड पाठ और लंबे दस्तावेज़ समर्थन के लिए बहुभाषी पाठ इंजन (एमएलटीई) की शुरुआत की। आर16 में, मूल टी. टी. ई. व्यू वर्ग को टी. एम. एल. टी. ई. व्यू द्वारा प्रतिस्थापित किया गया है, जो एम. एल. टी. ई. नियंत्रण का उपयोग करता है। उल्लेखनीय उपयोगकर्ता एडोब फ़ोटोशॉप मूल रूप से मैकऐप 1.1.1 के साथ ऑब्जेक्ट पास्कल में लिखा गया था, और बाद में फ़ोटोशॉप 2.5 के लिए सी + + और मैकऐप 3.0 में पोर्ट किया गया था। एप्पल द्वारा मैकऐप रद्द किए जाने के बाद, रखरखाव को फ़ोटोशॉप विकास दल द्वारा आंतरिक रूप से लिया गया था, जिसे पावरपीसी में पोर्ट किया गया था, और इसे विंडोज प्लेटफॉर्म पोर्ट के साथ साझा करने के लिए बदल दिया गया था। संदर्भ बाहरी लिंक मैकऐप के लिए प्रोग्रामर गाइड-इनसाइड मैकिंटोश श्रृंखला मैकिंटोश ऑपरेटिंग सिस्टम एपीआई क्लासिक मैक ओएस प्रोग्रामिंग टूल से पूर्ण प्रलेखन