DNA मधील 'D' म्हणजे deoxyribose आहे. ही केवळ एखादी सामान्य माहिती नाही. तुमचा संपूर्ण अनुवांशिक संग्रह (genetic archive) एका साखरेच्या मणक्यावर (sugar backbone) आधारलेला आहे, याची ही एक आठवण आहे. तुमच्या ३.२ अब्ज बेस पेअर्सपैकी (base pairs) प्रत्येक एक या रेणवीय संरचनेवर (molecular scaffolding) अवलंबून आहे. तुम्ही डेव्हलपर, समस्या सोडवणारे (problem solver) किंवा बहुपेशीय जीव (multicellular organism) होण्यापूर्वी, तुम्ही स्वतःची प्रत तयार करायला शिकलेले रसायन (chemistry) होतात. त्या पहिल्या स्वयंचलितपणे प्रत तयार करणाऱ्या रेणूंपासून ते तुम्ही आज सकाळी केलेल्या commit पर्यंतचा प्रवास मोठा, अखंड आणि बहुतेक तंत्रज्ञान निर्मितीच्या कथांपेक्षा अधिक विचित्र आहे. हा प्रवास समजून घेतल्यास तुमच्या कामाकडे पाहण्याचा दृष्टिकोन बदलतो.

दुपारच्या भोजनापासून वारशापर्यंत

साखर म्हणजे केवळ इंधन नाही. जेव्हा तुम्ही ग्लुकोज खाता, तेव्हा तुमचे शरीर ते विविध चयापचय (metabolic) पर्यायांद्वारे प्रवाहित करते. ते रेणू त्वरित ATP साठी जाळू शकते, ग्लायकोजेन म्हणून साठवू शकते किंवा 'Pentose Phosphate Pathway' कडे पाठवू शकते. हा मार्ग तुमच्या पेशींच्या सायटोप्लाझममध्ये (cytoplasm) कार्यरत असतो आणि चयापचयातील सर्वात व्यस्त चौकांपैकी एक म्हणून काम करतो. ऑक्सिडेटिव्ह आणि कार्बन-स्वॅपिंग अभिक्रियांच्या मालिकेद्वारे, सहा-कार्बन असलेल्या ग्लुकोजचा सांगाडा कापला जातो आणि त्याचे पुनर्रचना करून 'Ribose-5-phosphate' नावाचा पाच-कार्बन असलेला साखर तयार केला जातो.

तो रिबोज डेरिव्हेटिव्ह (ribose derivative) कचरा नाही. तो थेट dNDPs च्या संश्लेषणात (synthesis) मदत करतो, जे 'deoxyribonucleoside diphosphates' आहेत आणि ज्यांचा वापर तुमच्या पेशी नवीन DNA तयार करण्यासाठी करतात. हाच मार्ग NADPH देखील तयार करतो, जे एक 'reducing currency' आहे आणि जे फॅटी ॲसिड निर्मितीपासून ते अँटीऑक्सिडंट संरक्षणापर्यंत सर्व गोष्टींना ऊर्जा देते. तुमचे दुपारचे भोजन आणि तुमचा जीनोम (genome) हे दोन्ही एकाच कच्च्या मालावर आधारित आहेत.

पुढच्या वेळी जेव्हा तुम्ही दुपारी २ वाजता debugging करत असाल, तेव्हा याबद्दल विचार करा. तुमच्या मेंदूला सतर्क ठेवणारे ग्लुकोज हे त्याच रेणवीय प्रवाहाचा भाग आहे जो तुमच्या न्यूरॉन्समधील DNA ची दुरुस्ती करतो. तुम्ही केवळ इंधन घेत नाही आहात, तर तुम्ही स्वतःच्या अस्तित्वासाठी आवश्यक असलेल्या पदार्थावर प्रक्रिया करत आहात. आपण सॉफ्टवेअरमध्ये जे abstraction layers तयार करतो—जसे की लायब्ररींना कॉल करणारे functions आणि कर्नल्सना कॉल करणाऱ्या लायब्ररी—त्याला एक जैव-रासायनिक समांतरता (biochemical parallel) आहे. तुमच्या पेशी कोणत्याही जाणीवपूर्वक निर्णयाशिवाय साखरेचे रूपांतर ऊर्जा, दुरुस्ती आणि पुनरुत्पादनात (replication) करतात. जेव्हा तुम्ही source code चे binary मध्ये रूपांतर (compile) करता, तेव्हा तुम्हीही काहीसे असेच करता. दोन्ही प्रक्रिया कच्च्या पदार्थाचे (raw substrate) रूपांतर कार्यात्मक गोष्टीमध्ये करतात.

त्रुटी हीच रचना

ही जैव-रासायनिक अचूकता अचानक तयार झालेली नाही. याची सुरुवात साधारण ३.८ अब्ज वर्षांपूर्वी अशा रेणूंपासून झाली होती जे स्वतःची प्रत तयार करू शकत होते. या प्रणालीचे सर्वात महत्त्वाचे वैशिष्ट्य म्हणजे तिची अपूर्णता (imperfection). जर एक परिपूर्ण कॉपी मशीन असती, तर तिने एक स्थिर जग निर्माण केले असते, जे केवळ सारख्याच रेणूंनी बनलेले एक मृत टोक असते. त्याऐवजी, त्यात त्रुटी (errors) निर्माण झाल्या. बहुतेक त्रुटींमुळे गोष्टी बिघडल्या. काही त्रुटींचा काहीही परिणाम झाला नाही. परंतु, काही दुर्मिळ त्रुटींमुळे असे प्रकार (variants) तयार झाले जे वेगाने प्रत तयार करू शकत होते, जास्त काळ टिकू शकत होते किंवा स्थानिक परिस्थितीत अधिक चांगल्या प्रकारे जगू शकत होते. तीच अपूर्णता म्हणजे उत्क्रांती (evolution) आहे.

