پائتھون سے کب دلچسپی پیدا ہوئی اور اس میں کیے گئے کچھ کاموں کے بارے میں بھی بتائیں؟
ایف ایس سی میں جب BASIC پروگرامنگ لینگویج سیکھی تھی تو چھوٹے موٹے کھلونے بنانے شروع کر دیے تھے۔ البتہ بیسک کی صلاحیت انتہائی محدود ہونے کے سبب کافی تنگ ہوتا تھا۔ چنانچہ دیگر پروگرامنگ لینگویجز سیکھنے کا خیال تو آیا لیکن تب اتنی شدید خواہش پیدا نہ ہوئی کہ جا کر سیکھنا شروع کر دوں۔ پھر ایک دوست عاقل محمود نے، جس کی پرانی عادت ہے کہ نت نئی چیزیں کھوجتا رہتا ہے، پائتھن پروگرامنگ لینگویج سیکھنا شروع کی تو مجھے بھی وقتاً فوقتاً تنگ کرنا شروع کر دیا کہ تم بھی سیکھو۔ اس کے مسلسل تنگ کرنے کا یہ فائدہ ہو گیا کہ پائتھن کا کافی اچھا تعارف ہو گیا کہ آسان ہے اور آزاد چیز بھی ہے۔ اس سے پہلے لینکس کے استعمال کے دوران بار بار پائتھن سکرپٹس سے واسطہ پڑتا تو رہا تھا لیکن تب اس کو تفصیل سے جاننے کی کوشش نہیں کی تھی۔
اس دوست کے پاس نوکیا کا S60 پلیٹ فارم والا کوئی موبائل فون تھا۔ اس پر وہ چھوٹے موٹے پروگرام لکھتا رہتا تھا۔ ایک بار اس نے ایک پروگرام بھیجا جو آپ سے پوچھتا کہ "کس نمبر کی ایسی کی تیسی کرنی ہے؟" تو آپ اسے ایک فون نمبر دیتے اور وہ آپ کی مطلوبہ تعداد میں بے قاعدہ وقفوں سے اس نمبر پر مس کالیں دیتا رہتا۔ اس وقت یہ سمارٹ فونز کا طوفان نہیں آیا تھا چنانچہ یہ خیال کہ جیب میں پڑے موبائل کو پروگرام کر کے جو چاہو کروا لو، بہت پرکشش لگا۔
شاید سب سے زیادہ اثر اس کتاب کے عنوان نے ڈالا جو اس دوست نے مجھے پائتھن سیکھنے کے لیے بھیجی تھی۔
کتاب کا نام تھا
Think Python: How to Think Like a Computer Scientist
تو اس کو پڑھنا شروع کر دیا۔ اندازِ تحریر پسند آیا تو پڑھتا ہی رہا۔
پائتھن میں کیا گیا کام۔۔۔
زیادہ تر کام تو چھوٹے موٹے سکرپٹس کی صورت میں اپنے، یا بعض اوقات دوسروں کے، کئی کاموں کو خودکار بنانے کے لیے کیا ہے۔
کافی سارا تجرباتی کوڈ بھی لکھا ہے مختلف اقسام کے تجربات کے لیے۔ مثلاً، نیٹ ورک پروگرامنگ کے کچھ بنیادی تجربات، سائنسی پروگرامنگ کے کچھ تجربات، وغیرہ۔
پہلی بار کوئی قابلِ ذکر کام پروگرامنگ کا تب کیا جب محمد علی مکی نے پاک لینکس پر کام شروع کیا تو میرے دل میں خواہش پیدا ہوئی کہ اس بار ترجمے، پیکجنگ اور آرٹ ورک سے آگے بڑھ کر ڈسٹربیوشن میں کچھ انفرادیت لائی جائے۔ اس وقت ابھی میں پائتھن سیکھ رہا تھا (شاید آخری مراحل میں)۔ چنانچہ اس سے مشورہ کر کے دو پروگرام لکھے جن میں ایک وی سی ڈی سے ویڈیو کشید کرنے والے کمانڈ لائن پروگرام کے لیے جی یو آئی تھا جبکہ دوسرا لینکس کے لیے ایک کیبورڈ لے آؤٹ ایڈیٹر۔ ظاہری بات ہے کہ سیکھنے کے مرحلے سے گزرنے کے بعد ہی یہ پروگرام لکھ پایا۔ سیکھنے کے دوران ان اہداف کی موجودگی نے موٹیویشن کا کام بھی دیا۔
پائتھن سیکھنے کے بعد خیال آیا کہ ایک کمپیوٹر وژن کی لائبریری، اوپن سی وی، بھی ہوا کرتی ہے جس کی پائتھن بائنڈنگ دستیاب ہے۔ چنانچہ نستعلیق او سی آر بنانے کو دل چاہا۔ ایک طویل عرصہ تک ناکام تجربات کے بعد اس کام کو غیر معینہ مدت کے لیے ملتوی کر دیا۔ اب بھی کبھی کبھی اس کام کو دوبارہ نکال کر تھوڑی مٹی جھاڑ کر نئے سرے سے کوشش کرتا ہوں اور پھر کہیں اور مصروف ہو کر بھول جاتا ہوں۔
جب اینڈرائڈ فونز مارکیٹ میں نئے نئے عام ہوئے تو اپنی یادداشت کو سہارا دینے کے لیے ایک پروگرام لکھنے کا خیال آیا جو بلیوٹوتھ کے ذریعے آس پاس موجود آلات کو سکین کرے اور اگر میں نے کسی مخصوص آلے یا کسی مخصوص نوعیت کے آلے کے ساتھ کوئی یادداشت منسلک کی ہوئی ہو تو مجھے یاد دلائے۔ مثلاً کمپیوٹر پر کرنے کا کچھ کام ہو تو کمپیوٹر کی رینج میں آتے ہی مجھے یاد دلائے کہ وہ فلاں کام کر لو۔ بنیادی ڈھانچہ تو اپنے تاریخی پینٹیم تھری پر ہی کھڑا کر لیا تھا لیکن چونکہ اچھی طرح علم تھا کہ خاکسار کے ہاتھ کوئی اینڈرائڈ یا ایس 60 والا فون لگنے کا امکان دور دور تک نہیں ہے تو کچھ ترقی کر لینے کے بعد اس کام کو بھی غیر معینہ مدت کے لیے ملتوی کر دیا۔ اب تو ایپ سٹور میں ایسی ایپلکیشنز آسانی سے مل جاتی ہیں چنانچہ اسے مکمل کرنے پر اکسانے والی کوئی وجہ بھی باقی نہیں رہی۔
جب فہد کیہر صاحب نے "آسان اردو انسٹالرز" کی بات چلائی تھی اور م بلال م نے ونڈوز کے لیےاور مکی نے لینکس کے لیے اردو انسٹالر بنائے تھے، تو میں چونکہ سافٹوئیر میں لچک کو پسند کرتا ہوں تو ایک "وزرڈ" طرز کے لینکس اردو انسٹالر پر کام شروع کیا تھا، جس کا ہدف تھا کہ صارف سے پوچھے کہ اسے کون کون سے فانٹس اور کیبورڈز چاہئیں، اور اگر صارف چاہے تو دو یا دو سے زائد لے آؤٹس بھی نصب کر سکے۔ کیبورڈ لے آؤٹ کی خودکار تنصیب، وہ بھی اس طرح کہ کسی بھی ڈیسکٹاپ ماحول میں اپنی پسند کے حساب سے اس کا انتخاب کیا جا سکے، ذرا مشکل کام تھا کیونکہ اس کے لیے ایکس کی بورڈ کے سارے نظام کو سمجھنا پڑا۔ ساتھ ہی ضرورت کے تحت صارف سے پاسورڈ لینا، عام صارف سے روٹ بننا اور پھر واپس آنا، یہ ٹوٹکے بھی سیکھنے پڑے۔ پھر جب یہ سب سیکھ لیا تو سوچا کہ اس سہولت کو کیبورڈ لے آؤٹ ایڈیٹر میں شامل کرنا زیادہ مفید رہے گا۔ چنانچہ ایسا ہی کیا اور انسٹالر وزرڈ والے کام کو سردخانے میں ڈال دیا کیونکہ اب ایسی چیز کی زیادہ ضرورت محسوس نہیں ہوتی۔
ہماری جامعہ میں ہر سال ثقافتی ہفتے کا انعقاد کیا جاتا ہے۔ اس میں بنیادی توجہ کا مرکز تو مختلف ممالک کے ثقافتی سٹالز ہوتے ہیں لیکن جامعہ کے ڈیپارٹمنٹس کو بھی کچھ جگہ فراہم کی جاتی ہے جو اپنے کام اور طلباء کے بنائے ہوئے مختلف پراجیکٹس کی نمائش کرنا چاہیں۔ گزشتہ سال اس نمائش کے لیے کامپٹن اثر کا ایک مظاہرہ پائتھن میں لکھا تھا۔ ہوا کیا کہ ہم وہاں مانیٹر کے بجائے پراجیکٹر اٹھا کر لے گئے اور دھوپ بھی ہماری طرف ہی پڑ رہی تھی۔ افرادی قوت کی کمی کے سبب اس غلطی کا بروقت ازالہ بھی نہیں کیا جا سکتا تھا۔ چنانچہ اس پروگرام کا مظاہرہ وہاں نہ ہو سکا۔ سوچا تھا کہ اس سال اپنے دل کے ارمان پورے کر لوں گا لیکن اس بار سیکیورٹی صورت حال کے سبب نمائش ہوئی ہی نہیں۔
اس کے علاوہ، یہیں اردو محفل پر حال ہی میں کئی سال پہلے شروع کیا گیا ایک منصوبہ دوبارہ زندہ ہوا جس کے تحت کریکٹر بیسڈ فانٹس کے ذریعے خودکار طور پر ترسیمے جنریٹ کروائے جانے تھے۔ جب وہ منصوبہ شروع ہوا تھا تب چونکہ میں پروگرامنگ میں بالکل مبتدی تھا تو زیادہ کچھ کر نہیں سکا۔ اب دوبارہ زندہ ہوا تو اس کے چند ایک مراحل کو خودکار بنانے کے لیے پائتھن سکرپٹس لکھے ہیں۔