ایک، صفر، صفر، ایک، صفر، ایک، ایک۔۔ صفر، ایک، ایک۔
یہ کمپیوٹر کی بولی ہے۔ ہر ہوشیار چیز جو کمپیوٹر کرتے ہیں۔ کال ملانا، ڈیٹا سے کچھ ڈھونڈ لینا، گیم کھیلنا۔ اس کے نیچے صفر اور ایک ہی ہیں۔ بلکہ یہ بھی ٹھیک نہیں۔ ان کے نیچے سیمی کنڈکٹر کے چپ میں موجود ننھے سے ٹرانسسٹر ہیں۔ ان میں کرنٹ کی موجودگی یا عدم موجودگی کی حالت کو ہم صفر یا ایک کہتے ہیں۔
خوش قسمتی یہ ہے کہ ہمیں ان کمپیوٹروں کو صفر اور ایک کی صورت میں پروگرام نہیں کرنا پڑتا۔ لیکن تصور کریں کہ اگر ایسا ہوتا؟ مائیکروسوفٹ ونڈوز تقریباً بیس گیگابائیٹ لیتی ہے۔ یہ 170 ارب صفر اور ایک ہیں۔ تصور کریں کہ اس کے لئے ہر ٹرانسسٹر کو انفرادی طور پر سیٹ کرنا ہوتا؟ ایسا کرنے کی مشکل کو ننظرانداز کر دیں (ایک ٹرانسسٹر کا سائز ایک میٹر کا ایک اربواں حصہ ہے)۔ اگر ایک سوئچ پر ایک سیکنڈ لگتا تو ونڈوز کو انسٹال ہونے میں پانچ ہزار سال لگتے۔
اور ابتدائی کمپیوٹر ایسے ہی تھے۔ ایسا ابتدائی کمپیوٹر مارک ون تھا۔ اس میں پہیے، گراریاں اور شافٹ لگے تھے۔ اکاون فٹ لمبا، آٹھ فٹ اونچا اور دو فٹ گہرا تھا۔ اس میں 530 میل لمبی تار استعمال ہوئی تھی۔ یہ کاغذ کی سوراخوں والی ٹیپ کے کے احکامات پر عملدرآمد کرتا جاتا تھا۔ اگر آپ کو اس پر کوئی ایکوئشن حل کرنا ہے تو آپ کو پہلے یہ معلوم کرنا ہے کہ کونسا سوئچ آن اور کونسا آف ہونا چاہیے۔ کس تار کو کہاں پر لگائے جانا ہے۔ پھر آپ سوئچ بدلتے، تاریں لگاتے اور کاغذ کی ٹٹیپ پر سوراخ کرتے۔ پروگرامنگ ایسا کام تھا جو ماہر ریاضی دان کے لئے بھی آسان نہیں تھا۔ اور یہ بار بار دہرائے جانا والا تھکا دئے جانا والا کام تھا جس میں غلطی کا امکان بہت تھا۔
اس سے چار دہائیاں بعد جب میں نے بچپن میں اپنا پہلا پروگرام لکھا تو وہ کچھ ایسا تھا۔
10 PRINT “HELLO WORLD”
20 GOTO 10
اور میری سکرین کم ریزولیوشن پر لکھے الفاظ سے بھر گئی۔ یہ الفاظ سمجھنا ا انسان کے لئے بھی اتنا آسان تھا کہ ایک بچہ ا اسے لکھ سکے۔ اور کمپیوٹر بھی اس کو سمجھ گیا تھا۔ یہ ایک معجزہ لگتا تھا۔
اگر آپ سوال کریں کہ آج کمپیوٹر مارک ون کے مقابلے میں اتنی ترقی کیوں کر چکے ہیں تو ایک وجہ یقینی طور پر اس کے کمپوننٹ کا چھوٹے ہو جانا ہے جس سے یہ زیادہ طاقتور ہو سکے ہیں لیکن یہ ترقی ناقابلِ تصور ہوتی اگر پروگرامر مائیکروسوفٹ ونڈوز کو آسان ہدایات میں نہ لکھ سکتے اور انہیں صفر اور ایک میں اسے لکھنا پڑتا۔
یہ ترقی جس نے ممکن کی، وہ پروگرام “کمپائلر” کہلاتا ہے۔
۔۔۔۔۔۔۔۔۔۔۔۔۔
کمپیوٹر کے ہارڈوئیر کے بانیوں میں ہمیں مرد نظر آتے ہیں لیکن سافٹ وئیر میں خواتین۔ اور ان میں سے ایک امریکی خاتون گریس ہوپر تھیں۔ گریس ریاضی کی جینئیس سمجھی جاتی تھیں۔ امریکہ دوسری جنگِ عظیم میں داخل ہوا تو گریس ہوپر کو ریاضی کی مہارت کی وجہ سے نیوی میں ملازمت مل گئی۔
اگر آپ پوچھیں کہ نیوی میں ریاضی کا کیا کام؟ تو میزائل کے نشانے کا مسئلہ دیکھ لیں۔ کس سمت اور کس زاویے سے اس کو فائر کیا جائے؟ اس کے جواب کا انحصار بہت سی چیزوں پر ہے۔ فاصلہ کتنا ہے؟ درجہ حرارت کیا ہے؟ بلندی کتنی ہے؟ ہوا کس رخ ہے؟ ایسے تقریباً سو کے قریب فیکٹر تھے اور ان کو حل کرنے کے لئے ٹ ٹیبل بنائے جاتے تھے۔ اور ان میں بہت وقت لگتا تھا۔ ان کو کمپیوٹ کرنے کے لئے ریاضی کی ضرورت تھی۔ مرد میدانِ جنگ میں جاتے تھے اور یہ ٹیبل بنانے کا کام لئے ریاضی کی گریجویٹ خواتین فوجیوں کے پاس ہوتا۔ ان خواتین کو کمپیوٹر کہا جاتا۔ بعد میں اسی کام کو کرنے والی خودکار مشین صرف کمپیوٹر کہلائی۔
ہوپر کو اپنی ریاضی کی مہارت کی وجہ سے کمپیوٹ کرنے والی مشین مارک ون پر کام کرنے کے لئے ہورڈ آئیکن کی ٹیم میں بھیجا گیا تھا۔ ہوپر کے سپرد اس کے استعمال کی گائیڈ لکھنے کا کام ہوا۔ انہیں جلد ہی اندازہ ہو گیا کہ یہ آسان کام نہیں تھ تھا۔ پروگرام کرنا جتنا مشکل تھا، اس سے کہیں زیادہ مشکل اس میں سے غلطیاں نکالنا۔ کہیں کاغذ میں غلط جگہ پر سوراخ، کسی سوئچ کا ٹھیک پوزیشن پر نہ ہونا ۔۔۔ ان کو پتا لگانا کسی جاسوسی کے کام کی طرح تھا۔ اس کمپیوٹر کے پاس ایک مصلیٰ رکھا ہوا تھا۔ پروگرام کمپیوٹر کے حوالے کر کے جب تک مارک ون اس کو پراسس کرتا، کئی پروگرامر اس پر بیٹھ کر اس کے ٹھیک ہونے کی دعا مانگتے۔ (نہیں، یہ محاورتاً نہیں، اصل والا تھا)۔
کمپیوٹر 1951 تک اتنے ایڈوانس ہو چکے تھے کہ یہ پروگرام کا حصہ سٹور کر لیتے تھے۔ ان کو “سب روٹین” کہا جاتا تھا۔ ہوپر نے تجویز پیش کی کہ پروگرامر ان سب روٹین کو ایسے الفاظ کے ذریعے استعمال کر سکیں جن کو عام فہم زبان میں سمجھا جا سکے۔ جیسا کہ “آمدنی میں سے ٹیکس منہا کر دیں”۔ ایک پروگرام درمیان میں ان ہدایات کا ترجمہ کر دے۔ ہوپر نے اس درمیانی پروگرام کو کمپائلر کہا۔ لیکن یہ خیال زیادہ مقبول نہیں ہوا۔ اس میں دلچسپی اس لئے نہیں تھی کہ خیال تھا کہ اس طرح پروگرام کی رفتار آہستہ ہو جائے گی۔ اور یہ درست تھا۔ پروگرام بنانے کی رفتار اور پروگرام چلنے ک کی رفتار میں ایک ٹریڈ آف تھا۔
ہوپر دلبرداشتہ نہیں ہوئیں۔ اپنے فارغ وقت میں انہوں نے پہلا کمپائلر لکھا۔ اور پروگرام لکھنے والوں کو یہ پسند آیا۔یا۔ ایک انجینر کارل ہیمر نے اسے استعمال کرتے ہوئے ایسے ایکوئشن ایک دن میں حل کر لی، جس میں وہ ایک مہینے سے پھنسے ہوئے تھے۔ کئی لوگوں نے ہوپر کو اپنے لکھے پروگراموں کے حصے بھیجنا شروع ککر دئے۔ ہوپر ان کی لائبریری بنانے لگیں۔ اوپن سورس سافٹ وئیر کا یہ پہلا پراجیکٹ تھا۔
گریس ہوپر کا بنایا ہوا کمپائلر ارتقا کر کے کمپیوٹر لینگوئج بنا جو COBOL تھی۔ اور اس نے سوفٹ وئیر اور ہارڈ وئیر کے درمیان ویسے واضح تفریق کر دی جس سے ہم آج واقف ہیں۔ مارک ون کے وقت ہارڈ وئیر اور سافٹ وئیر ایک ہی تھا۔ مارک ون پر لکھا ہوا پروگرام کسی اور کمپیوٹر پر نہیں چل سکتا تھا۔ لیکن اگر کمپیوٹر ایک کمپائلر چلا سکتا ہے تو وہ وہ اس کمپائلر پر چلنے والا ہر پروگرام چلا سکتا ہے۔
اس کے بعد سے اب تک انسان اور فزیکل چپ کے درمیان ایبسٹریکشن کی کئی تہیں آ چکی ہیں۔ اور ہر قدم اسی راستے کی طر طرف گیا ہے جس کی ابتدا ہوپر نے کی تھی۔ یہ پروگرامر کو زیادہ تجریدہ سطح پر سونا ممکن بناتا ہے۔ الگورتھم اور تصورات کی مدد سے سوچا جا سکتا ہے، نہ کی سوئچ اور تاروں کے بارے میں۔
ہوپر کا خیال تھا کہ ان کے آئیڈیا کی ابتدا میں مخالفت اس لئے ہوئی تھی کہ اس وقت کے پروگرامروں کے خیال میں ایسا کام کرتے تھے جو کم ہی لوگ کرنے کی صلاحیت رکھتے تھے۔ وہ لوگ اس مشین سے رابطہ کرنے کی سپرپاور رکھتے تھے۔ ہوپر کی نظر میں پروگرامنگ اتنی آسان ہونی چاہیے کہ کوئی بھی کر سکے۔ ان کا خیال درست تھا۔ ان کی کمپائلر کی ایجاد نے ممکن کیا ایک بچہ بھی کمپیوٹر کو دی گئی ہدایات سے اپنی سکرین بھر سکتا تھا۔
کمپیوٹر پروگرامنگ میں کمپائلر اہم ترین ایجاد ہے۔ اس پیشرفت کے بغیر کمپیوٹر پر ونڈوز انسٹال کرنے میں پانچ ہزار سال کا انتظار کچھ زیادہ ہی عرصہ ہوتا۔