तुम्ही उत्क्रांतीला लॅब मॅनेजरशिवाय चालणाऱ्या प्रयोगासारखे मानू शकता. यादृच्छिक उत्परिवर्तन (Random mutation) प्रयोगाचा प्रस्ताव मांडते. नैसर्गिक निवड (Natural selection) त्याचे निकाल वाचते. अनुकूलन करण्यात अपयश येणे म्हणजे विलुप्ती (Extinction) होय. तिथे pull requests तपासणारा कोणताही वरिष्ठ आर्किटेक्ट नव्हता, कोणतेही sprint planning नव्हते आणि कोणतीही rollback strategy नव्हती. तिथे केवळ नैसर्गिक निवडीचा दबाव होता: उष्णता, थंडी, उपासमार, रेडिएशन, शिकार आणि स्पर्धा. अब्जावधी वर्षांपासून हाच एकमेव मार्गदर्शक होता. त्या trial-and-error प्रक्रियेचा निकाल आता तुमच्या समोर बसला आहे आणि शुद्ध केलेल्या वाळूपासून बनवलेल्या उपकरणावर मजकूर वाचत आहे.

स्टॅक वाढत जातो

जीवनाचा विकास ही एखादी शिडी नाही. ती एकमेकांवर रचलेल्या अधिकाधिक जटिल abstractions चा एक stack आहे.

  • स्वयंचलितपणे प्रत तयार करणाऱ्या रसायनांनी सहकार्य करायला शिकले आणि ते बहुपेशीय जीव बनले.
  • काही वंशजांनी मध्यवर्ती मज्जासंस्था विकसित केली आणि एका शाखेने आत्म-जागरूक मानव निर्माण केले.
  • जागरूकतेमुळे भाषेचा उदय झाला, त्यानंतर प्रतीकात्मक प्रतिनिधित्व आणि मग गणित विकसित झाले.
  • न्यूरॉन्सच्या वेगापेक्षाही वेगाने चिन्हांचा वापर करण्यासाठी आपण यंत्रे तयार केली, ज्यामुळे संगणन (computation) आणि कृत्रिम बुद्धिमत्ता (artificial intelligence) विकसित झाली.

इतिहासातील बहुतांश काळ, जीवन केवळ प्रोग्राम चालवत होते. DNA ने प्रथिनांद्वारे (proteins) आपल्या सूचनांची अंमलबजावणी केली आणि सजीवांनी त्यांच्या पर्यावरणाशी प्रतिसाद दिला. मानव ही source code वाचणारी पहिली प्रजाती बनली. मेंडेलने मटार मोजले. वॉटसन आणि क्रिकने double helix चे मॉडेल तयार केले. आपण जीनोमचे अनुक्रमण (sequencing) केले आणि चयापचय नेटवर्कचे मॅपिंग केले. त्यानंतर आपण वाचण्यापासून लिहिण्याकडे (writing) ठामपणे वळलो. आपण CRISPR द्वारे जनुकीय संपादन (edit genes) करतो, नवीन सजीव संश्लेषित करतो आणि सिलिकॉन वेफर्सवर neural networks प्रशिक्षित करतो.

तुम्ही तुमच्या कोडमध्ये लिहिलेले प्रत्येक abstraction हे त्या प्राचीन प्रक्रियेचे एक छोटेसे सातत्य आहे. सॉर्टिंग अल्गोरिदम पुन्हा लिहिणे टाळण्यासाठी जेव्हा तुम्ही एखादी library इंपोर्ट करता, तेव्हा तुम्ही साठवलेल्या ज्ञानावर आधारित काम करत असता, अगदी त्याचप्रमाणे ज्याप्रमाणे जीवशास्त्राने रासायनिक अभिक्रियांच्या वर पेशींची यंत्रणा उभारली. जेव्हा तुम्ही एखादे application containerize करता, तेव्हा तुम्ही replication आणि environment control हे हेतूने हाताळत असता, जे एकेकाळी रेणू केवळ योगायोगाने साध्य करत होते.

आंधळेपणा आणि हेतू यातील फरक

AI सहाय्याच्या सध्याच्या लाटेमुळे स्वतःची जागा कोणीतरी घेईल याबद्दल खरी चिंता निर्माण झाली आहे. हा दृष्टिकोन त्यातील सखोल सातत्य लपवून टाकतो. ही साधने मानवी हेतूला अधिक प्रबळ करतात. ती विचार आणि अंमलबजावणी यामधील वेळ कमी करतात. एकेकाळी एका ज्युनियर डेव्हलपरला ज्या boilerplate कोडसाठी तासनतास लागायचे, ते आता काही मिनिटांत होऊ शकते. परंतु, दिशा अजूनही कर्सर धरणाऱ्या मानवाकडूनच निवडली जाते.

हे खरोखरच नवीन आहे. ३.८ अब्ज वर्षांपासून, उत्क्रांती ही आंधळी राहिली आहे. तिला कोणतेही ध्येय नव्हते, कोणताही रोडमॅप नव्हता आणि कोणताही Friday retrospective नव्हता. तुम्ही ते सर्व संशोधन आणि विकास तुमच्या पेशींमध्ये घेऊन चालला आहात, तरीही तुम्ही साखळीतील पहिला असा दुवा आहात जो भविष्याकडे पाहू शकतो. उत्क्रांती कालच्या वातावरणाला प्रतिसाद देते. तुम्ही उद्याच्या गरजांचे नियोजन करू शकता. जेव्हा तुम्ही नाजूक legacy code रिफॅक्टर करता त्याऐवजी