कैलकुलस, एक्चुएरियल टेबल, और मैकेनिकल कैलकुलेटर का आविष्कार करने के बाद और “सभी संभव दुनिया में सबसे अच्छा” वाक्यांश को गॉटिंग करते हुए, गॉटफ्रीड लीबनिज़ ने अभी भी महसूस किया कि उनके जीवन का काम अधूरा था। लड़कपन के बाद से, 17 वीं शताब्दी के पॉलीमैथ ने जो कहा था, उसे बनाने का सपना देखा था सार्वभौमिक विशेषता-एक भाषा जो पूरी तरह से सभी वैज्ञानिक सत्य का प्रतिनिधित्व करती है और नई खोजों को आसान बनाने के रूप में व्याकरणिक रूप से सही वाक्यों को लिखने के रूप में आसान बनाती है। यह “मानव विचार की वर्णमाला” झूठ या अस्पष्टता के लिए कोई जगह नहीं छोड़ती है, और लीबनिज़ अपने जीवन के अंत तक इस पर काम करेगा।
Leibniz के ड्रीम का एक संस्करण आज प्रोग्रामिंग भाषाओं में रहता है। वे भौतिक और दार्शनिक ब्रह्मांड की समग्रता का प्रतिनिधित्व नहीं करते हैं, लेकिन इसके बजाय, अगली सबसे अच्छी चीज-कभी-कभी झटका देने वाले और शून्य जो कंप्यूटर की आंतरिक स्थिति (बाइनरी, एक और लीबनिज़ आविष्कार) बनाते हैं। कंप्यूटर वैज्ञानिक बहादुर या पागल नई भाषाओं का निर्माण करने के लिए अपने स्वयं के पीछा करते हैं सार्वभौमिक विशेषताएक ऐसी प्रणाली जो डेवलपर्स को कोड लिखने की अनुमति दे सकती है ताकि यह स्पष्ट हो कि वह बग को छिपाने के लिए कोई अंधेरा कोनों को छोड़ देता है और इसलिए कि टिप्पणी, प्रलेखन और इकाई परीक्षण अनावश्यक हो जाते हैं।
लेकिन अभिव्यक्ति, निश्चित रूप से, व्यक्तिगत स्वाद के बारे में उतना ही है जितना कि यह सूचना सिद्धांत है। मेरे लिए, बस के रूप में सुनना परमानंद की उलटी गिनती एक किशोरी के रूप में, स्टेली डैन के लिए एक आजीवन आत्मीयता को मजबूत किया, प्रोग्रामिंग भाषाओं में मेरा स्वाद सबसे पहले सबसे पहले आकार का था जिसे मैंने अपने दम पर सीखा था।
यह तर्क देने के लिए कि ऑब्जेक्टिव-सी एक आध्यात्मिक रूप से दिव्य भाषा से मिलता-जुलता है, या यहां तक कि एक अच्छी भाषा भी है, यह कहना है कि शेक्सपियर को सुअर लैटिन में सबसे अच्छी सराहना की जाती है। उद्देश्य-सी, सबसे अच्छा, ध्रुवीकरण है। इसकी अविश्वसनीय क्रिया और अजीबोगरीब वर्ग कोष्ठक के लिए उपहास किया जाता है, इसका उपयोग केवल मैक और iPhone ऐप्स के निर्माण के लिए किया जाता है और 1990 के दशक की शुरुआत में अस्पष्टता में फीका पड़ गया था, यह इतिहास की एक अप्रत्याशित विचित्रता के लिए नहीं था। फिर भी, मेरे समय में 2010 के दशक की शुरुआत में सैन फ्रांसिस्को में एक सॉफ्टवेयर इंजीनियर के रूप में काम कर रहे थे, मैंने बार -बार खुद को सोम में गोता बार में या हैकनेव्स की टिप्पणियों में अपने सबसे बोझिल डिजाइन विकल्पों का बचाव करते हुए पाया।
ऑब्जेक्टिव-सी मेरे पास आया जब मुझे इसकी सबसे अधिक आवश्यकता थी। मैं एक राइजिंग कॉलेज सीनियर था और इसमें कंप्यूटर विज्ञान में बहुत देर हो चुकी थी। पीने के लिए एक वयस्क के रूप में, मैंने देखा कि किशोरों ने प्रवेश स्तर के सॉफ्टवेयर इंजीनियरिंग कक्षाओं में मेरे चारों ओर घेरे चलाते हैं। स्मार्टफोन बस प्रसार करना शुरू कर रहे थे, लेकिन मुझे एहसास हुआ कि मेरे स्कूल ने किसी भी मोबाइल विकास कक्षाओं की पेशकश नहीं की थी – मुझे एक आला मिला था। मैंने ऑब्जेक्टिव-सी सीखा कि गर्मियों में एक काउबॉय-थीम वाली पुस्तक श्रृंखला से शीर्षक द बिग नर्ड रेंच। पहली बार मैंने एक बड़ी स्क्रीन पर कोड लिखा और देखा कि यह मेरे हाथ में छोटी स्क्रीन पर पिक्सेल को हल्का करता है, मैं ऑब्जेक्टिव-सी के लिए कड़ी मेहनत करता हूं। इसने मुझे असीमित आत्म-अभिव्यक्ति की नशीली शक्ति का एहसास कराया और मुझे विश्वास दिलाया कि मैं जो कुछ भी कल्पना कर सकता हूं उसे बना सकता हूं। मैं वास्तव में एक सार्वभौमिक भाषा में ठोकर खाई थी और इसके बारे में सब कुछ प्यार करता था – जब तक कि मैंने नहीं किया।
भाग्य का खेल
ऑब्जेक्टिव-सी ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग युग के शुरुआती दिनों में आया था, और सभी खातों द्वारा, इसे कभी भी नहीं बचना चाहिए था। 1980 के दशक तक, सॉफ्टवेयर प्रोजेक्ट्स एक व्यक्ति, या यहां तक कि एक टीम के लिए, अकेले विकसित करने के लिए बहुत बड़े हो गए थे। सहयोग को आसान बनाने के लिए, ज़ेरॉक्स PARC कंप्यूटर वैज्ञानिक एलन काय ने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग बनाई थी-एक प्रतिमान जिसने कोड को पुन: प्रयोज्य “ऑब्जेक्ट” में व्यवस्थित किया जो एक दूसरे को “संदेश” भेजकर बातचीत करता है। उदाहरण के लिए, एक प्रोग्रामर एक टाइमर ऑब्जेक्ट का निर्माण कर सकता है जो स्टार्ट, स्टॉप और रीडटाइम जैसे संदेश प्राप्त कर सकता है। इन वस्तुओं को तब विभिन्न सॉफ़्टवेयर प्रोग्रामों में पुन: उपयोग किया जा सकता है। 1980 के दशक में, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के बारे में उत्साह इतना अधिक था कि हर कुछ महीनों में एक नई भाषा सामने आ रही थी, और कंप्यूटर वैज्ञानिकों ने तर्क दिया कि हम एक “” की अवक्षेप पर थे “सॉफ़्टवेयर औद्योगिक क्रांति। “
1983 में, टॉम लव और ब्रैड कॉक्स, इंटरनेशनल टेलीफोन एंड टेलीग्राफ में सॉफ्टवेयर इंजीनियर, ऑब्जेक्टिव-सी बनाने के लिए सी प्रोग्रामिंग लैंग्वेज के लोकप्रिय, पठनीय सिंटैक्स के साथ संयुक्त ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग। इस जोड़ी ने भाषा को लाइसेंस देने और वस्तुओं के पुस्तकालयों को बेचने के लिए एक अल्पकालिक कंपनी शुरू की, और इससे पहले कि यह पेट ऊपर गया, उन्होंने ग्राहक को उतारा जो कि उनके निर्माण को अस्पष्टता में गिरने से बचाएगा: अगला, कंप्यूटर फर्म स्टीव जॉब्स ने एप्पल से अपने निष्कासन के बाद स्थापित किया। जब नौकरियां विजयी रूप से 1997 में Apple में लौट आईं, तो उन्होंने नेक्स्ट के ऑपरेटिंग सिस्टम को लाया- और उद्देश्य-सी-उसके साथ। अगले 17 वर्षों के लिए, कॉक्स और लव का निर्माण दुनिया में सबसे प्रभावशाली प्रौद्योगिकी कंपनी के उत्पादों को शक्ति प्रदान करेगा।
मैं डेढ़ दशक बाद ऑब्जेक्टिव-सी से परिचित हो गया। मैंने देखा कि कैसे ऑब्जेक्ट और संदेश एक वाक्य जैसी संरचना पर लेते हैं, चौकोर कोष्ठक द्वारा पंक्चर किए गए, जैसे (self.timer engybumbumberofseconds: 60)। ये कर्ट, हेमिंगवेस्क वाक्य नहीं थे, लेकिन लंबे, पुष्प, प्राउस्टियन वाले, वाक्यात्मक रूप से जटिल और स्क्रॉलव्यूडिडेंडड्रैगिंग जैसे फ़ंक्शन नामों के साथ ज्वलंत इमेजरी: विलडसेलरेट।