• 1983 से 42 वर्षों तक प्रोग्रामिंग करते आए एक डेवलपर का यह लेख AI युग के आगमन के साथ software development की मूल प्रकृति बदलती महसूस होने पर पैदा हुई जटिल भावनाओं को दर्ज करता है
  • 8-bit computer से 486 तक, उस दौर से शुरुआत हुई जब मशीन के हर byte को समझा और सीधे नियंत्रित किया जा सकता था, और उसके बाद अनेक तकनीकी बदलावों से गुज़रने पर भी मूल क्षमताएँ हमेशा स्थानांतरित होती रहीं
  • AI, पहले के platform, language और paradigm बदलावों से अलग, "अच्छा होने" के अर्थ को ही बदल देने वाला परिवर्तन है
  • कोड सीधे लिखने के बजाय review और निर्देश देने की भूमिका में बदलते हुए, puzzle सुलझाने वाला वह घनिष्ठ feedback loop गायब होता जा रहा है
  • 42 साल के अनुभव के साथ अब पहले से तेज़ी से product बनाए जा रहे हैं, लेकिन development से जुड़ी विस्मय की भावना और पहचान एक संक्रमणकालीन बदलाव से गुज़र रही है

वह दौर जिसने मुझे बनाया

  • 1983 में, 7 साल की उम्र में, washing machine chip से भी कम processing power वाली मशीन पर BASIC टाइप करते हुए पहला कोड लिखा
  • RAM के हर byte का उपयोग ट्रैक किया जा सकता था, स्क्रीन के हर pixel को सीधे रखा जा सकता था, और इरादे से नतीजे तक का रास्ता सीधा और दिखाई देने वाला था
  • 8-bit से 486DX2-66 तक का दौर सबसे प्रिय रहा, और हर मशीन का अपना अलग व्यक्तित्व था
    • Sinclair Spectrum का attribute clash, Commodore 64 के SID chip का उसके design intent से आगे जाकर इस्तेमाल, NES की प्रति scanline 8-sprite सीमा से पैदा हुई flickering trick आदि
    • PC, spreadsheet के लिए बने beige box से 286, 386, 486 होते हुए Doom चलाने वाले gaming powerhouse में विकसित हुआ
  • यह सिर्फ product नहीं था, बल्कि दिखाई देने वाले trade-off वाला engineering adventure था, और IRQ conflict, DMA channel, CONFIG.SYS तथा AUTOEXEC.BAT optimization, memory manager जैसी चीज़ों से जूझना अपने-आप में system engineer की भूमिका थी
  • id Software जैसी छोटी टीमें ऐसे समय में साहसी तकनीकी फैसले ले रही थीं जब किसी ने नियम तय नहीं किए थे
    • Carmack की Wolfenstein raycasting, Doom की VGA Mode X trick जैसी मिसालें, जहाँ वास्तविक सीमाओं को धकेलकर सचमुच कुछ नया बनाया गया
  • Plug and Play और Windows abstraction के आने से wild west का अंत हो गया, और कंप्यूटर, सम्मान और समझ की माँग करने वाली मोहक मशीन से बदलकर घरेलू appliance जैसे बन गए

वादे का बिगड़ जाना

  • शुरुआती दौर में इस बात को लेकर सच्चा आशावाद था कि कंप्यूटर क्या बन सकते हैं — Spectrum वाला कोई बच्चा खुद कुछ भी बना सकता था, और शुरुआती web मानव इतिहास के सबसे बड़े equalizer जैसा लगता था
  • वह उम्मीद बाद में असहज दिशा में बिगड़ गई — जिन मशीनों से प्यार था, वही निगरानी और extraction के औज़ार बन गईं
  • जो platform जुड़ाव का वादा करते थे, वे दरअसल उपयोगकर्ताओं को monetize करने के लिए बनाए गए थे
  • tinkerer भावना स्वाभाविक मौत नहीं मरी, बल्कि उसे अधिग्रहित करके ad click optimization में लगा दिया गया
  • यह सिर्फ tools बदल जाने जैसा नुकसान नहीं था — यह उस चीज़ के बदल जाने का दुख था जिससे प्यार था, और फिर उसका इस्तेमाल ऐसी चीज़ों में होना जिन पर गर्व न हो

