7 पॉइंट द्वारा GN⁺ 2025-04-04 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Microsoft के 50 साल के innovation की शुरुआत Altair BASIC code से हुई
  • Office, Windows 95, Xbox और AI से पहले मौजूद इसका पहला product
  • इसी code ने personal computer युग की शुरुआत की और Microsoft की growth की नींव रखी

मैंने लिखा हुआ सबसे शानदार code

  • 1975 में Bill Gates और Paul Allen ने “हर desk और हर घर में computer” के विज़न के साथ Microsoft की स्थापना की
  • Microsoft के 50 साल पूरे होने में Steve Ballmer, Satya Nadella जैसे बेहतरीन leaders और अनगिनत कर्मचारियों का बड़ा योगदान रहा
  • इस ऐतिहासिक पल पर Gates ने खुशी के साथ-साथ हल्की कसक भी महसूस की
    • Harvard के PDP-10 के सामने coding करते वे दिन उन्हें मानो कल की ही बात लगते हैं
  • Microsoft की शुरुआत 1975 में Popular Electronics magazine के cover पर देखे गए Altair 8800 computer से हुई
    • Altair, MITS नाम की एक छोटी electronics company का बनाया kit-type PC था, जो उस समय के हिसाब से बेहद क्रांतिकारी product था
    • magazine देखते ही Gates और Allen ने समझ लिया कि PC क्रांति आने वाली है, और उन्होंने उस लहर का हिस्सा बनने का फैसला किया

BASIC code लिखने का फैसला क्यों किया

  • दोनों छात्र जीवन में Lakeside school में ही computers से मोहित हो गए थे
  • उन्हें इस बात ने प्रभावित किया कि Altair आम लोगों को भी programming का मौका दे सकता है
  • Gates और Allen ने MITS को पहले ही प्रस्ताव दिया कि उन्होंने Altair के लिए BASIC language विकसित कर ली है
  • लेकिन असल में वह software अभी अस्तित्व में ही नहीं था, इसलिए उन्हें उसे खुद बनाना पड़ा

BASIC language की बुनियादी अवधारणा

  • BASIC 1964 में Dartmouth College के दो professors द्वारा बनाई गई beginners के लिए programming language है
  • इसे इस तरह design किया गया था कि computer का बिल्कुल भी अनुभव न रखने वाला व्यक्ति भी थोड़ी-सी learning के बाद खुद program बना सके
    • उदाहरण: checkbook balance calculator, tic-tac-toe game
  • यही वह पहली programming language थी जिसे Gates और Allen ने सीखा था, और यह आज भी इस्तेमाल होती है
  • BASIC अंग्रेज़ी की तरह computer को काम बताने वाली language है, जिससे commands चलाना, math problems हल करना और functions कराना संभव होता है

BASIC को computer से समझाने का तरीका

  • समस्या यह थी कि computer BASIC को सीधे नहीं समझता था
  • Gates और Allen ने तय किया कि वे ऐसा interpreter बनाएँगे जो BASIC code को computer instructions में एक-एक line करके translate और execute करे
    • इसका फायदा यह था कि real-time feedback मिलता, जिससे beginners जल्दी errors सुधार सकते थे
  • उन्होंने पूरे program को एक साथ translate करने वाले compiler तरीके पर भी विचार किया, लेकिन beginners के लिए interpreter अधिक उपयुक्त लगा

development की शुरुआत

  • उस समय उनके पास Altair में इस्तेमाल होने वाली Intel 8080 chip नहीं थी, इसलिए Paul ने Harvard के PDP-10 पर उस chip को emulate करने वाला program बनाया
  • Gates ने interpreter का main code लिखा, और उनके मित्र Monte Davidoff ने math operations module संभाला
  • इन तीनों ने दो महीनों तक दिन-रात काम करके उस software को पूरा किया, जो पहले वास्तव में मौजूद ही नहीं था

memory constraints पर जीत

  • उस समय computer memory बहुत महँगी थी, और Altair में memory बढ़ाने का खर्च कभी-कभी PC की कीमत से भी ज़्यादा हो सकता था
  • लक्ष्य था BASIC interpreter को 4KB के भीतर implement करना
    • इससे users के पास अपने programs चलाने के लिए भी memory बची रहती
  • Gates ने यह लक्ष्य हासिल करने के लिए कई तरह की memory optimization techniques इस्तेमाल कीं
    • उदाहरण: compressed data structures, efficient algorithms

