उद्देश्य सी से पहले एप्पल विकास के लिए कौन सी भाषा "मानक" थी?


27

मुझे नहीं लगता कि ऑब्जेक्टिव C Apple हार्डवेयर डेवलपमेंट की शुरुआत से इस्तेमाल में था। ऐप्पल डेवलपर्स ने पहले के ऐप्पल कंप्यूटर, जैसे कि ऐप्पल II या मैक क्लासिक के लिए किन भाषाओं का उपयोग किया था?

जवाबों:


35

1985 में लैरी टेसलर ने Apple, ऑब्जेक्ट पास्कल के लिए पास्कल स्वाद विकसित किया , जो सिस्टम 6 के लिए मानक भाषा बन गई । यह क्लिस्कल पर आधारित था , जो कि लिसा के लिए 1983 का पास्कल वैरिएंट था , जिसे ऐप्पल में भी विकसित किया गया था।

उस समय MacApp , Apple के प्राथमिक अनुप्रयोग ढांचे में ऑब्जेक्ट पास्कल का उपयोग किया गया था । 1991 में रिलीज़ हुआ MacApp 3.0, C ++ में फिर से लिखा गया और Apple ने बाद में C ++ के पक्ष में ऑब्जेक्ट पास्कल के लिए समर्थन छोड़ दिया जब वे मोटोरोला के 68K चिप्स से पावरपीसी में चले गए।

बोरलैंड के ऑब्जेक्ट पास्कल, जो आज एमबार्केरो डेल्फी के रूप में रहता है , 1986 में टर्बो पास्कल के विस्तार के एक सेट के रूप में शुरू हुआ , जो कि एप्पल के ऑब्जेक्ट पास्कल के समान होने का इरादा था। निकलस विर्थ, पास्कल के प्रवर्तक, उनके संबंधित वेरिएंट के लिए Apple और Borland दोनों से परामर्श किया गया था।

इसके विपरीत, Objective C, NeXTSTEP की मुख्य भाषा थी और 1996 में NeXT को खरीदने के बाद ही Apple में पेश किया गया था।


4
अच्छा जवाब है, लेकिन चूंकि यह स्वीकार किया जाता है कि आपको वास्तव में पास्कल और सी दोनों के लिए उल्लेख जोड़ना चाहिए। बहुत शुरुआत से, मैक टूलबॉक्स और ओएस ने पास्कल कॉलिंग सम्मेलनों का उपयोग किया और बड़े पैमाने पर पास्कल के साथ प्रलेखित किया गया था। कई पास्कल संकलक उपलब्ध थे; सबसे लोकप्रिय शायद Lightspeed पास्कल था। C शुरू से ही लोकप्रिय था, और जब तक Thinks ने Lightspeed C और Lightspeed Pascal दोनों को खरीद लिया, तब C शायद इंडी डेवलपर्स के लिए "मानक" विकल्प था। इसके अलावा, Metrowerks C ++ और PowerPlant एक उल्लेख के लायक हैं।
कालेब

1
यह उत्तर इस बात की ओर अधिक झुकाव देता है कि किन भाषाओं के विपरीत विकास के लिए किन रूपरेखाओं का उपयोग किया गया । ओपी का प्रश्न ऑब्जेक्टिव-सी (भाषा) के बारे में था, न कि कोको (फ्रेमवर्क) के बारे में, लेकिन जवाब में मैकएप (फ्रेमवर्क) पर एक पैराग्राफ है और इस तथ्य के अलावा कि सीएपी / सी ++ का थोड़ा सा उल्लेख है कि मैकएप को इसमें पोर्ट किया गया था। एक बहुत आवेदनों की सीधे पास्कल, सी, और / या सी में मैक ओएस टूलबॉक्स ++ के खिलाफ लिखे गए थे। अच्छा जवाब अन्यथा, लेकिन C / C ++ के व्यापक कवरेज की आवश्यकता है।
मुर्दाघर

12

