जॉन बैकस ने IBM में FORTRAN का नेतृत्व किया और साबित किया कि उच्च‑स्तरीय कोड भी तेज़ चल सकता है—जिससे उत्पादकता बढ़ी और सॉफ़्टवेयर एक वास्तविक उद्योग बन सका।

1950 के दशक की शुरुआत में, कंप्यूटर दुर्लभ और महँगे उपकरण थे जो सरकारें, विश्वविद्यालय और बड़ी कंपनियाँ इस्तेमाल करती थीं। वे उस समय के अनुसार शक्तिशाली थे—पर उन्हें प्रोग्राम करना दर्दनाक रूप से धीमा था। कई कार्यक्रम सीधे मशीन कोड या असेंबली में लिखे जाते थे, जहाँ हर निर्देश हार्डवेयर के बहुत सीमित ऑपरेशनों से मेल खाता था। किसी सूत्र में छोटा सा बदलाव कोड के लंबे हिस्सों को फिर से लिखवाता, और एक छोटी सी गलती पूरे रन को घंटों की प्रतीक्षा के बाद क्रैश करा सकती थी।
जॉन बैकस IBM के एक इंजीनियर थे जिन्होंने यह देखा कि लो‑लेवल कोडिंग पर कितना समय बर्बाद हो रहा है। उन्होंने एक छोटी टीम का नेतृत्व किया और कुछ साहसिक करने का निश्चय किया: प्रोग्रामर्स को गणित‑भारी निर्देश उस रूप में लिखने दें जो उनके विचारों के करीब हो, और एक कंपाइलर उसे तेज़ मशीन कोड में बदल दे।
प्रोजेक्ट FORTRAN ("Formula Translation" का संक्षेप) बन गया, जिसका लक्ष्य IBM के वैज्ञानिक ग्राहक थे—वो लोग जो संख्यात्मक काम करते थे, न कि क्लर्क कार्य। वादा सीधा था: कम कोड लिखो, कम बग पाओ, और IBM 704 जैसे मशीनों पर अभी भी प्रभावी रूप से चलो।
उस समय, कई प्रोग्रामर मानते थे कि उच्च‑स्तरीय भाषाएँ एक विलासिता हैं। उनका आशय था कि कुछ भी "इंग्लिश‑समान" हाथ से ट्यून किए गए असेंबली की तुलना में काफी धीमा चलेगा—और यह सुविधा के लिए पर्याप्त कारण नहीं होगा। कंप्यूटरों की कीमत ऊँची थी और गणना समय सीमित, इसलिए प्रदर्शन केवल "अच्छा होता" नहीं था—यह सब था।
इसलिए FORTRAN सिर्फ नया सिंटैक्स नहीं था। यह एक दांव था कि स्वचालन विशेषज्ञ मानव कौशल के बराबर कर सकता है: कि एक कंपाइलर इतना अच्छा कोड बना सकता है कि वैज्ञानिकों और इंजीनियरों का भरोसा जीत ले।
FORTRAN की कहानी आंशिक तकनीकी सफलता और आंशिक सांस्कृतिक बदलाव है। आगे हम देखेंगे कि उच्च‑स्तरीय भाषाओं से पहले प्रोग्रामिंग कैसी थी, बैकस की टीम ने ऐसा कंपाइलर कैसे बनाया जो हाथ के कोड से मुकाबला कर सके, और क्यों उस सफलता ने सॉफ़्टवेयर की अर्थव्यवस्था बदल दी—वो पैटर्न जो आज भी आधुनिक टीमें अपनाती हैं।
FORTRAN से पहले, "प्रोग्रामिंग" आमतौर पर कंप्यूटर की अपनी भाषा में निर्देश लिखने का मतलब था—या कुछ थोड़ी सी友्ञानात्मक भाषा।
प्रारम्भिक कंप्यूटर मशीन कोड चलाते थे: संख्यात्मक ऑपकोड और मेमोरी एड्रेस। क्योंकि यह बड़े पैमाने पर संभालना लगभग असंभव था, प्रोग्रामर असेंबली भाषा का इस्तेमाल करते थे, जिसने कई नंबरों को छोटे मेमनोनिक्स से बदल दिया। पर असेंबली अभी भी हार्डवेयर के ऊपर पतली परत थी। आप यह नहीं बताते थे कि आप क्या चाहते हैं—आप यह बताते थे कि कैसे करना है, चरण दर चरण, रजिस्टर दर रजिस्टर।
वैज्ञानिक गणना के लिए इसका मतलब हाथ से लूप, मेमोरी लेआउट और मध्यवर्ती मानों का प्रबंधन करना हो सकता था। यहां तक कि सूत्र में एक छोटा बदलाव कई हिस्सों को फिर से लिखवाता क्योंकि सब कुछ एड्रेस और जंप्स के माध्यम से जुड़ा हुआ था।
असेंबली प्रोग्रामिंग धीमी और नाज़ुक थी। सामान्य समस्याएँ शामिल थीं:
वैज्ञानिक और इंजीनियर सिर्फ एक गणना नहीं चलाते थे—वे मॉडल परिष्कृत करते, सिमुलेशन फिर से चलाते, और "क्या यदि" परिदृश्यों का अन्वेषण करते थे। जब हर अपडेट का मतलब दिन या सप्ताह के recoding और परीक्षण था, प्रयोग धीमा पड़ जाता था।
यहाँ एक नया प्रकार का लागत स्पष्ट हो गया: प्रोग्रामर का समय। हार्डवेयर महँगा था, पर कुशल लोग भी। 1950 के मध्य तक, बाधा हमेशा मशीन की गति नहीं रही—बल्कि यह था कि मनुष्यों को मशीन को उपयोगी काम करने लगने में कितना समय लगता था।
जॉन बैकस शुरुआत से ही "कम्प्यूटर पायोनियर" नहीं थे। भटकते प्रारंभिक करियर और US आर्मी के समय के बाद वे 1950 के दशक की शुरुआत में IBM पहुंचे, जब कंप्यूटर अभी भी दुर्लभ थे और ज्यादातर हाथ से प्रोग्राम किए जाते थे। बैकस जल्दी ही दो बातों के लिए अलग दिखे: नीरस काम के प्रति व्यावहारिक बेचैनी और महत्वाकांक्षी इंजीनियरिंग प्रयासों को संगठित करने की प्रतिभा।
IBM के पास एक समस्या और एक अवसर दोनों थे: IBM 704। यह अपने समय के लिए शक्तिशाली था और गणित‑भारी कार्यों के लिए उपयोगी फीचर (जैसे फ्लोटिंग‑पॉइंट अंकगणित) के साथ डिज़ाइन किया गया था। पर तकनीकी और वैज्ञानिक ग्राहक—इंजीनियर, शोधकर्ता, सरकारी प्रयोगशालाएँ—असेंबली भाषा में लिखने और डिबग करने पर बेहद समय खर्च कर रहे थे। अगर प्रोग्रामिंग इतनी धीमी बनी रही, तो एक बढ़िया कंप्यूटर भी कम उपयोग में रह सकता था।
IBM की शर्त सरल थी और जोखिम भरी भी: 704 को प्रोग्राम करना आसान बनाओ बिना गति खोए।
बैकस ने एक ऐसी टीम का नेतृत्व किया जिसने FORTRAN को दो अविभाज्य परियोजनाओं के रूप में देखा: एक भाषा जिसे लोग लिख सकें, और एक कंपाइलर जो उसे तेज़ मशीन कोड में बदल सके। दूसरी बाजू असली दांव थी। कई विशेषज्ञ मानते थे कि "स्वचालित प्रोग्रामिंग" हमेशा असэффीशिएंट रहेगी और हाथ से ट्यून की गई असेंबली की जगह नहीं ले सकेगी।
उच्च‑स्तरीय भाषा केवल "अच्छा सिंटैक्स" नहीं थी। इसका मतलब था सूत्रों, लूप्स, और संरचित निर्देश उस समस्या के गणित और तर्क के करीब लिखना—और फिर कंपाइलर पर भरोसा करना कि वह हाथ के प्रोग्रामर के समान प्रतिस्पर्धी कोड देगा। यही भरोसा IBM और बैकस जीतने की कोशिश कर रहे थे।
FORTRAN का मुख्य वादा सरल पर क्रांतिकारी था: आप मशीन को हर छोटे कदम के बारे में नहीं बताएँगे, बल्कि ऐसे स्टेटमेंट लिखेंगे जो आपके गणित के अधिक निकट हों।
एक इंजीनियर लिख सकता था "इस सूत्र को कई मानों के लिए गणना करो", बजाय इसके कि वह लोड्स, जोड़, स्टोर्स और जंप्स की श्रृंखला मैन्युअली बताए। उम्मीद यह थी कि प्रोग्रामिंग विचार व्यक्त करने जैसा बन जाएगी—और कम शब्दों में हार्डवेयर के तार जोड़ने जैसा नहीं।
FORTRAN सीधे कंप्यूटर पर नहीं चला। एक अलग प्रोग्राम—कंपाइलर—ने FORTRAN स्रोत को मशीन की अपनी निम्न‑स्तरीय निर्देशों में अनुवाद किया।
इसे आप एक कुशल अनुवादक की तरह सोच सकते हैं: आप ऐसी भाषा में लिखते हैं जिसे इंसान पढ़ सकें; कंपाइलर उसे उस भाषा में लिख देता है जिसे IBM 704 समझता है।
बैकस की टीम एक दुर्लभ संयोजन के लिए लक्ष्य कर रही थी:
आखिरी बिंदु महत्वपूर्ण था। FORTRAN सबके लिए सब कुछ बनने का प्रयास नहीं कर रहा था—यह असली गणनाएँ कम गलतियों के साथ करने के लिए बनाया गया था।
सहनशीलता तीव्र थी। कई प्रोग्रामरों का मानना था कि प्रदर्शन पर पूर्ण नियंत्रण ही जरूरी है, और "स्वचालित" अनुवाद खर्चीला होगा। कुछ लोग डिबगिंग को लेकर चिंतित थे: अगर कंपाइलर अंतिम निर्देश बनाता है, तो आप कैसे जानेंगे कि मशीन असल में क्या कर रही है?
FORTRAN के पहले उपयोगकर्ता इंजीनियर और वैज्ञानिक थे—वे लोग जिनके पास चलाने के लिए समीकरण थे, परीक्षण करने के लिए मॉडल थे, और परिणाम देने की ज़रूरत थी। उनके लिए वादा नवाचार नहीं था; यह समय की बचत, कम ट्रांसक्रिप्शन त्रुटियाँ, और ऐसे प्रोग्राम थे जिन्हें एक छोटी असेंबली‑विशेषज्ञों की पुरोहित‑शिविर के बिना भी साझा और बनाए रखा जा सके।
FORTRAN सिर्फ नए तरीके से लिखने का तरीका नहीं था—यह नए तरीके से अनुवाद करने की मांग करता था। यह अनुवाद कंपाइलर का काम था, और इसकी सफलता तय करेगी कि FORTRAN क्रांति बनेगा या नोट।
एक कंपाइलर को तकनीकी मीटिंग में एक बहुत कुशल दुभाषिए की तरह सोचिए। आप उच्च‑स्तरीय वाक्यों में बोलते हैं ("यह समीकरण गणना करो, हर मान के लिए दोहराओ"), पर दर्शक केवल एक कड़ाई से निम्न‑स्तरीय शब्दावली समझते हैं। एक औसत दुभाषिए आपका अर्थ ठीक से अनुवाद कर सकता है पर असहज—धीमा और घुमावदार बनाकर। एक महान दुभाषिए अर्थ और कुशलता दोनों बचाकर अनुवाद करता है।
FORTRAN को उस महान दुभाषिए की जरूरत थी।
प्रारम्भिक प्रोग्रामर FORTRAN को सौंदर्य या आराम के लिए नहीं चुन रहे थे। वे इसे तभी चुनते थे जब यह अपना किराया चुका दे: कम कोड घंटे बिना रनटाइम दंड के। महँगी मशीनों पर बेकार CPU समय पैसे की बर्बादी था—और वैज्ञानिक कार्य में धीमा कोड परिणामों को देर या बेकार कर सकता था।
इसलिए असली उत्पाद भाषा विनिर्देश नहीं था; यह कंपाइलर के आउटपुट था। अगर कंपाइल्ड प्रोग्राम हाथ‑लिखित असेंबली के लगभग उतना तेज चल पाता, तो टीमें स्विच करने का औचित्य बना सकती थीं। अगर नहीं, तो वे FORTRAN को छोड़ देते।
FORTRAN की प्रमुख बिक्री बिंदु—गणित को गणित जैसा लिखना—कंपाइलेशन को कठिन बनाता था। कंपाइलर को चाहिए था:
कई इंजीनियर मानते थे कि उच्च‑स्तरीय कोड निश्चित रूप से धीमा होगा। बैकस की टीम को उस धारणा को सबूत से हराना था: ऐसे कंपाइल्ड प्रोग्राम जो प्रतिस्पर्धी, पूर्वानुमेय और भरोसेमंद हों। बिना प्रदर्शन की विश्वसनीयता के, FORTRAN सिर्फ एक अकादमिक सुविधा बनी रहती।
FORTRAN का बड़ा वादा यह नहीं था कि यह आपको तेज़ कोड लिखने देगा—बल्कि यह था कि कंपाइलर ऐसा कोड तैयार करेगा। यह इसलिए महत्वपूर्ण था क्योंकि शुरुआती अपनाने वाले शौकिया नहीं थे; वे इंजीनियर और वैज्ञानिक थे जो मशीन‑घंटों में मूल्य नापते थे और परिणामों की समयबद्धता पर निर्भर थे।
ऑप्टिमाइज़ेशन वह अतिरिक्त काम है जो कंपाइलर आपके लिए करता है। आप स्पष्ट, गणित‑समान स्टेटमेंट लिखते हैं, और कंपाइलर चुपचाप उन्हें कम निर्देशों, कम मेमोरी एक्सेस और कम समय में बदल देता है।
लक्ष्य "चालाक होने" का नहीं था। लक्ष्य भरोसेमंद रूप से कुशल होना था—ताकि लोग भरोसा कर सकें कि FORTRAN में लिखना उन्हें धीमी गति के साथ दंडित नहीं करेगा।
FORTRAN कंपाइलर ने जिन सुधारों को लागू किया, वे रोज़मर्रा की सहज धारणा से मेल खाते थे:
इनमें से किसी भी चीज़ के लिए प्रोग्रामर को इंस्ट्रक्शन‑लेवल समय या मेमोरी एड्रेस के बारे में सोचना ज़रूरी नहीं था—फिर भी यही विवरण असेंबली प्रोग्रामरों के लिए मायने रखते थे।
असेंबली का मजबूत तर्क था: "मैं हमेशा इसे हाथ से और तेज़ बना सकता हूँ।" शुरुआती संशयवादी मानते थे कि उच्च‑स्तरीय भाषा भारी और व्यर्थ कोड पैदा करेगी।
बैकस की टीम ने उस संशय को एक उत्पाद आवश्यकता के रूप में लिया। अनुकूलन न तो एक अतिरिक्त सुविधा था; यह यह साबित करने का तरीका था कि अभिव्यक्ति का मतलब प्रदर्शन छोड़ना नहीं है।
जब यह खबर फैली कि FORTRAN प्रोग्राम कई असली वर्कलोड्स में हाथ‑लिखित असेंबली की तुलना में प्रतिस्पर्धी चल सकते हैं, तो अपनाना तेज़ी से बढ़ा। कंपाइलर एक भरोसेमंद साथी जैसा बन गया: इरादा स्पष्ट लिखो, कंपाइलर विवरण निपटाए, और मशीन‑सम्मानित परिणाम अभी भी मिलें।
FORTRAN सिर्फ़ "अच्छा दिखता था" असेंबली से; उसने कुछ व्यावहारिक विचारों को पैकेज किया जो वैज्ञानिकों और इंजीनियरों के रोज़मर्रा के काम से सीधे मेल खाते थे: किसी गणना को दोहराना, किसी विधि को पुन:उपयोग करना, और बहुत सारे संख्याओं को व्यवस्थित रूप से रखना।
वैज्ञानिक प्रोग्रामों में बहुत सारे "N बार यह करो" कार्य होते हैं: मापन जोड़ना, समय के साथ कदम, समाधान की ओर इटरेट करना, या बहुत सारे डाटा प्वाइंट्स पर वही सूत्र चलाना। असेंबली में दोहराव अक्सर हाथ से लिखे गए जंप लॉजिक का मतलब था—गलत करना आसान और बाद में पढ़ना मुश्किल।
FORTRAN का DO लूप उस इरादे को स्पष्ट कर देता था:
SUM = 0.0
DO 10 I = 1, 100
SUM = SUM + X(I)
10 CONTINUE
कई जंप और काउंटर मैन्युअली प्रबंधित करने के बजाय, प्रोग्रामर रेंज बता सकता था और सूत्र पर ध्यान दे सकता था।
इंजीनियरिंग का काम बार‑बार होता है: मैट्रिक्स गुणा, यूनिट कन्वर्ज़न, बहुपदीय का मूल्यांकन, या मानक डेटा फॉर्मैट पढ़ना। सबरूटीन एक भरोसेमंद रूटीन लिखने और कई जगहों से कॉल करने देते थे। इससे कॉपी‑पेस्ट प्रोग्रामिंग कम हुई—जो गलतीयों के फैलने का सबसे तेज़ तरीका है।
इतना ही नहीं, सबरूटीन बड़े प्रोग्राम को छोटे हिस्सों में बाँटने की प्रोत्साहना देते थे जिन्हें लोग अलग‑अलग समीक्षा, परीक्षण और सुधार कर सकें।
मापन, वेक्टर, तालिकाएँ, ग्रिड और मैट्रिसेस वैज्ञानिक कंप्यूटिंग के केंद्र में हैं। एरेज़ ने प्रोग्रामरों को उस संरचना को सीधे व्यक्त करने का रास्ता दिया, बजाय कई अलग वेरिएबल्स या मेमोरी में मैन्युअल एड्रेस अरिथमेटिक के।
असेंबली‑भारी नियंत्रण प्रवाह में बहुत सारे कंडीशनल और अनकंडीशनल जंप्स होते थे। एक गलत लेबल परिणाम चुपचाप तोड़ सकता था। लूप्स और नामित सबरूटीन जैसी संरचित साधन प्रदान करके, FORTRAN ने उलझी जंप लॉजिक की जरूरत घटाई—जिससे प्रोग्राम सत्यापित करने में आसान और परिवर्तन के तहत कम नाज़ुक बने।
FORTRAN सिर्फ़ प्रयोगशाला का विचार नहीं था—यह इसलिए व्यापक रूप से सफल हुआ क्योंकि वास्तविक, महँगे और समय‑संवेदनशील समस्याएँ इसे बार‑बार इस्तेमाल करने लगीं। कोई भाषा प्रशंसनीय हो सकती है (यहाँ तक कि प्रभावशाली भी) बिना रोज़मर्रा के काम को बदले। FORTRAN ने रोज़मर्रा के काम बदले क्योंकि टीमों ने वाकई पर उसे समय‑सीमाएँ और बजट सौंपे।
शुरुआती अपनाने वाले वे समूह थे जिनका जीवन और मृत्यु गणना पर निर्भर था: एयरोस्पेस प्रोग्राम, भौतिकी प्रयोगशालाएँ, मौसम और जलवायु परियोजनाएँ, और संरचनात्मक व इलेक्ट्रिकल गणनाएँ करने वाले इंजीनियरिंग विभाग। ये खिलौने नहीं थे। ये कार्यभार ऐसे थे जहाँ उत्पादकता में छोटा सुधार भी अधिक प्रयोग, अधिक डिजाइन पुनरावर्तन और कम छुपी त्रुटियाँ मतलब रखता था।
FORTRAN विशेष रूप से फिट बैठता था क्योंकि इसके मुख्य फीचर समस्याओं की आकृति से मेल खाते थे: मैट्रिसेस और ग्रिड के लिए एरेज़, दोहराव के लिए लूप्स, और गणित‑भारी कोड को प्रबंधनीय हिस्सों में बाँटने के लिए सबरूटीन।
असेंबली प्रोग्राम मशीन‑विशेष और ऐसे अंदाज़ में लिखे जाते थे जिन्हें बाहरी लोग पढ़ना या संशोधित करना मुश्किल पाते थे। FORTRAN जादुई रूप से पोर्टेबल नहीं बनाता था, पर उसने प्रोग्रामों को अधिक समझने योग्य बनाया। इससे किसी संगठन के भीतर—और धीरे‑धीरे संगठनों के बीच—कोड साझा करना व्यावहारिक हो गया बिना मूल लेखक को हर विवरण "अनुवाद" करने के।
एक बार प्रोग्रामर ऊँचे स्तर पर गणनाएँ व्यक्त कर सके, भरोसेमंद रूटीन की लाइब्रेरी रखना सार्थक हो गया। टीमें संख्यात्मक तरीके, इनपुट/आउटपुट पैटर्न और डोमेन‑विशिष्ट गणनाओं को कम डर के साथ दोबारा उपयोग कर सकती थीं। यह बदलाव—कोड को एक परिसंपत्ति मानना जिसे बनाए रखा और पुनः उपयुक्त किया जा सके—प्रोग्रामिंग को एक‑बार का शिल्प से दोहराने योग्य काम की ओर ले गया।
FORTRAN ने सिर्फ़ एक मशीन को आसान नहीं बनाया; उसने यह निर्धारित करने में मदद की कि प्रोग्रामिंग भाषाओं को क्या करना चाहिए—और कंपाइलरों से क्या उम्मीद की जा सकती है—ऐसे समय में जब दोनों विचार विवादास्पद थे।
FORTRAN की सफलता से एक प्रमुख सबक यह है कि भाषा डिजाइन और कंपाइलर डिजाइन अलग नहीं किए जा सकते। शुरुआती आलोचक न केवल "इंग्लिश‑समान" कोड पर संशय व्यक्त कर रहे थे; वे संदेह करते थे कि क्या कंपाइलर इसे कुशल मशीन निर्देशों में बदल सकता है। FORTRAN टीम का उत्तर—कम्पाइलेशन और अनुकूलन में भारी निवेश—आने वाली भाषाई परियोजनाओं में गूँजता रहा।
आप इस मानसिकता को बाद की कई प्रणालियों में देख सकते हैं: बेहतर कंपाइलर तकनीकें बेहतर भाषाओं को खोलती हैं—सुरक्षित अभिव्यक्तियाँ, स्पष्ट सिंटैक्स, उच्च उत्पादकता बिना प्रदर्शन के त्याग के। कई बाद की प्रणालियाँ इस विचार को अपनाती हैं कि कंपाइलर वह काम करे जो पहले प्रोग्रामरों को मैन्युअल करना पड़ता था।
FORTRAN ने यह सामान्य कर दिया कि खासकर संख्यात्मक वर्कलोड्स के लिए कंपाइलर को प्रतिस्पर्धी कोड देना चाहिए। हर बाद की भाषा ने वही प्रदर्शन लक्ष्य नहीं अपनाया, पर आधारभूत उम्मीद बदल गई: उच्च‑स्तरीय का मतलब धीमा होना जरूरी नहीं।
इसने कंपाइलर शोध और अभ्यास को अनुकूलन तकनीकों (जैसे लूप विश्लेषण, गणनाओं का पुन:व्यवस्थित करना, और रजिस्टर प्रबंधन) की ओर मोड़ा जो आने वाले दशकों में मानक विषय बने।
शुरुआती FORTRAN IBM हार्डवेयर से नज़दीकी से जुड़ा था, और शुरुआत में पोर्टेबिलिटी मुख्य विक्रय बिंदु नहीं थी। पर जैसे‑जैसे FORTRAN फैलता गया, वैज्ञानिक कोड को फिर से लिखने की लागत स्पष्ट हुई। समय के साथ व्यापक ऐतिहासिक सहमति FORTRAN को एक प्रमुख शक्ति के रूप में मानती है जिसने भाषा मानकीकरण की दिशा में उद्योग को प्रेरित किया।
परिणाम तुरंत नहीं आया, और पूर्ण भी नहीं था—पर इसने एक मिसाल स्थापित की: ऐसी भाषाएँ जो किसी एक विक्रेता या कंप्यूटर पीढ़ी से आगे जीवित रहना चाहती हैं, उन्हें स्थिर परिभाषाएँ चाहिए, केवल अच्छी इम्प्लीमेंटेशन नहीं।
FORTRAN ने एक दुखद समस्या हल कर दी—जटिल गणनाएँ बिना असेंबली में डूबे लिखना—पर उसने प्रोग्रामिंग "आसान" नहीं बना दिया। शुरुआती उपयोगकर्ताओं ने पाया कि एक उच्च‑स्तरीय भाषा एक समस्या के सेट को हटा सकती है पर नए मुद्दे उभर सकते हैं।
FORTRAN की गति की साख के साथ कुछ समझौते आए। प्रोग्राम अक्सर उस तरह से आकार لیتे थे जिस तरह कंपाइलर अनुकूलित कर सके, न कि जिस तरह सबसे पठनीय हो।
एक उदाहरण: एक वैज्ञानिक स्पष्ट गणना को कई चरणों में बाँट सकता था या वक्तव्य‑क्रम बदल सकता था केवल इसलिए कि वह तेज़ चलता। परिणाम ऐसा कोड हो सकता था जो अच्छा चलता था पर नए साथी के लिए समझना कठिन था।
FORTRAN को अक्सर मशीनों के पार कार्यक्रमों को स्थानांतरित करने में मददगार माना जाता है, पर शुरुआती दौर में "पोर्टेबल" शब्द पर तार लगे हुए थे। कंप्यूटर शब्द आकार, I/O उपकरण और संख्यात्मक व्यवहार में भिन्न थे। टीमें कभी‑कभी अलग‑अलग मशीनों के लिए अलग संस्करण रखतीं, या जब विशेष सुविधाओं की ज़रूरत होती तो मशीन‑विशिष्ट भाग जोड़तीं।
एक साधारण उदाहरण: कार्ड, टेप, या प्रिंटर‑जैसी डिवाइस से डेटा पढ़ना भिन्न संभाल की मांग कर सकता था, भले ही गणित समान हो।
FORTRAN वैज्ञानिक कंप्यूटिंग के लिए बनाया गया था, सब कुछ के लिए नहीं। इसने बड़े कोडबेस को व्यवस्थित करने के मजबूत उपकरण नहीं दिए जैसे बाद की भाषाओं में मिले। डिबगिंग अभी भी धीमी और निराशाजनक हो सकती थी, और शुरुआती कंपाइलर अक्सर cryptic त्रुटियाँ देते जो "वापस असेंबली" जैसा अनुभव कराती थीं—बस शब्द अलग थे।
FORTRAN ने ऐसे तर्कों को जन्म दिया जो आधुनिक टीमें आज भी पहचानती हैं: क्या डेवलपर्स को अधिकतम गति प्राथमिकता देनी चाहिए, या स्पष्ट कोड और उच्च‑स्तरीय अभिव्यक्तियों को? सबसे अच्छा उत्तर संदर्भ पर निर्भर करता है—फिर भी आज भी वही विचार लागू होते हैं।
FORTRAN ने दिखाया कि अभिव्यक्ति लाभ दे सकती है, पर हर सुविधा की सीमाएँ होती हैं और टीमों को तय करना पड़ता है कि कौन‑से ट्रेड‑ऑफ़ स्वीकार्य हैं।
FORTRAN सफल इसलिए हुआ क्योंकि इसने डेवलपर समय को दुर्लभ संसाधन माना। बैकस और IBM ने सिर्फ़ सुंदर सिंटैक्स नहीं बनाया—उन्होंने साबित किया कि टूल्स में निवेश पूरे सॉफ़्टवेयर वर्ग की संभावनाएँ खोल सकता है।
FORTRAN का संदेश सरल था: कम लाइने लिखो, अधिक सही प्रोग्राम भेजो। आधुनिक टीमें यह बार‑बार फिर से सीखती हैं। एक हफ़्ता जो सुरक्षित API, स्पष्ट मॉड्यूल सीमा, या किसी पीड़ादायक वर्कफ़्लो को स्वचालित करने पर खर्च होता है, अक्सर एक हॉट लूप से 3% निकालने से अधिक मूल्य लौटाता है—जो शायद मायने ही नहीं रखता।
लोग FORTRAN पर संदेह करते थे क्योंकि अब्स्ट्रैक्शन नियंत्रण छोड़ने जैसा लगता था। कंपाइलर ने प्रदर्शन हाथ‑लेखित असेंबली के करीब लाकर वह भरोसा बनाया।
आधुनिक समकक्ष फ्रेमवर्क्स, मैनेज्ड रनटाइम और क्लाउड सर्विसेज में भरोसा है—पर वह भरोसा कमाया जाता है, स्वतः नहीं। जब कोई अब्स्ट्रैक्शन टूटती है, टीमें फिर "मैन्युअल मोड" में चली जाती हैं। इसका उपाय वही है जो 1957 में था: मापनीय प्रदर्शन, पारदर्शी व्यवहार, और अनुमानित विफलता‑मोड।
FORTRAN सिर्फ़ एक भाषा नहीं थी—यह एक कंपाइलर प्रयास था जिसने उच्च‑स्तरीय प्रोग्रामिंग को बड़े स्तर पर व्यावहारिक बनाया। आज के समतुल्य हैं:
एक नई श्रेणी भी है जो मूल FORTRAN शर्त की नकल करती है: स्वचालन का उपयोग करके मनुष्यों से "कम्पाइलर‑नित्य" सिस्टम में काम स्थानांतरित करना। Vibe‑coding प्लेटफ़ॉर्म जैसे Koder.ai इस विचार को आगे बढ़ाते हैं—टीमें चैट में इच्छा बताती हैं और एजेंट‑आधारित सिस्टम वास्तविक एप्लिकेशन (उदा., वेब पर React, बैकएंड पर Go + PostgreSQL, और मोबाइल के लिए Flutter) जनरेट और इटरेट करते हैं। व्यवहार में, प्लानिंग मोड, स्नैपशॉट्स और रोलबैक जैसी खूबियाँ वही चीज़ देना चाहती हैं जो FORTRAN ने साबित किया: उच्च‑स्तरीय इरादा बिना परिचालन नियंत्रण खोए।
अच्छे टूल्स सिर्फ बग रोकते नहीं; वे महत्वाकांक्षा बढ़ाते हैं। वे छोटी टीमें बड़ी प्रणालियाँ बनाने में सक्षम बनाते हैं।
बैकस का दीर्घकालिक प्रभाव यह विचार है कि सॉफ़्टवेयर तब स्केल करता है जब कोड के चारों ओर की प्रणाली—भाषा, कंपाइलर और प्रथाएँ—लोगों को तेज़ और अधिक आत्मविश्वास के साथ काम करने में मदद करे। यह आज भी आधुनिक इंजीनियरिंग टीमों का प्लेबुक है।
FORTRAN ने मानव-समय की लागत को कम किया बिना रनटाइम पर बड़ा समझौता किए।
कंपाइलर एक ऐसा प्रोग्राम है जो मानव-पठनीय स्रोत को मशीन के निम्न-स्तरीय निर्देशों में बदलता है।
FORTRAN के मामले में, कंपाइलर को दो चीज़ें अच्छी तरह करनी थीं:
प्रारम्भिक उपयोगकर्ताओं के लिए बड़ा सवाल यही था कि हाई-लेवल भाषा धीमी तो नहीं होगी। अगर FORTRAN काफी धीमा चलता, तो वैज्ञानिक और इंजीनियर इसके आराम के लाभ को जस्टिफ़ाई नहीं कर पाते।
FORTRAN की अपनाने की बाधा मुख्यतः इस विश्वास पर टिकी थी कि कंपाइलर प्रतिस्पर्धी मशीन कोड दे पाए।
FORTRAN कंपाइलर ने कई व्यावहारिक अनुकूलन (optimizations) लागू किए ताकि वह असेंबली से प्रतिस्पर्धा कर सके। उदाहरण:
ये वही तरकीबें थीं जिन पर असेंबली प्रोग्रामर भरोसा करते थे—अब स्वतः हो रही थीं।
FORTRAN ने महत्वपूर्ण संख्यात्मक पैटर्नों को सहजता से व्यक्त करना आसान बना दिया:
DO लूप्स रेंज पर दोहराव के लिए।इन सुविधाओं ने "रहस्यमयी जंप्स" और मैन्युअल एड्रेस अरिथमेटिक को घटाया—जो असेंबली में आम त्रुटियों के स्रोत थे।
नहीं तुरंत, और न ही पूर्ण रूप से। शुरुआती FORTRAN ने मानव-लेखन लागत और पठनीयता कम की, पर असली पोर्टेबिलिटी सीमित रही:
समय के साथ, वैज्ञानिक कोड को एक मशीन से दूसरी मशीन पर ले जाने की आवश्यकता ने भाषा मानकीकरण की दिशा में दबाव बढ़ाया।
यह आर्थिक मॉडल बदलकर हुआ:
इस तरह FORTRAN ने प्रोग्रामिंग को एक उद्योग बनाने में मदद की।
कुछ सीमाएँ और आलोचनाएँ बनीं:
यानी FORTRAN ने एक बड़ा बोझ हटाया, पर जटिलता पूरी तरह नहीं मिटाई।
मुख बात यह है कि टूलिंग में निवेश स्केल खोल सकता है:
हाँ—वह आज भी वैज्ञानिक और संख्यात्मक कंप्यूटिंग में व्यापक रूप से उपयोग होता है, खासकर जहाँ पर परिपक्व, मान्य किए गए लाइब्रेरी और दीर्घकालिक कोडबेस महत्वपूर्ण हों।
यदि आप इसे सीख रहे हैं तो सुझाव: