परिचय
नमस्ते। स्वागत है। आशा है आप सब अच्छे होंगे। Exercism के लिए जून का महीना बड़ा रहा, क्योंकि इसी महीने Premium लॉन्च हुआ और हमारी 10 साल की वर्षगांठ भी आई। और मुझे उम्मीद है कि Summer of Sexps के दौरान Lisps के साथ खेलते हुए आपको मज़ा आया होगा। अब चलिए 2023 के सातवें महीने पर, और हमारे छठे थीम वाले महीने पर - जुरासिक जुलाई।
जुरासिक से हमारा क्या मतलब है? खैर, हम यह नहीं कह रहे कि ये भाषाएँ विलुप्त हो चुकी हैं - हालाँकि आजकल आप COBOL में नया सॉफ्टवेयर नहीं लिख रहे होंगे। लेकिन ये सबसे पुरानी भाषाओं में से कुछ हैं - कुछ तो 60 साल से भी ज़्यादा पुरानी। इनमें हैरान कर देने वाली मात्रा में सॉफ्टवेयर लिखा गया है, खासकर एंटरप्राइज़ सॉफ्टवेयर। ये सभी बेहद कामयाब भाषाएँ हैं।
तो भाषाएँ कौन-कौन सी हैं: खैर, हम C, C++, COBOL, Fortran और Visual Basic पर नज़र डालेंगे। इस वीडियो में हम C और C++ नहीं देखेंगे, क्योंकि उन्हें हम पहले ही Mechanical March में कवर कर चुके हैं - अगर आपको उन भाषाओं में दिलचस्पी है तो वह वीडियो देख लीजिए। लेकिन थोड़ी देर में हम COBOL, Fortran और Visual Basic को देखेंगे!
बैज
इस महीने इनमें से किसी एक भाषा में 5 अभ्यास पूरे करके बैज पाइए। और साल भर वाले बैज के लिए आपको ये पूरे करने होंगे:
- Bob: स्ट्रिंग और शर्त आधारित लॉजिक के साथ काम कीजिए
- एलर्जी: स्ट्रिंग, संख्याओं और बिटवाइज़ ऑपरेशन के साथ काम कीजिए
- स्ट्रिंग उलटिए: स्ट्रिंग के अक्षरों पर इटरेशन कीजिए
- उच्चतम स्कोर: संख्याओं के ऐरे पर इटरेशन कीजिए
- आर्मस्ट्रांग संख्याएँ: संख्याओं और लूप/इटरेशन के साथ काम कीजिए
अवलोकन
Fortran
-
1950 के दशक में IBM में John Backus ने इसे शुरू किया, ताकि अपने IBM 704 मेनफ्रेम कंप्यूटर के लिए प्रोग्रामिंग करते समय असेंबली भाषा का ज़्यादा व्यावहारिक विकल्प मिल सके
-
इसे साइंटिफिक और इंजीनियरिंग एप्लिकेशन बनाने में अच्छा होने के लिए डिज़ाइन किया गया (नाम Formula Translating System का छोटा रूप है)
-
पहली हाई-लेवल प्रोग्रामिंग भाषा (कोड की लाइनों की संख्या लगभग 20 गुना घटा देती है)
-
यह पहला ऑप्टिमाइज़िंग कंपाइलर भी था (ग्राहक हाई-लेवल प्रोग्रामिंग भाषा इस्तेमाल करने से हिचकिचाते थे, जब तक कि उसका कंपाइलर ऐसा कोड न बना दे जिसका प्रदर्शन हाथ से लिखी असेंबली भाषा के प्रदर्शन के करीब हो)
-
स्टैटिक और स्ट्रॉन्गली टाइप्ड भाषा
-
शुरू में यह सिर्फ इम्परेटिव प्रोग्रामिंग को सपोर्ट करती थी, लेकिन कुछ ही समय बाद प्रोसीजरल प्रोग्रामिंग जोड़ दी गई। बाद के विस्तारों ने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और ऐरे प्रोग्रामिंग जैसे दूसरे पैराडाइम्स का सपोर्ट जोड़ा
-
इसे पहली बार 1966 में Fortran 66 के साथ मानक बनाया गया, और सबसे हाल का अपडेट 2018 में आया!
-
बेहद प्रभावशाली, Basic से लेकर ALGOL तक, कई भाषाओं के लिए प्रेरणा। शुरुआती दौर की प्रोग्रामिंग भाषा खोज का बड़ा हिस्सा Fortran को बेहतर बनाने की कोशिश में लगा था
-
आज भी इसे सक्रिय रूप से विकसित किया जा रहा है, नए फीचर जोड़े जा रहे हैं, और साथ ही बैकवर्ड कंपैटिबिलिटी की मज़बूत गारंटी बनी हुई है (पुराना कोड आमतौर पर आज भी कंपाइल और रन हो जाता है)
-
कोएरे की मदद से अंतर्निहित समानांतरता, जो समानांतरता जताने का सुरक्षित और कुशल तरीका है। फंक्शन को प्योर के रूप में चिह्नित किया जा सकता है, जिससे कंपाइलर को समानांतर कंप्यूटिंग के लिए ऑप्टिमाइज़ करने में मदद मिलती है
-
एलोकेटेबल वेरिएबल की मदद से सुरक्षित मेमोरी हैंडलिंग, जिसमें मेमोरी मुक्त करने की ज़िम्मेदारी कंपाइलर की होती है।
-
C के साथ अंतर्निहित इंटरऑपरेबिलिटी
COBOL
-
1959 में CODASYL कंसोर्टियम ने इसे डिज़ाइन किया (रक्षा विभाग के सहयोग से!), ताकि बिज़नेस एप्लिकेशन बनाने की लागत कम की जा सके (नाम Common Business-Oriented Language का छोटा रूप है)
-
1968 में यह मानक बनी, और इसका सबसे हाल का संशोधन 2014 का है
-
इसके कई अलग-अलग इम्प्लीमेंटेशन हैं, जैसे IBM COBOL, GnuCOBOL (जो C में कंपाइल होती है) और Micro Focus™ Visual COBOL, जो JVM और .NET रनटाइम दोनों पर चलती है
-
स्टैटिकली टाइप्ड भाषा
-
मल्टी-पैराडाइम, इम्परेटिव और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग को सपोर्ट करती है
-
वर्बोज़ (बहुत सारे कीवर्ड) लेकिन बहुत ही इंसानी पढ़ने लायक सिंटैक्स। इससे पढ़ने और मेंटेन करने में आसानी होती है
-
बैकवर्ड कंपैटिबिलिटी अच्छी है, स्पेक स्थिर है। हर तरह से आज़माई हुई
-
प्रदर्शन अच्छा है (फाइनेंस में इस्तेमाल होती है)
Visual Basic
-
Microsoft ने इसे Visual Basic के उत्तराधिकारी के रूप में बनाया, जो .NET रनटाइम पर चलती है (.NET वाला हिस्सा Visual Basic 2003 के बाद नाम से हटा दिया गया था)
-
इसका पहला वर्शन 2002 में आया और 2023 में भाषा को 'stable' घोषित कर दिया गया। इसका मतलब है कि भाषा में नया सिंटैक्स नहीं जोड़ा जाएगा, लेकिन यह अब भी सपोर्टेड भाषा है
-
ज़्यादातर सिंटैक्स Visual Basic जैसा ही है, लेकिन कुछ बदलाव किए गए
-
स्टैटिकली टाइप्ड भाषा, जो स्ट्रॉन्ग और वीक टाइपिंग दोनों को सपोर्ट करती है
-
मल्टी-पैराडाइम भाषा: मुख्य रूप से ऑब्जेक्ट-ओरिएंटेड, लेकिन इम्परेटिव और इवेंट-ड्रिवन प्रोग्रामिंग भी
-
सीखने में आसान (Visual Basic को सीखने में आसान बनाने के लिए ही डिज़ाइन किया गया था)
-
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के लिए बेहतरीन सपोर्ट
-
आज़माए हुए .NET रनटाइम पर चलती है, और सभी .NET लाइब्रेरी तक पहुँच मिलती है
-
ClickOnce डिप्लॉयमेंट के साथ आसान डिप्लॉयमेंट
उपयोग के मामले
Fortran
इसका इस्तेमाल हाई-परफॉर्मेंस कंप्यूटिंग वाले कामों में होता है (सुपरकंप्यूटर), जैसे मौसम का पूर्वानुमान, खगोल विज्ञान और स्ट्रक्चरल इंजीनियरिंग। इसके अलावा यह CAD सॉफ्टवेयर और FORTRAN पर बने कई एप्लिकेशन में भी इस्तेमाल होती है, जैसे NumPy के कई मॉड्यूल FORTRAN 77 लाइब्रेरी का इस्तेमाल करते हैं
COBOL
फाइनेंस में इसका बहुत इस्तेमाल होता है, और आज भी कई वित्तीय सिस्टम बड़े हिस्से में COBOL सॉफ्टवेयर पर चलते हैं (अनुमान है कि करीब 80% वित्तीय लेन-देन COBOL से चलते हैं), हालाँकि आजकल ज़्यादातर काम सिर्फ मेंटेनेंस का होता है। इसका इस्तेमाल कई बिज़नेस एप्लिकेशन में भी होता है, और Walmart में इस्तेमाल होने वाले एक की-वैल्यू स्टोर में भी।
Visual Basic
इसका इस्तेमाल GUI बनाने में (जैसे डेटाबेस के लिए इंटरफ़ेस) और सर्वर से बनने वाली वेबसाइटों में होता है। इसका इस्तेमाल करने वाली कंपनियों में Boeing, Wells Fargo और General Electric शामिल हैं
प्रोग्रामिंग के नज़रिए से ये कैसे अलग हैं?
Fortran
शुरू में यह सिर्फ इम्परेटिव प्रोग्रामिंग को सपोर्ट करती थी, लेकिन कुछ ही समय बाद प्रोसीजरल प्रोग्रामिंग जोड़ दी गई। बाद के विस्तारों ने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और ऐरे प्रोग्रामिंग जैसे दूसरे पैराडाइम्स का सपोर्ट जोड़ा
COBOL
मल्टी-पैराडाइम, इम्परेटिव और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग को सपोर्ट करती है
Visual Basic
मल्टी-पैराडाइम भाषा: मुख्य रूप से ऑब्जेक्ट-ओरिएंटेड, लेकिन इम्परेटिव और इवेंट-ड्रिवन प्रोग्रामिंग भी
खास विशेषताएँ
Fortran
- प्रदर्शन। Fortran भाषा और उसके डेटा टाइप/डेटा स्ट्रक्चर कुशल होने के लिए, यानी बेहतरीन प्रदर्शन देने के लिए डिज़ाइन किए गए हैं। यही वजह है कि इसका इस्तेमाल सुपरकंप्यूटर में होता है
- डिफ़ॉल्ट रूप से बहुत सारे गणितीय फंक्शन सपोर्ट करती है
- ऐरे प्रोग्रामिंग ऐरे और ऐरे के हिस्सों पर ऑपरेशन लगाने का बहुत ही साफ़ तरीका है, जिसमें न खुद इटरेशन करना पड़ता है और न ऐरे की सीमाएँ बतानी पड़ती हैं
COBOL
- फिक्स्ड-पॉइंट अंकगणित में राउंडिंग एरर नहीं होती, फ्लोटिंग पॉइंट संख्याओं के उलट। इसी वजह से यह फाइनेंस के लिए बहुत अच्छी है
- फाइलों (रिकॉर्ड) से पढ़ने और उनमें लिखने के लिए बहुत अच्छी
- COBOL में रिपोर्ट बनाने का अंतर्निहित सपोर्ट है (यह एक और वजह है कि यह बिज़नेस एप्लिकेशन में इतनी लोकप्रिय रही है)
Visual Basic
- Windows Forms का इस्तेमाल करके GUI एप्लिकेशन बनाने के लिए बेहतरीन। ड्रैग एंड ड्रॉप वाला WYSIWYG एडिटर
- IDE सपोर्ट बेहतरीन है, रिफैक्टरिंग, कोड कम्पलीशन और ढेरों और चीज़ों के साथ
किसे आज़माएँ?
- अगर आपको साइंटिफिक कंप्यूटिंग या हाई परफॉर्मेंस में दिलचस्पी है, तो Fortran बेहतरीन विकल्प है
- अगर आप जानना चाहते हैं कि पहले बिज़नेस एप्लिकेशन कैसे बनाए जाते थे, तो COBOL बहुत अच्छी है
- अगर आप GUI एप्लिकेशन बनाने में दिलचस्पी रखते हैं, या पहले से .NET प्लेटफॉर्म पर हैं, तो Visual Basic बहुत अच्छी तरह काम करती है
- अगर आपको प्रोग्रामिंग के इतिहास में दिलचस्पी है, तो COBOL और Fortran दोनों देखने लायक अच्छे ट्रैक हैं