Apple] [आम तौर पर या तो BASIC या 6502 मशीन कोड में प्रोग्राम किया गया था।

लिसा आमतौर पर पास्कल में प्रोग्राम किया गया था।

प्रारंभिक मैकिन्टोश एप्लिकेशन पास्कल में लिखे गए थे, पहले लिसा पर और बाद में मैक पर ही।

थिंक पास्कल एक समय के लिए सबसे लोकप्रिय विकास का माहौल था और फिर थिंक सी। थिंक सी में हल्की वस्तुएं थीं, जिन्हें कभी-कभी C + - और बाद में C ++ कहा जाता है। इसके पास अपनी कक्षा की लाइब्रेरी भी थी, जो उचित रूप से पर्याप्त थी, थिंक क्लास लाइब्रेरी।

Apple से MPW भी लोकप्रिय था क्योंकि इसने आपको भाषाओं (आम तौर पर पास्कल, सी, सी ++, और असेंबलर) को मिलाने की अनुमति दी थी और स्क्रिप्ट एक यूनिक्स वातावरण के समान बनाता है, हालांकि वाक्य रचना बहुत अलग थी।

MacApp को ऑब्जेक्ट पास्कल में लिखा गया था, और जैसा कि किसी ने कहा, बाद में C ++ में चला गया। PowerPC सिस्टम में जाने के साथ, कई प्रोग्रामर Metrowerks CodeWarrior को एक विकास वातावरण और इसके C ++ क्लास लाइब्रेरी, PowerPlant में बदल गए।

ऑब्जेक्टिव-सी का उपयोग नेक्सटी और उसके बाद मैक ओएस एक्स के लिए किया गया था, हालांकि मैक ओएस एक्स एप्लिकेशन को एप्पल के "कार्बन" एपीआई के माध्यम से सी / सी ++ में भी लिखा जा सकता है। इन दिनों अधिकांश मैक और आईओएस ऐप कोको / ओब्ज-सी में लिखे गए हैं, हालांकि कई में सी या सी ++ लाइब्रेरी हैं।


1
Apple /// को पास्कल में भी प्रोग्राम किया गया था (ISTR वहाँ भी BASIC का एक प्रकार उपलब्ध था)। मुझे लगता है कि हमने UCSD pSystem का उपयोग किया, लेकिन एक Apple पास्कल संकलक भी था।
TMN

Apple /// एकमात्र Apple कंप्यूटर था जिसे मैंने कभी प्रोग्राम नहीं किया था। मुझे Apple के लिए UCSD pSystem याद है] [साथ ही, लेकिन मुझे नहीं लगता कि इसमें लिखे गए ऐप्स को वितरित करने का एक अच्छा तरीका था।
एरिकएस

8

मैक ओएस क्लासिक की मानक भाषा पास्कल थी। ओएस के एपीआई प्रलेखन सभी पास्कल के लिए लिखे गए थे, और ओएस के अधिकांश के रूप में हाथ से अनुकूलित एएसएम में नहीं लिखा गया था पास्कल में लिखा गया था।

पावरपीसी आर्किटेक्चर में संक्रमण के बाद, उन्होंने सिस्टम ++ में ओएस को फिर से लिखा, साथ ही सिस्टम स्थिरता में बहुत ध्यान देने योग्य कमी के साथ, जो पास्कल और सी ++ से परिचित किसी के लिए भी आश्चर्यजनक नहीं होगा। एपीआई प्रलेखन मुख्य रूप से पास्कल के लिए लिखा जाना जारी रहा, हालांकि, जब तक स्टीव जॉब्स वापस आ गए और सभी के गले लगाने के लिए ऑब्जेक्टिव-सी को मजबूर करने की कोशिश करने लगे।


4
"सिस्टम स्थिरता में एक बहुत ही ध्यान देने योग्य कमी के साथ, जो पास्कल और सी ++ से परिचित किसी के लिए भी आश्चर्यजनक नहीं होगा": दोनों भाषाओं के साथ काम करने के बाद मैं आसानी से इस पर विश्वास कर सकता हूं। मुझे अभी भी कभी-कभी आश्चर्य होता है कि पास्कल (या कोई वस्तु-उन्मुख विस्तार) वर्तमान में C ++ की तुलना में कम लोकप्रिय क्यों है: आखिरकार, विकास और बग फिक्सिंग के समय में पैसा खर्च होता है। शायद यह इसलिए है क्योंकि पास्कल C ++ के समान एक मजबूत और कॉम्पैक्ट समुदाय बनाने में विफल रहा।
जियोर्जियो

3
पास्कल ज्यादातर असफल रहा क्योंकि कोई मानक नहीं था (अच्छी तरह से मानक बहुत देर से आया था) और सामान्य सबसेट बहुत अधिक प्रतिबंधात्मक था (आपको अलग-अलग संकलन करने के लिए एक्सटेंशन पर निर्भर रहना पड़ता था, आपको उप-पाठ लिखने के लिए एक्सटेंशन पर भरोसा करना पड़ता था जो स्वीकार करने में सक्षम था अलग-अलग लंबाई, आपको एक्सटेंशन पर भरोसा करना था ... आप इसे नाम दें)
एपीग्रामग्राम


4
@KeithThompson, दुर्भाग्य से, कई लोग किसी भी पास्कल एक्सटेंशन के खिलाफ एक तर्क के रूप में उस निबंध को उद्धृत करते हैं। यह "
व्हॉट

2
@Paulo: बिल्ली, मैं तर्क दूंगा कि C ++ में अभी भी उचित कक्षाएं और वंशानुक्रम नहीं हैं। यदि कोई ऑब्जेक्ट वैल्यू टाइप है, न कि रेफरेंस टाइप, तो आपने एलएसपी को तोड़ा है, इनहेरिटेंस का मुख्य सिद्धांत और ओओपी खुद को शुरू से ही। इसीलिए अन्य सभी प्रमुख ऑब्जेक्ट-ओरिएंटेड लैंग्वेज (जिनमें सिमुला भी शामिल है, जिसने कॉन्सेप्ट की उत्पत्ति की, और स्मॉलटॉक, जिसने "ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) शब्द की उत्पत्ति की, ने ऐसा नहीं किया।
मेसन व्हीलर

2

... और मैक (Apple II) से पहले, अधिकांश प्रोग्रामिंग बेसिक में था। (Apple II से IIgs के सभी वेरिएंट के लिए)

मैं Metroworks CodeWarrior का उपयोग करके सिस्टम 7 पर C ++ डेवलपमेंट को भी याद करता हूं - यह (निश्चित रूप से) पोस्ट PowerPC था।


4
ज़रुरी नहीं। पुराने एपल्स का निर्माण BASIC के साथ हुआ था, लेकिन यहां तक ​​कि दिन के मानकों के अनुसार इसे ज्यादातर इसकी खराब प्रदर्शन और ध्वनियों और ग्राफिक्स के लिए न्यूनतम समर्थन के कारण एक खिलौना भाषा के रूप में माना जाता था। बेशक, अपवाद थे, लेकिन Apple II सिस्टम पर सबसे गंभीर प्रोग्रामिंग या तो पास्कल या एएसएम में किया गया था।
मेसन व्हीलर 16

2
आह - धन्यवाद। Apple II पर मेरा प्रोग्रामिंग अनुभव सभी बुनियादी था क्योंकि यह सामान्य रूप से प्रोग्रामिंग के लिए मेरा पहला प्रदर्शन था। (इसलिए हम बुनियादी और उस अनुदेश सेट के साथ अटक गए।) मुझे "लोगो" करना भी याद है, लेकिन मुझे नहीं पता कि किसी ने इसके साथ कोई गंभीर काम किया है या नहीं।
चाड थॉम्पसन

UCSD पास्कल Apple के लिए उपलब्ध एकमात्र "वास्तविक" भाषा थी] [कि मुझे याद है, लेकिन अगर कोई एप्लिकेशन इसका उपयोग करता है तो कुछ। यदि BASIC आपके लिए बहुत धीमा था, तो आप आम तौर पर सीधे असेंबली में जाते थे।
रोबोट

इसकी सीमाओं के बावजूद, मुझे संदेह नहीं होगा कि उन दिनों "अधिकांश प्रोग्रामिंग" बेसिक में किया गया था।
dan04

@ dan04: जहाँ तक मुझे याद है असेंबली का इस्तेमाल आमतौर पर प्रोग्रामिंग Apple के लिए किया जाता था] [। मॉनिटर मोड पर स्विच करना हैकर्स द्वारा सीखी गई पहली चीजों में से एक था।
जियोर्जियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.