ആദ്യത്തെ കമ്പ്യൂട്ടര് പ്രോഗ്രാം എഴുതിയത് |
ആദ്യത്തെ കമ്പ്യൂട്ടര് പ്രോഗ്രാം എഴുതിയത് ആരാണെന്ന ചോദ്യത്തിനു കൃത്യമായ ഉത്തരമാകും പ്രതീക്ഷിക്കുക. പ്രോഗ്രാം എഴുതിയയാളുടെ പേര്, തീയതി, ലളിതമായ കോഡ്... ഇവയൊക്കെ പ്രതീക്ഷിക്കാം. സേര്ച്ച് എന്ജിനുകളും നിര്മിത ബുദ്ധിയുമൊക്കെ നല്കുക അഡ ലവ്ലേസ് എന്ന പേരാണ്. പക്ഷേ, ചോദ്യങ്ങള് അവസാനിക്കുന്നില്ല. 'പ്രോഗ്രാം' എന്നതുകൊണ്ട് എന്താണ് ഉദ്ദേശിക്കുന്നത്? ആദ്യത്തെ പ്രോഗ്രാം ലവ്ലേസ് എഴുതി എന്നതിന് എന്ത് തെളിവാണുള്ളത്? പേപ്പറില് പ്രസിദ്ധീകരിച്ച ആദ്യത്തെ പ്രോഗ്രാമിനെ അംഗീകരിക്കാമോ?, അതോ യഥാര്ത്ഥത്തില് പ്രവര്ത്തിപ്പിച്ച ആദ്യ പ്രോഗ്രാമിനാണോ അംഗീകാരം നല്കേണ്ടത്? നിര്വചനങ്ങളും തര്ക്കത്തിലേക്കു നയിക്കും.
ആധുനിക കമ്പ്യൂട്ടറിനെ മുന്ഗാമിയായ അനലിറ്റിക്കല് എന്ജിന് രൂപകല്പന ചെയ്തത് ചാള്സ് ബാബേജാണ്. പ്രോഗ്രാം ചെയ്യാന് കഴിയുന്ന കമ്പ്യൂട്ടറിനെക്കുറിച്ച് ചിന്തിച്ചതിലൂടെ പ്രോഗ്രാമിങ് കണ്ടുപിടിച്ചതിന്റെ ക്രെഡിറ്റ് അദ്ദേഹത്തിനു നല്കിക്കൂടേ എന്ന ചോദ്യവും ഉയരാം. അദ്ദേഹം അനലിറ്റിക്കല് എന്ജിന് രൂപകല്പ്പന ചെയ്തു എന്നത് സത്യം. പക്ഷേ, അക്ഷരാര്ത്ഥത്തില് ആ യന്ത്രം അദ്ദേഹം നിര്മിച്ചില്ല. പൊതുവായ ആവശ്യത്തിനുള്ള കമ്പ്യൂട്ടറിന്റെ ബ്ലൂപ്രിന്റ് ആയിരുന്നു അദ്ദേഹം തയാറാക്കിയത്. പിന്നീടാണു ലവ്ലേസ് പദ്ധതിയുടെ ഭാഗമാകുന്നത്. അന്നത്തെ യന്ത്രങ്ങളില് പ്രവര്ത്തിപ്പിക്കാനായി ഒരു പ്രോഗ്രാം അവര് തയാറാക്കി. പക്ഷേ, ആ പ്രോഗ്രാം അവരുടെ ജീവിതകാലത്ത് ഒരിക്കലും പ്രവര്ത്തിപ്പിച്ചിട്ടില്ല, എങ്കിലും പേപ്പറില്, അതിന്റെ യുക്തി പൂര്ണമായിരുന്നു. 37-ാം വയസില് ലവ്ലേസ് അന്തരിച്ചു.
ഇല്ലാത്ത കമ്പ്യൂട്ടറിന് ഒരു പ്രോഗ്രാം!
അപ്പോഴും ആശയമായി തുടര്ന്ന കമ്പ്യൂട്ടറിനുവേണ്ടിയാണു ലവ്ലേസ് ആദ്യത്തെ അല്ഗോരിതം കൈകൊണ്ട് എഴുതിയത്. രണ്ട് നൂറ്റാണ്ടോളമായിട്ടും, സാങ്കേതികവിദ്യ ഇത്രയധികം വികസിപ്പിച്ചിട്ടും ലവ്ലേസ് തയാറാക്കിയ അടിസ്ഥാന ആശയത്തിന്റെ അടിസ്ഥാനത്തിലാണ് കമ്പ്യൂട്ടര് പ്രോഗ്രാമുകള് തയാറാക്കുന്നത്. എങ്ങനെയാണ് യന്ത്രങ്ങളെ സങ്കീര്ണമായ നിര്ദേശങ്ങള് അനുസരിപ്പിക്കുക, വിവര വിശകലനം നടത്തുക, യഥാര്ത്ഥ മൂല്യം നല്കുക? അതിനുള്ള മറുപടിയാണു ലവ്ലേസ് കുറിച്ചത്.
കണക്കുകൂട്ടല് യന്ത്രം!
ആദ്യത്തെ കമ്പ്യൂട്ടര് പ്രോഗ്രാം ചാള്സ് ബാബേജില്നിന്നാണ് ആരംഭിക്കേണ്ടത്. അദ്ദേഹം രൂപകല്പന ചെയ്ത അനലിറ്റിക്കല് എന്ജിന് പൊതുവായ ആവശ്യത്തിനുള്ള ലോകത്തിലെ ആദ്യ കമ്പ്യൂട്ടറായി കണക്കാപ്പെടുന്നു. 1930കളിലോ 1940കളിലോ ആയിരുന്നു രൂപകല്പ്പന. ബാബേജിന്റെ അനലിറ്റിക്കല് എന്ജിന് സാമ്പത്തിക പരിമിതികളും എന്ജിനീയറിങ് പരിമിതികളും കാരണം യഥാര്ത്ഥത്തില് നിര്മിക്കപ്പെട്ടില്ല. ലളിതമായ കാല്ക്കുലേറ്റര് നിര്മിക്കുകയായിരുന്നില്ല ബാബേജിന്റെ ലക്ഷ്യം. സങ്കീര്ണമായ കണക്കുകൂട്ടലുകള് നടത്താന് കഴിയുന്ന യന്ത്രമായിരുന്നു അദ്ദേഹം ഉദ്ദേശിച്ചത്. ആധുനിക സിപിയു, മെമ്മറി സിസ്റ്റം എന്നിവയ്ക്ക് സമാനമായ ഘടനയും ബാബേജിന്റെ രൂപകല്പനയില് ഉണ്ടായിരുന്നു. അനലിറ്റിക്കല് എന്ജിന് ഒരു സെന്ട്രല് പ്രോസസിങ് യൂണിറ്റ് (സി.പി.യു.) ഉണ്ടായിരുന്നു, ബാബേജ് അതിനെ 'മില്ല' എന്ന് വിളിച്ചു. അതൊരു വലിയ മെക്കാനിക്കല് 'വര്ക്ക്ഷോപ്പ്' ആയിരുന്നു, അവിടെ സംഖ്യകള് കയറ്റി, പ്രോസസ് ചെയ്ത്, തിരികെ അയയ്ക്കും. ഗിയറുകള്, ഷാഫ്റ്റുകള്, ലിവറുകള് എന്നിവ സംഖ്യകളെയും പ്രവര്ത്തനങ്ങളെയും നിയന്ത്രിക്കുന്ന ഘടകങ്ങളാകും. അതില് ഒരു 'സ്റ്റോര്' ഉണ്ടായിരുന്നു, അതായിരുന്നു യന്ത്രത്തിന്റെ മെമ്മറി. വൈദ്യുതിക്ക് മുമ്പുള്ള റാം മെമ്മറി എന്ന് പറയാം. സംഖ്യകളെ സൂക്ഷിക്കാന് കഴിയുന്ന അക്കങ്ങളുള്ള ചക്രങ്ങളുടെ നിരകള് ബാബേജ് സങ്കല്പ്പിച്ചു. യന്ത്രത്തിന് 'സ്റ്റോറില്'നിന്ന് സംഖ്യ എടുത്ത് മില്ലിലേക്ക് അയക്കാനും, ഫലം തിരികെ സ്റ്റോറില് സൂക്ഷിക്കാനും കഴിയും...
നെയ്ത്ത് യന്ത്രത്തില്നിന്ന് പഞ്ച് കാര്ഡ്
പിന്നീട് പഞ്ച് കാര്ഡുകള് വന്നു. ഓരോ തവണ പുതിയ ടാസ്ക് ചെയ്യാന് യന്ത്രം റീവയര് ചെയ്യുന്നത് എളുപ്പമല്ലെന്നു ബാബേജ് വിലയിരുത്തി. അതിനായി 'പ്രോഗ്രാമിങ്' വേണമെന്ന് അദ്ദേഹം നിശ്ചയിച്ചു. അതിനായി അദ്ദേഹം പഞ്ച് കാര്ഡുകള് ഉപയോഗിച്ചു.ആ ആശയം ജാക്വാര്ഡ് ലൂം എന്ന നെയ്ത്ത് യന്ത്രത്തില്നിന്നാണു ബാബേജ് കടമെടുത്തത്. പഞ്ച് കാര്ഡുകള് ഉപയോഗിച്ച് പാറ്റേണുകള് ഓട്ടോമേറ്റ് ചെയ്യുന്ന ഒരു യന്ത്രമായിരുന്നു അത്. ഓരോ പഞ്ച് കാര്ഡും വസ്ത്ര പാറ്റേണിലെ ഒരു നിരയെ വിവരിക്കുന്നു. കാര്ഡിലെ ദ്വാരങ്ങള് നൂല് ഉയര്ത്താനുള്ള നിര്ദേശമാണ്. ദ്വാരങ്ങള് ഇല്ലെങ്കില് നൂല് ഉയര്ത്തരുത്. അങ്ങനെ നെയ്ത്തുയന്ത്രം പ്രത്യേക പാറ്റേണ് നെയ്തെടുക്കും. കാര്ഡുകള് മാറ്റിയാല് പാറ്റേണും മാറും. ഒരേ യന്ത്രം, വ്യത്യസ്ത നിര്ദേശങ്ങള്. ആ ആശയം ബാബേജ് കടമെടുത്തതോടെ പ്രോഗ്രാമിങ്ങിന്റെയും സോഫ്റ്റ്വേയറിന്റെയും അടിത്തറയായി. നെയ്തുയന്ത്രത്തിനുവേണ്ടിയുള്ള നിര്ദേശങ്ങള് കമ്പ്യൂട്ടറിനുവേണ്ടിയുള്ളതാക്കിയത് കാര്ഡുകളെ വ്യത്യസ്ത റോളുകളില് വിഭജിച്ചുകൊണ്ടാണ്. ഓപ്പറേഷണല് കാര്ഡുകള്(ഏതൊക്കെ പ്രവര്ത്തനങ്ങള് ചെയ്യണം എന്ന് നിര്ദേശിക്കുന്നവ. ഗുണനം, കൂട്ടല്, താരതമ്യം തുടങ്ങിയവ), സ്ഥിരം കാര്ഡുകള്(പ്രവര്ത്തിക്കാനുള്ള മൂല്യങ്ങള്, ഇന്പുട്ടുകള് എന്നിവ ഉള്ക്കൊള്ളുന്നവ), ട്രാന്സ്ഫര് കാര്ഡുകള്( സ്റ്റോറില്നിന്ന് മില്ലിലേക്ക് സംഖ്യകള് എങ്ങനെ മാറ്റണം എന്നതിനെക്കുറിച്ചുള്ള നിര്ദേശങ്ങള്) എന്നിവയായിരുന്നു പ്രധാന കാര്ഡുകള്.ആധുനിക പ്രോഗ്രാമിങ് ഭാഷകളുടെ തുടക്കമായിരുന്നു ആ വേര്തിരിവ്.ബാബേജിന്റെ രൂപകല്പന അനുസരിച്ച്, യന്ത്രത്തിനു നാല് മീറ്ററിലധികം ഉയരവും ആറ് മീറ്ററിലധികം നീളവും ഉണ്ടാകുമായിരുന്നു. അത് ആവി യന്ത്രത്തില് പ്രവര്ത്തിപ്പിക്കാനാണ് അദ്ദേഹം ഉദ്ദേശിച്ചിരുന്നത്. ഫാക്ടറി പോലെ ശബ്ദം നിറഞ്ഞ അന്തരീക്ഷമാണ് അതിനു സമീപം പ്രതീക്ഷിച്ചത്. 28 വ്യത്യസ്ത ആശയങ്ങള് അല്ലെങ്കില് പദ്ധതികള് അദ്ദേഹം അവതരിപ്പിച്ചു. ഏറ്റവും പ്രസിദ്ധമായത് പ്ലാന് 25 ആയിരുന്നു. 1840ല് അദ്ദേഹം ഇറ്റലിയിലാണ് ആ രൂപകല്പന അവതരിപ്പിച്ചത്.
ലവ്ലേസ് എത്തിയപ്പോള്
പ്രശസ്ത ബ്രിട്ടീഷ് കവി ബൈറന്റെ മകളാണു അഗസ്റ്റ അഡ കിങ് എന്ന അഡ ലവ്ലേസ്. അച്ഛനെപ്പോലെ കവിതയും രാഷ്ട്രീയവും മകളുടെ ലക്ഷ്യമാകരുതെന്നു അവരുടെ അമ്മ അന്ന ഇസബെല്ല തീരുമാനിച്ചിരുന്നു. ലവ്ലേസിനു മികച്ച ഗണിതശാസ്ത്ര വിദ്യാഭ്യാസം ലഭിച്ചത് അങ്ങനെയാണ്. അക്കാലത്ത് സ്ത്രീകള്ക്ക് ശാസ്ത്ര മേഖലകളില് പ്രവേശനം പരിമിതമായിരുന്നു. കൗമാരപ്രായത്തില്, ലവ്ലേസ് പ്രശസ്ത ഗണിതശാസ്ത്രജ്ഞ മേരി സോമര്വില്ലെയുമായി സൗഹൃദത്തിലായി. അവരുടെ സഹായത്തോടെയാണ് അവര് ചാള്സ് ബാബേജിനെ കണ്ടുമുട്ടുന്നത്. 1833ല്, 17 വയസുള്ളപ്പോള്, അവര് ബാബേജിന്റെ ആദ്യകാല യന്ത്രമായ ഡിഫറന്സ് എന്ജിന്റെ മാതൃക കണ്ടു, ബാബേജും ലവ്ലേസിനെ ശ്രദ്ധിച്ചു. അവരെ അദ്ദേഹം 'സംഖ്യകളുടെ മാന്ത്രിക' എന്ന് വിശേഷിപ്പിച്ചു. ആ കൂടിക്കാഴ്ച ദീര്ഘകാല സൗഹൃദത്തിനും വഴിവച്ചു.
യൂറോപ്പില് തന്റെ അനലിറ്റിക്കല് എന്ജിനായി ധനസഹായത്തിനുള്ള ശ്രമത്തിലായിരുന്നു ബാബേജ്. ബ്രിട്ടീഷ് സ്ഥാപനങ്ങള്ക്ക് അദ്ദേഹത്തിന്റെ ചെലവേറിയ പദ്ധതികളില് വിശ്വാസം നഷ്ടപ്പെട്ടിരുന്നു. അതോടെ ഇറ്റലിയില്നിന്നു സഹയം സംഘടിപ്പിക്കാനായി ശ്രമം. 1840ല് അദ്ദേഹം ഇറ്റലിയില് പ്രഭാഷണങ്ങള് നടത്തി. അതിലൊന്നു ലൂയിജി മെനാബ്രേയ എന്ന യുവ എന്ജിനീയറെ ആകര്ഷിച്ചു. മെനാബ്രേയ അനലിറ്റിക്കല് എന്ജിനെക്കുറിച്ച് ഫ്രഞ്ചില് വിശദമായ വിവരണം എഴുതി. മെനാബ്രേയയുടെ ഫ്രഞ്ച് ലേഖനം ഇംഗ്ലീഷിലേക്ക് വിവര്ത്തനം ചെയ്യാന് ലവ്ലേസെത്തി. 1843ല് സയന്റിഫിക് മെമ്മോയേഴ്സില് അവരുടെ കണ്ടെത്തലുകള് പ്രസിദ്ധീകരിച്ചു. അത് ഒരു നാഴികക്കല്ലായിരുന്നു. മെനാബ്രേയയുടെ യഥാര്ത്ഥ ലേഖനം ഏകദേശം 20 പേജായിരുന്നു. ലവ്ലേസിന്റെ അനുബന്ധ കുറിപ്പുകള് 40ലധികം പേജുകളായിരുന്നു.ആ കുറിപ്പുകളില്, ബാബേജിനേക്കാള് വ്യക്തമായി അനലിറ്റിക്കല് എന്ജിന്റെ പ്രവര്ത്തനം ലവ്ലേസ് വിശദീകരിച്ചു. 'ഈ യന്ത്രത്തിനു സംഖ്യകളെ കൂടാതെ മറ്റ് കാര്യങ്ങളും ചെയ്യാന് കഴിയും. സംഗീതം അല്ലെങ്കില് ഗ്രാഫിക്സ് പോലും സൃഷ്ടിക്കാന് കഴിയും'- അവര് എഴുതി.ആ പേപ്പറിലെ ലവ്ലേസിന്റെ 'നോട്ട് ജി' ശ്രദ്ധ ആകര്ഷിച്ചു. അതില്, ബര്ണൂളി സംഖ്യകളുടെ ശ്രേണി കണക്കാക്കാന് യന്ത്രത്തിന് വേണ്ടിയുള്ള ഒരു പടിപടിയായുള്ള രീതി അടങ്ങിയിരുന്നു. അതാണ് ആദ്യ പ്രോഗ്രാമായി കണക്കാക്കപ്പെടുന്നത്. 18ാം നൂറ്റാണ്ടില് കാല്ക്കുലേറ്ററുകള് ഇല്ലായിരുന്നു. ബര്ണൂളി സംഖ്യകള് അനലിറ്റക്കല് എന്ജിന് കണക്കാക്കിയെടുക്കണമെന്ന് അവര് ആഗ്രഹിച്ചു. യന്ത്രത്തിന് ഘട്ടങ്ങള് ആവര്ത്തിക്കാനും, ഓര്മ്മയില് മുന്കാല മൂല്യങ്ങള് സൂക്ഷിക്കാനും, തീരുമാനങ്ങള് എടുക്കാനും കഴിയുമെന്നു കാണിക്കാനാണ് അവര് ശ്രമിച്ചത്. 'നോട്ട് ജി' ഉപയോഗിച്ച് അനലിറ്റിക്കല് എന്ജിന് ബര്ണൂളി സംഖ്യകള് എങ്ങനെ കണക്കാക്കാന് കഴിയുമെന്ന് അവര് വിശദീകരിച്ചു. ലവ്ലേസിന്റെ ഗണിതശാസ്ത്രപരമായ നിര്വചനം ആധുനിക പ്രോഗ്രാമിങ്ങില് പിന്നീട് സ്വാധീനം ചെലുത്തി.
തര്ക്കം ബാബേജും ലവ്ലേസും കുറിപ്പുകള് തയാറാക്കുമ്പോള് ആശയവിനിമയം നടത്തിയിരുന്നു. യന്ത്രത്തിനു കണക്കുകൂട്ടലുകള് എങ്ങനെ നടത്താന് കഴിയുമെന്ന് ലവ്ലേസ് ചോദിച്ചു. ബാബേജ് ഉത്തരം നല്കുകയും നിര്ദേശങ്ങള് നല്കുകയും ചെയ്തു. 'ഞാന് പലതും നിര്ദേശിച്ചു, എന്നാല് അവ തെരഞ്ഞെടുത്ത് ഉപയോഗിച്ചത് പൂര്ണമായും ലവ്ലേസായിരുന്നു'- ബാബേജ് എഴുതി. തന്റെ യന്ത്രങ്ങള്ക്കായി ബാബേജ് തന്നെ മുമ്പ് പ്രോഗ്രാമുകള് രൂപകല്പ്പന ചെയ്തിരുന്നു. അദ്ദേഹത്തെ ആദ്യത്തെ പ്രോഗ്രാമര് എന്നു വിളിക്കണമെന്നു നിര്ദേശിക്കുന്നവര് അക്കാര്യം ചൂണ്ടിക്കാട്ടുന്നു. അലന് ബ്രോംലി എന്നൊരു ചരിത്രകാരന് പറയുന്നത് 1837 മുതല് 1840 വരെ അനലിറ്റിക്കല് എന്ജിനുവേണ്ടി ഡസന് കണക്കിന് പ്രോഗ്രാമുകള് ബാബേജ് തയാറാക്കിയിട്ടുണ്ട് എന്നാണ്. സാങ്കേതികമായി, ലവ്ലേസിനു മുമ്പ് ബാബേജ് തന്നെ ആദ്യപ്രോഗ്രാമുകള് എഴുതി എന്ന് പറയാകും. അദ്ദേഹം തന്റെ യന്ത്രങ്ങള്ക്ക് ഉപയോഗിക്കാന് കഴിയുന്ന അല്ഗോരിതങ്ങള് വികസിപ്പിച്ചിരുന്നു. എന്നാല് ബാബേജിന്റെ പ്രോഗ്രാമുകള് അക്കാലത്ത് വ്യാപകമായി അറിയപ്പെട്ടിരുന്നില്ല. അവ അദ്ദേഹത്തിന്റെ നോട്ട്ബുക്കുകളില് ഒതുങ്ങിനിന്നു, വളരെ അവ്യക്തമായ രൂപത്തില്! ലവ്ലേസിനെപ്പോലെ പൂര്ണമായ പ്രോഗ്രാം അദ്ദേഹം ഒരിക്കലും തയാറാക്കിയിരുന്നില്ല.ഒരു യന്ത്രത്തിനായി കോഡ് ചെയ്ത പ്രവര്ത്തനങ്ങളുടെ ഒരു ശ്രേണി എന്ന നിലയില് പ്രോഗ്രാമിനെ കര്ശനമായി നിര്വചിക്കുകയാണെങ്കില്, 1843ലെ അഡ ലവ്ലേസിന്റെ 'നോട്ട് ജി'അല്ഗോരിതം ആണ് ആ പ്രോഗ്രാം. 'ബാബേജ് പിയാനോ ഉണ്ടാക്കി, ലവ്ലേസ് അതില് ആദ്യത്തെ സംഗീതം എഴുതി.'- ആദ്യ പ്രോഗ്രാമില് ഇരുവരുടെയും സ്വാധീനത്തെക്കുറിച്ച് പില്ക്കാലത്ത് കമ്പ്യൂട്ടര് വിദഗ്ധര് വിലയിരുത്തിയത് ഇങ്ങനെ.