Microsoft का जन्म

  • अनगिनत रातें जागकर पूरा किए गए BASIC interpreter का MITS के प्रमुख Ed Roberts के सामने demo दिया गया
  • demo सफल रहा, और MITS ने इस software का license खरीद लिया
  • इस सफलता के साथ Altair BASIC, Microsoft का पहला product बना, और Micro-Soft नाम की company का जन्म हुआ (बाद में hyphen हटा दिया गया)
  • यही एक code आगे आने वाले 50 वर्षों तक Microsoft की हर innovation का शुरुआती बिंदु बना
  • अधिक विस्तृत कहानी memoir Source Code में देखी जा सकती है

source code download

  • Microsoft की शुरुआत बने Altair BASIC के मूल source code को सीधे देखा जा सकता है
  • Gates के अनुसार, यह पिछले 50 वर्षों में programming कितनी आगे बढ़ी है, इसका एक ऐतिहासिक दस्तावेज़ है, और उन्हें आज भी इस code पर बहुत गर्व है

source code download (PDF)

2 टिप्पणियां

 
iolothebard 2025-04-06

Microsoft द्वारा OEM के रूप में उपलब्ध कराया गया 6502 के लिए BASIC source code (Apple II, Commodore, ..) build किए जा सकने वाली स्थिति में restore(?) किया गया है.
https://github.com/mist64/msbasic

काफी लोग सीधे अपना 6502 SBC बनाकर, उस पर MSBASIC को port भी करते हैं.
https://github.com/beneater/msbasic

सिर्फ हैरान होकर देखना भी अच्छा है, लेकिन खुद इसमें उतरें तो शायद और मज़ेदार हो… ;)

 
GN⁺ 2025-04-04
Hacker News राय
  • source code पढ़ने में मज़ेदार है। मुझे GW-BASIC का source code मिला, जिसमें कुछ दिलचस्प comments हैं
    • एक comment है कि संख्या buffer में फिट नहीं हो सकती, इसलिए stack से सभी characters फिर से निकालने होंगे, शुरुआती buffer position निकालनी होगी, और % चिह्न डालना होगा
    • एक comment है कि random number generator के constants को Knuth Vol 2, Chapter 3 देखे बिना नहीं बदलना चाहिए
  • सुधार: GW-BASIC, QBASIC नहीं
  • Steve Jobs कहा करते थे कि Microsoft की समस्या यह है कि उसमें taste नहीं है
    • scroll करते समय font के flicker होने का effect वही बात याद दिलाता है। यह बहुत distract करता है, और reader mode इस्तेमाल करने पर भी इसे बंद नहीं किया जा सकता
    • वैसे, मुझे Bill Gates और उन्होंने दुनिया के लिए जो किया है, वह पसंद है
  • मैंने Intel 8080 emulator को Dec10/VAX/IBM VM CMS के बीच portable होने लायक लिखा था। 8080 को 256-value switches से आसानी से implement किया जा सकता था। इसे FORTRAN77 में लिखा गया था
    • floating point के साथ BASIC interpreter लिखना कहीं ज़्यादा कठिन है। Gates, Allen और अन्य सहयोगियों का BASIC काफ़ी शानदार था
  • थोड़ी किस्मत और जोखिम लेने की इच्छा ने अप्रत्याशित तरीक़े से नतीजे दिए। मुझे यक़ीन नहीं कि मैं अपने जीवन में PC era जैसी चीज़ फिर देख पाऊँगा। शायद mobile phone या internet वैसा हो सकता है
  • source code आखिर में लिंक है (चेतावनी: यह 100 MB PDF है)
  • सोचता हूँ कि इस website को देखने के लिए JS enable क्यों करना पड़ता है
  • Malcom Harris की Palo Alto पढ़ने के बाद इस लेख को पढ़ना दिलचस्प है
  • यह सच में शानदार है। मुझे लगता है कि text design में अब भी कम इस्तेमाल किया गया माध्यम है
  • मैं कहना चाहता हूँ, "उम्मीद है इस code को ASCII में रखने वाला GitHub repository आएगा," लेकिन फिर एहसास होता है कि Microsoft शायद इसकी अनुमति नहीं देगा
  • Microsoft (और शायद Bill Gates व्यक्तिगत रूप से भी) ने hacker community में काफ़ी "नाराज़गी" पैदा की थी। लेकिन यह नकारा नहीं जा सकता कि वह और Paul Allen असली hackers थे और उन्होंने तकनीकी प्रगति में बहुत मदद की। बेशक, हम सब OSS को पसंद करते हैं और Linus (या किसी और OSS developer) को किसी "लुटेरे पूंजीपति" पर 100 बार चुनेंगे, लेकिन उन्हें उनका श्रेय मिलना चाहिए