वे बदलाव जिनसे गुज़रा हूँ

  • 40 साल में अनगिनत तकनीकी बदलाव देखे — नई language, नया platform, नया paradigm, CLI से GUI, desktop से web, web से mobile, monolith से microservices, tape, floppy, hard drive, SSD, और mayfly की तरह आते-जाते JavaScript framework
  • हर लहर के साथ कुछ नया सीखना पड़ा, लेकिन मुख्य कौशल स्थानांतरित किए जा सकते थे — नया platform सीखो, systems कैसे काम करते हैं इसकी पुरानी समझ लागू करो, और बनाते रहो
  • यहाँ तक कि उन platform पर software ship करने का अनुभव भी, जो अब मौजूद नहीं हैं, हर बार industry के नई दिशा में मुड़ने पर अनुभव को चक्रवृद्धि की तरह जमा करता गया
  • अनुभवी डेवलपरों और industry के बीच एक अनकहा समझौता था: "चीज़ें बदलती हैं, लेकिन समझ बनी रहती है"

इस बार बात अलग है

  • पहले के तकनीकी बदलावों की संरचना "नई चीज़ सीखो और पुराने कौशल लागू करो" जैसी थी, लेकिन AI कोई नया platform, language या paradigm नहीं, बल्कि "अच्छा होने के अर्थ" को ही बदल देने वाला बदलाव है
  • यह बात धीरे-धीरे समझ आई — feature बनाते समय और architecture डिज़ाइन करते समय काम तो वही कर रहा हूँ, लेकिन दिलचस्प हिस्सा जैसे खोखला हो गया है
    • elegant solution ढूँढना, constraints से जूझना, और कुछ ठीक बैठ जाने का संतोष — यह सब अब धीरे-धीरे ऐसे model के हवाले हो रहा है जिसे elegance में रुचि नहीं और संतोष का अनुभव नहीं
  • यह सस्ता और तेज़ है, लेकिन भीतर से खाली लगता है
  • अब कोड खुद टाइप करने के बजाय review, निर्देश और सुधार करने की भूमिका में बदलाव आ रहा है — 42 साल में जमा हुई यह समझ कि क्या काम करता है और क्या नहीं, अभी भी मूल्यवान है, लेकिन यह अलग तरह का काम है और वैसा महसूस नहीं होता
  • feedback loop बदल गया है और घनिष्ठता गायब हो रही है — वे puzzle, tracing, और अंततः यह समझ पाने के क्षण कि कुछ काम क्यों नहीं कर रहा, जो दशकों तक रातें जगाते थे, अब prompt और response में सिमट रहे हैं
  • अब ऐसे लोगों को ऊपरी तौर पर मिलते-जुलते नतीजे बनाते देख रहे हैं जिनके पास अनुभव का बहुत छोटा हिस्सा है — craftsmanship का अंतर असली है, लेकिन बाहर से देखना कठिन है, और उसका मूल्य आँकना या भीतर से महसूस करना भी कठिन होता जा रहा है

abstraction का टॉवर

  • LinkedIn पर 20s की शुरुआती उम्र के, कुछ साल के अनुभव वाले डेवलपरों को AI के कारण यह कहते देखा कि "समझ ही नहीं आ रहा कि क्या हो रहा है"
  • उन्हें यह एहसास नहीं था कि वे पहले से ही abstraction chain के सबसे ऊपर, डगमगाते Jenga टॉवर पर खड़े थे
    • TypeScript → JavaScript compilation → C++ में लिखा V8 engine → OS kernel system call → उन cores का thread scheduling जिनके बारे में उन्होंने कभी सोचा भी नहीं → caching layer वाला memory controller → npm के 400 packages जिनकी एक भी line कभी नहीं पढ़ी
  • abstraction का जहाज़ तो दशकों पहले ही निकल चुका था, बस हर layer धीरे-धीरे पहुँची, इसलिए यह दिखावा करना संभव था कि पूरा stack समझ में आता है
  • AI वह layer है जिसने अब यह दिखावा बनाए रखना असंभव कर दिया है
  • पूरी मशीन को समझने की भावना को याद रखना, और उसे खो देने का जो दुख है, उसे वह व्यक्ति पूरी तरह महसूस नहीं कर सकता जिसने यह अनुभव कभी किया ही नहीं

जो अब भी बचा है

  • यह सच है कि अनुभव पहले से कहीं ज़्यादा मूल्यवान है, system thinking और architectural judgment ऐसी चीज़ें हैं जिन्हें AI बदल नहीं सकता, और craftsmanship किसी दूसरे रूप में जारी रहती है
  • जटिल कामों में — system-level dependency management, कई interacting specs के पार mental model बनाए रखना, और किसी चीज़ को एकसार महसूस कराने वाले हज़ारों छोटे फैसले — अब भी इंसान AI के पास न होने वाली चीज़ें लाता है: taste, judgment, दशकों की pattern recognition
  • जब code generation सस्ता हो जाएगा, तो bottleneck उस व्यक्ति पर शिफ्ट होगा जो जानता हो कि क्या माँगना है, जो output में सूक्ष्म गलती पकड़ सके, और जो पूरी तस्वीर को संभाले रख सके — typing कभी मुश्किल हिस्सा था ही नहीं
  • लेकिन यह कहना झूठ होगा कि सब वैसा ही लगता है — विस्मय तक पहुँचना कठिन हो गया है, सिर्फ जिद और मौलिकता के दम पर कुछ समझ निकाल लेने वाली खोज की भावना संकुचित हो गई है। इस compression में कुछ मिलता है, लेकिन कुछ खोता भी है

fallow period

  • हाल ही में 50 साल का हुआ हूँ, और 4 साल की तीव्र निर्माण-प्रक्रिया और पहचान-निर्माण के बाद अब उस दौर में प्रवेश किया है जिसे मैं "fallow period" कहने लगा हूँ
  • यह burnout से अलग है — यह उस प्रक्रिया जैसा है जिसमें किसी ऐसी इमारत के नीचे की ज़मीन हिल रही हो जिसे स्थायी समझा गया था, और अब नई नींव खोजनी पड़ रही हो
  • इसका कोई साफ-सुथरा निष्कर्ष नहीं है — "stack में ऊपर जाओ", "tools को अपनाओ", "AI जो नहीं कर सकता उस पर ध्यान दो" जैसी सलाह शायद सही हो, लेकिन यह उस एहसास का समाधान नहीं करती
  • ऐसा लगता है कि जिस चीज़ को 42 साल दिए, वह अब ऐसी किसी चीज़ में बदल गई है जिसे शायद पहचानना भी मुश्किल हो — ज़रूरी नहीं कि वह बदतर हो, लेकिन वह अलग है, और उसके इर्द-गिर्द बनाई गई पहचान को चुनौती देती है, साथ ही पहले जैसी संतुष्टि भी नहीं देती
  • अनुमान है कि 40 से ऊपर के बहुत से डेवलपर भी ऐसा ही महसूस करते होंगे, लेकिन कहेंगे नहीं — क्योंकि industry यौवन और अनुकूलनशीलता की पूजा करती है, इसलिए "अब पहले जैसा नहीं लगता" कहना पीछे छूटने जैसा सुनाई देता है
  • यह पीछे छूटना नहीं है — मैं नए tools का इस्तेमाल करके पहले से कहीं तेज़ बना रहा हूँ और ऐसे product बना रहा हूँ जिनकी कुछ साल पहले सिर्फ कल्पना की जा सकती थी, लेकिन साथ ही यह भी समझने की कोशिश कर रहा हूँ कि अब "बनाने" का मतलब क्या है
  • 7 साल की उम्र में मैंने प्रोग्रामिंग इसलिए शुरू की थी क्योंकि मशीन वही करती थी जो उसे कहा जाए, उसे खोजा जा सकता था और अंततः जाना भी जा सकता था, और यह जादू जैसा लगता था; अब 50 की उम्र में जादू अलग है, और मैं उसके साथ जीना सीख रहा हूँ

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.