"تجرباتی نتائج صرف اشاعت کے لیے ہیں، کام کے اصل محرکات جمالیاتی ہیں۔" مائیکل سکاٹ کے ساتھ زبردست انٹرویو

"تجرباتی نتائج صرف اشاعت کے لیے ہیں، کام کے اصل محرکات جمالیاتی ہیں۔" مائیکل سکاٹ کے ساتھ زبردست انٹرویو مائیکل سکاٹ - پہلے ہی 34 سال کی ہے روچیسٹر یونیورسٹی میں کمپیوٹر سائنس کے پروفیسر کے طور پر، اور اپنے گھر کی یونیورسٹی آف وسکونسن – میڈیسن میں وہ پانچ سال تک ڈین رہے۔ وہ طلباء کو متوازی اور تقسیم شدہ پروگرامنگ اور زبان کے ڈیزائن کے بارے میں تحقیق اور سکھاتا ہے۔

دنیا مائیکل کو نصابی کتاب سے جانتی ہے۔ "پروگرامنگ لینگویج پراگمیٹکس"، کام کے بارے میں کیا "مشترکہ میموری کے ملٹی پروسیسرز پر توسیع پذیر مطابقت پذیری کے لیے الگورتھم" ڈسٹری بیوٹڈ کمپیوٹنگ کے میدان میں سب سے مشہور کے طور پر ڈجکسٹرا پرائز حاصل کیا۔ آپ اسے اسی الگورتھم کے مصنف کے طور پر بھی جان سکتے ہیں۔ مائیکل سکاٹ.

ڈوگ لی کے ساتھ مل کر، اس نے نان بلاکنگ الگورتھم اور ہم وقت ساز قطاریں تیار کیں جو جاوا لائبریریوں کو طاقت دیتی ہیں۔ عمل درآمد "دوہری ڈیٹا ڈھانچے" JavaSE 6 میں کارکردگی میں 10 گنا اضافہ ہوا۔ ThreadPoolExecutor.

فہرست:

  • ابتدائی کیریئر، یونیورسٹی آف روچیسٹر۔ پروجیکٹ شارلٹ، لنکس کی زبان؛
  • IEEE توسیع پذیر مربوط انٹرفیس، MCS لاکنگ؛
  • ہمیشہ بدلتی ہوئی دنیا میں بقا؛
  • کیا طالب علم بیوقوف ہو رہے ہیں؟ عالمی رجحانات، بین الاقوامی کاری؛
  • طلباء کے ساتھ مؤثر کام؛
  • نئے کورسز اور کتابوں کی تیاری کو کیسے جاری رکھا جائے؛
  • کاروبار اور اکیڈمی کے درمیان روابط؛
  • نظریات کا عملی نفاذ۔ MCS, MS, CLH, JSR 166, Doug Lee اور مزید کے ساتھ کام کرنا؛
  • ٹرانزیکشنل میموری؛
  • نئے فن تعمیرات۔ لین دین کی یادداشت کی فتح قریب ہے۔
  • غیر مستحکم میموری، آپٹین ڈی آئی ایم ایم، انتہائی تیز آلات؛
  • اگلا بڑا رجحان۔ دوہری ڈیٹا ڈھانچے ہائیڈرا

انٹرویو کی طرف سے منعقد کیا جاتا ہے:

وٹالی اکسینوف — فی الحال IST آسٹریا میں پوسٹ ڈاک اور ITMO یونیورسٹی میں کمپیوٹر ٹیکنالوجیز کے شعبہ کے رکن ہیں۔ مسابقتی ڈیٹا ڈھانچے کی تھیوری اور پریکٹس کے میدان میں تحقیق کرتا ہے۔ IST میں کام کرنے سے پہلے، انہوں نے پروفیسر پیٹر کزنیتسوف کی نگرانی میں پیرس ڈیڈروٹ یونیورسٹی اور ITMO یونیورسٹی سے پی ایچ ڈی کی ڈگری حاصل کی۔

الیکسی فیڈروف - JUG Ru گروپ میں پروڈیوسر، ایک روسی کمپنی جو ڈویلپرز کے لیے کانفرنسوں کا اہتمام کرتی ہے۔ الیکسی نے 50 سے زیادہ کانفرنسوں کی تیاری میں حصہ لیا، اور اس کے ریزیومے میں اوریکل (JCK، Java Platform Group) میں ڈویلپمنٹ انجینئر کے عہدے سے لے کر Odnoklassniki میں ایک ڈویلپر کے عہدے تک سب کچھ شامل ہے۔

ولادیمیر سیٹنکوف - نیٹ کریکر میں انجینئر۔ NetCracker OS کی کارکردگی اور اسکیل ایبلٹی پر دس سال کا کام، ٹیلی کام آپریٹرز کے ذریعے نیٹ ورک اور نیٹ ورک آلات کے انتظام کے عمل کو خودکار کرنے کے لیے استعمال کیا جاتا ہے۔ جاوا اور اوریکل ڈیٹا بیس کی کارکردگی کے مسائل میں دلچسپی رکھتے ہیں۔ آفیشل PostgreSQL JDBC ڈرائیور میں ایک درجن سے زیادہ کارکردگی میں بہتری کا مصنف۔

ابتدائی کیریئر، یونیورسٹی آف روچیسٹر۔ شارلٹ پروجیکٹ، لنکس زبان۔

یلیکس: شروع کرنے کے لیے، میں آپ کو بتانا چاہتا ہوں کہ روس میں ہم سب واقعی کمپیوٹر سائنس، ڈیٹا سائنس اور الگورتھم کو پسند کرتے ہیں۔ یہ سراسر فحش ہے۔ ہم نے سب کچھ پڑھ لیا ہے۔ کتاب کورمین، لیزرسن اور ریوسٹ. اس لیے آنے والی کانفرنس، اسکول اور یہ انٹرویو خود بہت مقبول ہونا چاہیے۔ ہمیں اس انٹرویو کے لیے طلباء، پروگرامرز، اور کمیونٹی کے اراکین سے بہت سے سوالات موصول ہوئے، اس لیے ہم اس موقع کے لیے بہت مشکور ہیں۔ کیا کمپیوٹر سائنس کو امریکہ میں وہی پیار ملتا ہے؟

مائیکل: ہمارا میدان اتنا متنوع ہے، اس کی بہت سی سمتیں ہیں، اور یہ معاشرے کو اتنے مختلف طریقوں سے متاثر کرتی ہے کہ میرے لیے آپ کو قطعی جواب دینا مشکل ہے۔ لیکن حقیقت یہ ہے کہ اس نے گزشتہ 30 سالوں میں کاروبار، صنعت، آرٹ اور معاشرے میں عمومی طور پر زبردست تبدیلیاں لائی ہیں۔

Виталий: آئیے کسی دور کی چیز سے شروع کریں۔ بہت سی یونیورسٹیوں میں ایک خاص شعبے میں تخصص جیسی چیز ہوتی ہے۔ کارنیگی میلن یونیورسٹی کے لیے یہ متوازی کمپیوٹنگ ہے، MIT کے لیے یہ کرپٹوگرافی، روبوٹس اور ملٹی تھریڈنگ ہے۔ کیا روچیسٹر یونیورسٹی میں ایسی کوئی تخصص ہے؟

مائیکل: سچ پوچھیں تو میں کہوں گا کہ CMU اور MIT تمام شعبوں میں مہارت رکھتے ہیں۔ ہمارے محکمہ نے ہمیشہ مصنوعی ذہانت پر سب سے زیادہ توجہ دی ہے۔ ہمارے لیے کام کرنے والے آدھے لوگ AI یا انسانی کمپیوٹر کے تعامل میں مصروف ہیں - یہ حصہ دوسرے محکموں کے مقابلے میں زیادہ ہے، اور ہمیشہ ایسا ہی رہا ہے۔ لیکن جب میں یونیورسٹی میں تھا، میرے پاس AI میں کوئی کورس نہیں تھا، اور میں نے اس شعبے میں کبھی کام نہیں کیا۔ تو میرا شعبہ ایک ایسے مسئلے میں مہارت رکھتا ہے جس سے میرا کوئی تعلق نہیں ہے۔ تسلی کی بات یہ ہے کہ ہمارے شعبہ کا دوسرا اہم مسئلہ متوازی اور ملٹی تھریڈ پروگرامنگ ہے، یعنی میری اسپیشلائزیشن۔

Виталий: آپ نے کمپیوٹر سائنس میں اس وقت کام کرنا شروع کیا جب ملٹی تھریڈ پروگرامنگ کا شعبہ ابھی ابھر رہا تھا۔ آپ کی اشاعتوں کی فہرست سے پتہ چلتا ہے کہ آپ کے پہلے کام کافی وسیع مسائل سے نمٹتے ہیں: ملٹی تھریڈڈ سسٹمز، ڈسٹری بیوٹڈ فائل سسٹمز، آپریٹنگ سسٹمز میں میموری مینجمنٹ۔ ایسی استعداد کیوں؟ کیا آپ ریسرچ کمیونٹی میں اپنی جگہ تلاش کرنے کی کوشش کر رہے ہیں؟

مائیکل: ایک طالب علم کے طور پر، میں نے حصہ لیا شارلٹ پروجیکٹ یونیورسٹی آف وسکونسن میں، جہاں پہلے تقسیم شدہ آپریٹنگ سسٹمز میں سے ایک تیار کیا گیا تھا۔ وہاں میں نے رافیل فنکل کے ساتھ مل کر کام کیا۔رافیل فنکلاور مارون سلیمان (مارون سلیمان)۔ میرا مقالہ تقسیم شدہ نظاموں کے لیے سسٹم سافٹ ویئر کے لیے زبان کی ترقی کے لیے وقف تھا - اب ہر کوئی اس کے بارے میں بھول گیا ہے، اور خدا کا شکر ہے۔ میں نے Lynx پروگرامنگ لینگویج بنائی، جس کا مقصد ایک ڈھیلے جوڑے والے تقسیم شدہ آپریٹنگ سسٹم کے لیے سرور بنانا آسان بنانا تھا۔ چونکہ اس وقت میں بنیادی طور پر آپریٹنگ سسٹمز میں شامل تھا، اس لیے میں نے فرض کیا کہ میرا کیریئر بنیادی طور پر ان کے ساتھ منسلک ہوگا۔ لیکن روچیسٹر ایک بہت چھوٹی یونیورسٹی تھی اور اس کی وجہ سے وہاں کے مختلف گروپس ایک دوسرے کے ساتھ بہت قریب سے بات چیت کرتے تھے۔ میرے ساتھ بات کرنے کے لیے وہاں ایک درجن دوسرے آپریٹنگ سسٹم والے لوگ نہیں تھے، اس لیے میرے تمام رابطے ان لوگوں سے تھے جو بالکل مختلف شعبوں میں کام کرتے تھے۔ میں نے واقعی اس کا لطف اٹھایا، آل راؤنڈر ہونا میرے لیے ایک بڑا فائدہ ہے۔ اگر ہم خاص طور پر ملٹی تھریڈڈ ڈیٹا سٹرکچرز اور سنکرونائزیشن الگورتھم کے بارے میں بات کرتے ہیں، تو میں نے ان پر مکمل طور پر حادثاتی طور پر کام کرنا شروع کر دیا۔

IEEE توسیع پذیر مربوط انٹرفیس، MCS لاکنگ۔

Виталий: کیا آپ مجھے اس بارے میں کچھ اور بتا سکتے ہیں؟

مائیکل: یہ ایک مضحکہ خیز کہانی ہے جو میں سب کو سناتے ہوئے کبھی نہیں تھکتی۔ یہ ایک کانفرنس میں ہوا۔ ASPLOS بوسٹن میں - یہ 80 کی دہائی کے آخر یا 90 کی دہائی کے اوائل میں تھا۔ جان میلر-کرمی (جان میلر-کرومی۔)، ہماری فیکلٹی کا گریجویٹ۔ میں اسے جانتا تھا، لیکن ہم نے پہلے مشترکہ تحقیق نہیں کی تھی۔ میری ورنن (میری ورنن) وسکونسن سے ایک ملٹی پروسیسر سسٹم کے بارے میں بات کی جو وہ وسکونسن میں تیار کر رہے تھے: وسکونسن ملٹی کیوب. اس ملٹی کیوب میں ہارڈ ویئر کی سطح پر ایک ہم آہنگی کا طریقہ کار تھا جسے Q on Sync Bit کہا جاتا ہے، اور بعد میں اسے Q on Lock Bit کا نام دیا گیا کیونکہ یہ کولبی پنیر کی طرح لگتا تھا، جو کہ ایک پن تھا۔ اگر آپ ملٹی تھریڈنگ میکانزم میں دلچسپی رکھتے ہیں، تو آپ کو شاید معلوم ہوگا کہ Colby آخر کار IEEE اسکیل ایبل کوہرنٹ انٹرفیس کے معیار کے لیے ہم آہنگی کا انجن بن گیا۔ یہ ایک لاک کرنے کا طریقہ کار تھا جس نے ہارڈ ویئر کی سطح پر ایک کیشے سے دوسرے کیش میں پوائنٹرز بنائے تاکہ ہر لاک ہولڈر کو معلوم ہو کہ یہ کس کی باری ہے۔ جب جان اور میں نے اس کے بارے میں سنا تو ہم نے ایک دوسرے کی طرف دیکھا اور کہا: یہ ہارڈ ویئر کی سطح پر کیوں؟ کیا موازنہ اور تبادلہ کا استعمال کرتے ہوئے ایک ہی چیز کو حاصل نہیں کیا جا سکتا؟ ہم نے کلاس روم میں پڑی نوٹ بک میں سے ایک لی اور اس پر لکھا MCS بلاک کرناجبکہ مریم نے اپنی رپورٹ جاری رکھی۔ اس کے بعد، ہم نے اسے نافذ کیا، تجربہ کیا، خیال کامیاب ہوا، اور ہم نے مضمون شائع کیا. اس وقت، میرے لیے یہ موضوع محض ایک تفریحی خلفشار لگتا تھا، جس کے بعد میں نے آپریٹنگ سسٹمز پر واپس جانے کا ارادہ کیا۔ لیکن پھر اسی خطوط پر ایک اور مسئلہ پیدا ہوا، اور آخر کار ہم آہنگی، ملٹی تھریڈنگ، اور ڈیٹا سٹرکچرز میری خاصیت بن گئے۔ جیسا کہ آپ دیکھ سکتے ہیں، یہ سب حادثاتی طور پر ہوا۔

Виталий: میں ایک طویل عرصے سے MCS بلاک کرنے سے واقف ہوں، لیکن اب تک میں یہ نہیں جانتا تھا کہ یہ آپ کا کام ہے، اور یہ نہیں سمجھا کہ یہ آپ کے آخری ناموں کا مخفف ہے۔

بدلتی ہوئی دنیا میں کیسے زندہ رہنا ہے؟

یلیکس: میرا ایک متعلقہ موضوع پر ایک سوال ہے۔ 30 یا 40 سال پہلے مختلف خصوصیات میں زیادہ آزادی تھی۔ اگر آپ ملٹی تھریڈنگ یا ڈسٹری بیوٹڈ سسٹمز میں کیریئر شروع کرنا چاہتے ہیں تو آپ کا استقبال ہے، اگر آپ آپریٹنگ سسٹمز میں جانا چاہتے ہیں تو کوئی حرج نہیں۔ ہر علاقے میں بہت سے کھلے سوالات اور چند ماہرین تھے۔ اب تنگ تخصصات ابھر کر سامنے آچکے ہیں: عام طور پر آپریٹنگ سسٹم کے ماہر نہیں ہیں، انفرادی نظاموں کے ماہرین موجود ہیں۔ ملٹی تھریڈنگ اور ڈسٹری بیوٹڈ سسٹم کے ساتھ بھی ایسا ہی ہے۔ لیکن مسئلہ یہ ہے کہ ہماری زندگی لامتناہی نہیں ہے؛ ہر کوئی تحقیق کے لیے چند دہائیاں ہی وقف کر سکتا ہے۔ اس نئی دنیا میں کیسے زندہ رہنا ہے؟

مائیکل: ہم اس حوالے سے خاص نہیں ہیں، دوسرے علاقوں میں ایک بار ایسا ہی ہوا۔ میں خوش قسمت تھا کہ میں نے کمپیوٹر سائنس میں اس وقت کام کرنا شروع کیا جب یہ شعبہ اپنے "نوجوان" سالوں میں تھا۔ کچھ بنیادیں پہلے ہی رکھی جا چکی تھیں، لیکن سب کچھ اب بھی بہت ناپختہ تھا۔ یہ موقع اکثر نہیں آتا۔ الیکٹریکل انجینئرنگ بہت طویل عرصے سے چلی آرہی ہے، طبیعیات اس سے بھی زیادہ، ریاضی تقریباً وقت کے آغاز سے ہی ہے۔ لیکن اس کا یہ مطلب نہیں کہ اب کوئی بھی ریاضی میں دلچسپ دریافتیں نہیں کر رہا ہے۔ اب بھی بہت سے کھلے مسائل ہیں، لیکن ساتھ ہی مزید سیکھنے کی ضرورت ہے۔ آپ نے درست کہا کہ اب پہلے کی نسبت بہت زیادہ تخصصات موجود ہیں، لیکن اس کا مطلب صرف یہ ہے کہ ہم خود کو اسی صورت حال میں پاتے ہیں جیسا کہ انسانی سرگرمیوں کے دیگر شعبوں میں۔

یلیکس: میں یہاں اس مسئلے کے زیادہ عملی پہلو میں دلچسپی رکھتا ہوں۔ میرا ریاضی کا پس منظر ہے، اور میں اپنی پڑھائی کے دوران اکثر کانفرنسوں میں جاتا تھا اور مختلف سائنسی موضوعات پر کام کرتا تھا۔ میں نے دریافت کیا کہ سامعین میں سے کوئی بھی میری رپورٹس کو نہیں سمجھتا تھا، اور اسی طرح دوسرے لوگوں کی رپورٹس صرف خود ہی سمجھ میں آتی تھیں۔ اعلیٰ درجے کے موضوعات میں ایسا نہیں ہوتا ہے، لیکن جیسے ہی آپ کسی چیز کا کھوج لگانا شروع کر دیتے ہیں، سامعین مزید آپ کے ساتھ نہیں رہ سکتے۔ آپ اس سے کیسے نمٹتے ہیں؟

مائیکل: ہمیشہ کامیاب نہیں ہوتا۔ میں نے حال ہی میں ایک رپورٹ تیار کی ہے جس میں میں تکنیکی تفصیلات میں بہت گہرائی میں چلا گیا ہوں۔ جوں جوں بات آگے بڑھی، یہ واضح ہوتا گیا کہ زیادہ تر سامعین نے میری بات نہیں سمجھی، اس لیے مجھے پرواز کے دوران حالات کے مطابق ڈھالنا پڑا۔ سلائیڈز کو تبدیل نہیں کیا جا سکا، اس لیے یہ بہت اچھی نہیں نکلی - لہذا، عام طور پر، میں کوشش کرتا ہوں کہ سلائیڈز استعمال نہ کروں۔ مجموعی طور پر، میرا مشورہ یہ ہے کہ اپنے سامعین پر غور کریں۔ آپ کو یہ جاننے کی ضرورت ہے کہ آپ کس سے بات کر رہے ہیں، ان کے علم کی سطح کیا ہے، اور آپ کے کام کی تعریف کرنے کے لیے انہیں کیا سننے کی ضرورت ہے۔

Виталий: کیا آپ ہمیں کوئی اشارہ دے سکتے ہیں کہ یہ لیکچر کس بارے میں تھا؟

مائیکل: سچ پوچھیں تو، میں اس موضوع پر بات نہ کرنے کو ترجیح دوں گا تاکہ زیربحث لوگوں کو گمنام چھوڑ دوں۔ بات یہ ہے کہ ہم اکثر اس مسئلے کی پیچیدگیوں میں بہت گہرائی تک پہنچ جاتے ہیں جس پر ہم کام کر رہے ہیں، اس لیے بات کے آغاز میں یہ بتانا ہمارے لیے مشکل ہو جاتا ہے کہ مسئلہ کیوں دلچسپ اور اہم ہے اور اس کا ان مسائل سے کیا تعلق ہے۔ سامعین پہلے ہی جانتے ہیں. میرے مشاہدے کے مطابق طلباء کو اس ہنر کو سیکھنے میں سب سے مشکل وقت درپیش ہے۔ اور یہ میری حالیہ رپورٹ کا کمزور نکتہ بھی تھا۔ ایک مناسب ساختہ رپورٹ کو، شروع سے ہی، سامعین کے ساتھ رابطہ تلاش کرنا چاہیے، انہیں یہ بتانا چاہیے کہ مسئلہ درحقیقت کیا ہے اور اس کا تعلق ان موضوعات سے کیسے ہے جو پہلے سے ہی جانتے ہیں۔ یہ تعارف کتنا تکنیکی ہے اس کا انحصار سامعین پر ہے۔ اگر یہ مکمل طور پر موٹلی ہے، تو رپورٹ ملٹی اسٹیج ہو سکتی ہے۔ تعارف ہر کسی کے لیے قابل رسائی ہونا چاہیے، اور آخر تک یہ ٹکڑا آپ کے ساتھ نہیں رہ سکتا، لیکن آپ کے فیلڈ سے نسبتاً واقف لوگ اس کا پتہ لگا سکیں گے۔

کیا طالب علم بیوقوف ہو رہے ہیں؟ عالمی رجحانات، بین الاقوامی کاری۔

یلیکس: آپ کئی دہائیوں سے طلبہ کا مشاہدہ کر رہے ہیں۔ کیا طلباء دہائیوں سے دہائی یا سال بہ سال ذہین یا ذہین ہوتے جا رہے ہیں؟ روس میں، پروفیسرز مسلسل شکایت کرتے ہیں کہ طلباء ہر سال بیوقوف ہو رہے ہیں، اور یہ واقعی واضح نہیں ہے کہ اس کے بارے میں کیا کرنا ہے۔

مائیکل: آپ واقعی ہم پرانے لوگوں سے بہت سی منفی باتیں سن سکتے ہیں۔ لاشعوری طور پر، ہمارا رجحان طالب علموں سے یہ توقع کرنے کا رجحان ہے کہ وہ ہمارے پاس پہلے سے موجود 30 سال کے تجربے کو جذب کر لیں گے۔ اگر میرے پاس 1985 سے زیادہ گہری سمجھ ہے تو طلباء کے پاس کیوں نہیں ہے؟ شاید اس لیے کہ ان کی عمر 20 سال ہے، آپ کا کیا خیال ہے؟ میرے خیال میں حالیہ دہائیوں میں سب سے اہم تبدیلیاں آبادیاتی ساخت میں ہوئی ہیں: کینیڈا کے استثناء کے ساتھ اب ہمارے پاس نمایاں طور پر زیادہ بین الاقوامی طلباء ہیں۔ وہاں بہت سے کینیڈین رہتے تھے کیونکہ ہم کینیڈا کی سرحد کے بہت قریب ہیں اور وہاں کے طلباء ویک اینڈ پر گھر جا سکتے ہیں۔ لیکن اب کینیڈا میں بہت سی اچھی یونیورسٹیاں ہیں، اور کینیڈین یہاں پڑھنا پسند کرتے ہیں؛ ان میں سے نمایاں طور پر کم ہی امریکہ آتے ہیں۔

یلیکس: کیا آپ کے خیال میں یہ مقامی رجحان ہے یا عالمی؟

مائیکل: مجھے یاد نہیں کہ کون ہے، لیکن کسی نے کہا کہ دنیا چپٹی ہے۔ ہمارا میدان بہت زیادہ بین الاقوامی ہو گیا ہے۔ ACM کانفرنسز پہلے، ان کا انعقاد خصوصی طور پر ریاستہائے متحدہ میں کیا جاتا تھا، پھر انہوں نے انہیں دوسرے ممالک میں ہر 4 سال میں ایک بار منعقد کرنے کا فیصلہ کیا، اور اب یہ پوری دنیا میں منعقد کیے جاتے ہیں۔ ان تبدیلیوں نے اور بھی زیادہ متاثر کیا۔ IEEEجیسا کہ یہ ہمیشہ ACM سے زیادہ بین الاقوامی تنظیم رہی ہے۔ اور چین، انڈیا، روس، جرمنی اور بہت سے دوسرے ممالک سے پروگرام کی کرسیاں موجود ہیں، کیونکہ اب ہر جگہ بہت کچھ ہو رہا ہے۔

یلیکس: لیکن، شاید، اس طرح کی بین الاقوامی کاری کے کچھ منفی پہلو ہیں؟

مائیکل: میں کہوں گا کہ تمام منفی پہلوؤں کا تعلق ٹیکنالوجی سے نہیں بلکہ سیاست سے ہے۔ ایک زمانے میں اصل مسئلہ یہ تھا کہ امریکہ دنیا بھر کے ممالک سے ذہین اور باصلاحیت لوگوں کو چرا رہا تھا۔ اور اب اصل مسئلہ ویزا اور امیگریشن کے ارد گرد مختلف ممالک کے درمیان سیاسی کھیل ہے۔

یلیکس: یعنی رکاوٹیں اور اس جیسی چیزیں۔ یہ بات واضح ہے.

ولادیمیر: ذاتی طور پر، میں اس بات میں دلچسپی رکھتا ہوں کہ طلباء کو نیا مضمون پڑھاتے وقت آپ کیا طریقہ اختیار کرتے ہیں۔ مختلف اختیارات ہیں: آپ سب سے پہلے انہیں کچھ نیا کرنے کی ترغیب دینے کی کوشش کر سکتے ہیں، یا آپ اس بات کی تفصیلات پر زیادہ توجہ دے سکتے ہیں کہ کوئی خاص ٹیکنالوجی کیسے کام کرتی ہے۔ آپ کس چیز کو ترجیح دیتے ہیں؟

طلباء کے ساتھ موثر کام

یلیکس: اور پہلی اور دوسری کے درمیان لات توازن کو کیسے تلاش کریں؟

مائیکل: مسئلہ یہ ہے کہ کلاسز ہمیشہ میری مرضی کے مطابق نہیں چلتی ہیں۔ میں عام طور پر طلباء کو پڑھنے کا مواد پہلے سے دے دیتا ہوں تاکہ وہ اس کا مطالعہ کریں، اسے اپنی بہترین صلاحیت کے مطابق سمجھیں، اور ان حصوں کے بارے میں سوالات تیار کریں جنہیں وہ سمجھ نہیں سکتے۔ پھر کلاس میں آپ مشکل ترین لمحات پر توجہ مرکوز کر سکتے ہیں اور ان کو ایک ساتھ دریافت کر سکتے ہیں۔ اس طرح میں کلاسوں کو پڑھانا سب سے زیادہ پسند کرتا ہوں۔ لیکن اس بوجھ کو دیکھتے ہوئے جو اب طلباء پر پڑا ہے، میں ہمیشہ اس بات کو یقینی بنانے کے قابل نہیں ہوں کہ وہ پہلے سے تیاری کریں۔ نتیجے کے طور پر، آپ کو مواد کی عام ریٹیلنگ کے لیے اپنی پسند سے کہیں زیادہ وقت صرف کرنا ہوگا۔ اس کے باوجود، میں اپنی کلاسوں کو انٹرایکٹو رکھنے کی کوشش کرتا ہوں۔ بصورت دیگر، ایک بار ویڈیو ریکارڈ کرنا آسان ہے جسے طلباء گھر بیٹھے دیکھ سکتے ہیں۔ لائیو کلاسز کا نقطہ انسانی تعامل ہے۔ کلاس میں، میں سلائیڈوں کے بجائے چاک اور بلیک بورڈ استعمال کرنے کو ترجیح دیتا ہوں، سوائے اس کے کہ بعض صورتوں میں جب خاکہ اتنا پیچیدہ ہو کہ بورڈ پر دکھایا جائے۔ اس کا شکریہ، مجھے کسی سخت سبق کے منصوبے پر قائم رہنے کی ضرورت نہیں ہے۔ چونکہ اس میں کوئی سخت ترتیب نہیں ہے جس میں میں مواد دیتا ہوں، اس سے مجھے موصول ہونے والے سوالات کے لحاظ سے سامعین کے لیے تیار کرنے کی اجازت ملتی ہے۔ عام طور پر، میں کوشش کرتا ہوں کہ کلاسز کو زیادہ سے زیادہ انٹرایکٹو بناؤں، تاکہ جو مواد میں پیش کرتا ہوں اس کا انحصار مجھ سے پوچھے گئے سوالات پر ہو۔

ولادیمیر: یہ بہت اچھا ہے. میرے تجربے میں، سامعین سے سوالات پوچھنا کافی مشکل ہے۔ اگر آپ کوئی سوال پوچھنے کے لیے پہلے سے کہیں بھی، خواہ کتنا ہی احمق ہو یا ہوشیار، وہ پھر بھی خاموش ہیں۔ آپ اس سے کیسے نمٹتے ہیں؟

مائیکل: آپ ہنسیں گے، لیکن اگر آپ کافی دیر خاموشی سے کھڑے رہے تو جلد یا بدیر ہر کوئی بے چین ہو جائے گا اور کوئی سوال کرے گا۔ یا آپ ہاں یا نہیں کے جواب کے ساتھ ایک سادہ تکنیکی سوال پوچھ سکتے ہیں تاکہ اس بات کا تعین کیا جا سکے کہ لوگ ابھی جو کہا گیا ہے اسے سمجھتے ہیں یا نہیں۔ مثال کے طور پر، کیا اوپر دی گئی مثال میں ڈیٹا کی دوڑ ہے؟ کون ایسا سوچتا ہے؟ کون نہیں سوچتا؟ کون کچھ بھی نہیں سمجھتا، کیونکہ مجموعی طور پر صرف آدھے ہاتھ اوپر گئے؟

Виталий: اور اگر آپ نے غلط جواب دیا تو آپ کو کلاس سے نکال دیا جائے گا :)

مائیکل: اگر آپ نے کچھ جواب نہیں دیا ہے، تو آپ کو ایک سوال کرنا چاہیے۔ مجھے یہ سمجھنے کی ضرورت ہے کہ میں نے ابھی پوچھے ہوئے سوال کا جواب دینے کے لیے طالب علم کو بالکل کیا جاننے کی ضرورت ہے۔ مجھے ان کی ضرورت ہے کہ میں ان کی مدد کروں۔ میں ان کے ساتھ موافقت کے لیے تیار ہوں تاکہ وہ مسئلہ کو سمجھیں۔ لیکن اگر میں نہیں جانتا کہ ان کے سر میں کیا چل رہا ہے، میں یہ نہیں کر سکتا۔ اور اگر آپ طالب علموں کو کافی دیر تک سکون نہیں دیتے ہیں، تو بعض اوقات آخر میں وہ صحیح سوالات پوچھتے ہیں، یعنی ایسے سوالات جو مجھے یہ دیکھنے کی اجازت دیتے ہیں کہ طالب علموں کے سروں میں کیا چل رہا ہے۔ 

یلیکس: کیا یہ سوالات بعض اوقات ایسے خیالات کا باعث بنتے ہیں جن کے بارے میں آپ نے پہلے نہیں سوچا تھا؟ کیا وہ غیر متوقع ہیں؟ کیا وہ آپ کو کسی مسئلے کو نئی روشنی میں دیکھنے کی اجازت دیتے ہیں؟

مائیکل: ایسے سوالات ہیں جو مواد کو پیش کرنے کا ایک نیا راستہ کھولتے ہیں۔ اکثر ایسے سوالات ہوتے ہیں جو دلچسپ مسائل کا باعث بنتے ہیں جن کے بارے میں میں نے بات کرنے کا ارادہ نہیں کیا تھا۔ طلباء اکثر مجھے بتاتے ہیں کہ جب ایسا ہوتا ہے تو میرا موضوع چھوڑ دینے کا رجحان ہوتا ہے۔ اور، ان کے مطابق، اکثر یہ سبق کا سب سے دلچسپ حصہ ہوتا ہے۔ شاذ و نادر ہی، صرف چند بار، طلباء نے ایسے سوالات پوچھے جن سے تحقیق میں ایک نئی سمت پیدا ہوئی اور ایک مضمون میں اضافہ ہوا۔ یہ کلاسز کے دوران طالب علموں کے ساتھ بات چیت میں زیادہ کثرت سے ہوتا ہے، لیکن کبھی کبھار یہ کلاسز کے دوران ہوتا ہے۔ 

یلیکس: تو طالب علموں نے آپ سے سوالات پوچھے جن کی بنیاد پر مضمون شائع کرنا ممکن تھا؟

مائیکل: جی ہاں. 

Виталий: آپ طالب علموں کے ساتھ یہ گفتگو کتنی بار کرتے ہیں؟ وہ کب اس سے زیادہ سیکھنا چاہتے ہیں جو سبق کے دوران احاطہ کیا گیا تھا؟

مائیکل: میرے گریجویٹ طلباء کے ساتھ - ہر وقت۔ میرے پاس ان میں سے تقریباً 5 یا 6 ہیں، اور ہم ہر وقت ان کے ساتھ کچھ نہ کچھ بحث کرتے ہیں۔ اور اس قسم کی گفتگو ان طلباء کے ساتھ جو صرف میری کلاسوں میں شرکت کرتے ہیں بہت عام نہیں ہیں۔ اگرچہ میری خواہش ہے کہ یہ زیادہ کثرت سے ہو۔ مجھے شک ہے کہ وہ دفتری اوقات میں فیکلٹی میں آنے سے ڈرتے ہیں۔ ہر سمسٹر میں، کچھ طلباء اس نفسیاتی رکاوٹ کو دور کرنے کا انتظام کرتے ہیں، اور کلاس کے بعد ان سے بات کرنا ہمیشہ بہت دلچسپ ہوتا ہے۔ سچ ہے، اگر تمام طلباء اتنے ہی بہادر ہوتے، تو میرے پاس اتنا وقت نہیں ہوتا۔ تو شاید سب کچھ کام کر رہا ہے جیسا کہ ہونا چاہئے۔ 

Виталий: آپ طلباء کے ساتھ بات چیت کے لیے وقت کیسے نکالتے ہیں؟ جہاں تک میں جانتا ہوں، USA میں اساتذہ کے پاس بہت زیادہ کام ہے - گرانٹس اور اس طرح کے لیے درخواست دینا۔ 

مائیکل: ایمانداری سے، طلباء کے ساتھ کام کرنا میرے کام کا وہ پہلو ہے جس سے میں سب سے زیادہ لطف اندوز ہوتا ہوں۔ اس لیے میرے پاس اس کے لیے کافی حوصلہ افزائی ہے۔ میں اپنے دفتر میں زیادہ تر وقت ہر قسم کی میٹنگز میں صرف کرتا ہوں۔ اب موسم گرما ہے، اس لیے میرا شیڈول کم مصروف ہے، لیکن تعلیمی سال کے دوران، ہر روز 9 سے 17 تک میرے پاس ہر چیز بھری ہوتی ہے۔ تحقیقی کام، جائزے، گرانٹس - ان سب کے لیے صرف شام اور اختتام ہفتہ ہوتے ہیں۔ 

نئے کورسز اور کتابوں کی تیاری کو کیسے جاری رکھا جائے۔

یلیکس: کیا آپ فی الحال کوئی ایسا کورس پڑھانا جاری رکھے ہوئے ہیں جو آپ ایک طویل عرصے سے پڑھا رہے ہیں؟ کمپیوٹر سائنس کا تعارف کی طرح کچھ۔

مائیکل: پہلی چیز جو یہاں ذہن میں آتی ہے وہ پروگرامنگ زبانوں کا کورس ہے۔ 

یلیکس: اس کورس کا آج کا ورژن 10، 20، 30 سال پہلے سے کتنا مختلف ہے؟ شاید یہاں جو چیز زیادہ دلچسپ ہے وہ کسی خاص کورس کی تفصیلات نہیں بلکہ عمومی رجحانات ہیں۔

مائیکل: پروگرامنگ زبانوں پر میرا کورس اس وقت کچھ غیر معمولی تھا جب میں نے اسے بنایا تھا۔ میں نے اسے 1980 کی دہائی کے آخر میں پڑھنا شروع کیا، اپنے ساتھی، ڈوگ بالڈون کی جگہ لے کر (ڈوگ بالڈون)۔ کورس کا موضوع صرف میری خاصیت سے متعلق تھا، لیکن جب وہ چلا گیا، میں کورس پڑھانے کے لیے بہترین امیدوار تھا۔ مجھے اس وقت موجود نصابی کتابوں میں سے کوئی بھی پسند نہیں تھی، اس لیے میں نے خود اس کورس کے لیے نصابی کتاب لکھنا ختم کی۔ (ایڈیٹر کا نوٹ: ہم کتاب کے بارے میں بات کر رہے ہیں۔ "پروگرامنگ لینگویج پراگمیٹکس") اب یہ دنیا بھر کی 200 سے زیادہ یونیورسٹیوں میں استعمال ہوتا ہے۔ میرا نقطہ نظر اس لحاظ سے غیر معمولی ہے کہ یہ زبان کے ڈیزائن اور نفاذ کے مسائل کو جان بوجھ کر ملا دیتا ہے، اور تمام ممکنہ شعبوں میں ان پہلوؤں کے درمیان تعامل پر بہت توجہ دیتا ہے۔ بنیادی نقطہ نظر میں کوئی تبدیلی نہیں کی گئی ہے، جیسا کہ بہت سے بنیادی تصورات ہیں: تجرید، نام کی جگہ، ماڈیولریٹی، اقسام۔ لیکن زبانوں کا مجموعہ جس کے ساتھ ان تصورات کا مظاہرہ کیا جاتا ہے مکمل طور پر بدل گیا ہے۔ جب یہ کورس پہلی بار بنایا گیا تھا، تو پاسکل میں بہت سی مثالیں موجود تھیں، لیکن آج میرے بہت سے طالب علموں نے اس زبان کو نہیں سنا ہے۔ لیکن وہ Swift, Go, Rust جانتے ہیں، اس لیے مجھے ان زبانوں کے بارے میں بات کرنی ہے جو آج استعمال ہو رہی ہیں۔ اس کے علاوہ، طلباء اب رسم الخط کی زبانوں پر عبور حاصل کر چکے ہیں، لیکن جب میں نے اس کورس کو پڑھانا شروع کیا تو یہ سب کچھ مرتب شدہ زبانوں کے بارے میں تھا۔ اب ہمیں پائتھون، روبی اور یہاں تک کہ پرل کے بارے میں بھی بہت سارے مواد کی ضرورت ہے، کیونکہ ان دنوں یہی کوڈ لکھا جاتا ہے، اور ان زبانوں میں بہت سی دلچسپ چیزیں ہو رہی ہیں، بشمول لینگویج ڈیزائن کے شعبے میں۔ 

Виталий: پھر میرا اگلا سوال پچھلے سوال سے متعلق ہوگا۔ اس علاقے میں کیسے رہیں؟ مجھے شک ہے کہ اس طرح کے کورس کو اپ ڈیٹ کرنے کے لیے بہت زیادہ کام کی ضرورت ہوتی ہے - آپ کو نئی زبانوں کو سمجھنے، اہم خیالات کو سمجھنے کی ضرورت ہے۔ آپ یہ کیسے کرتے ہیں؟

مائیکل: میں فخر نہیں کر سکتا کہ میں ہمیشہ 100 فیصد کامیاب ہوتا ہوں۔ لیکن زیادہ تر وقت میں وہی کرتا ہوں جو باقی سب کرتے ہیں - انٹرنیٹ پڑھیں۔ اگر میں زنگ کو سمجھنا چاہتا ہوں تو میں اسے گوگل کرتا ہوں، موزیلا کے صفحہ پر جائیں اور وہاں پوسٹ کردہ مینوئل پڑھیں۔ یہ تجارتی ترقی میں ہونے والی چیزوں کا حصہ ہے۔ اگر ہم سائنس کے بارے میں بات کرتے ہیں، تو آپ کو اہم کانفرنسوں میں رپورٹس پر عمل کرنے کی ضرورت ہے۔ 

کاروبار اور اکیڈمی کے درمیان ربط

Виталий: آئیے کاروبار اور سائنسی تحقیق کے درمیان تعلق کے بارے میں بات کرتے ہیں۔ آپ کے کاموں کی فہرست میں، مجھے کیشے ہم آہنگی پر کئی مضامین ملے۔ میں سمجھتا ہوں کہ کیشے کی مستقل مزاجی الگورتھم شائع ہونے کے وقت غیر مستحکم تھے؟ یا کافی وسیع نہیں ہے۔ عملی طور پر آپ کے خیالات کتنے عام تھے؟

مائیکل: مجھے قطعی طور پر یقین نہیں ہے کہ آپ کن اشاعتوں کے بارے میں بات کر رہے ہیں۔ میں نے اپنے طلباء بل بولوسکی کے ساتھ کافی کام کیا ہے (ولیم بولوسکی) اور لیونیڈاس کونٹوٹاناسس (لیونیڈاس کونٹوتھاناسیس) 1990 کی دہائی کے اوائل میں نیومن مشینوں کے میموری مینجمنٹ پر۔ اس وقت، کاروبار کو ابھی تک اس بات کی سمجھ نہیں تھی کہ ملٹی پروسیسر سسٹم کو صحیح طریقے سے کیسے بنایا جائے: کیا یہ ہارڈ ویئر کی سطح پر ریموٹ میموری تک رسائی کے لیے تعاون پیدا کرنے کے قابل ہے، کیا یہ میموری کو تقسیم کرنے کے قابل ہے، کیا اس سے کیشے کو لوڈ کرنا ممکن ہے؟ ریموٹ میموری، یا آپریٹنگ روم میں صفحات کو منتقل کرنا ضروری ہے؟ بل اور لیونیڈاس دونوں نے اس علاقے میں کام کیا اور ریموٹ کیش لوڈنگ کے بغیر طریقوں کو تلاش کیا۔ اس کا براہ راست تعلق کیش ہم آہنگی سے نہیں تھا، لیکن یہ اب بھی NUMA میموری مینجمنٹ پر کام کر رہا تھا، اور اس کے بعد جدید آپریٹنگ سسٹمز میں صفحہ کی جگہ کے لیے جدید نقطہ نظر اس سے بڑھے۔ مجموعی طور پر، بل اور لیونیڈاس نے اہم کام کیا، حالانکہ اس علاقے میں سب سے زیادہ بااثر نہیں تھے - اس وقت اسی چیز پر بہت سے دوسرے لوگ کام کر رہے تھے۔ بعد میں، میں نے ہارڈ ویئر ٹرانزیکشنل میموری کے تناظر میں کیش کوہرنس سے متعلق ایک موضوع پر کام کیا۔ اس مسئلے پر میں نے جس گروپ کے ساتھ کام کیا اس نے کئی پیٹنٹس حاصل کئے۔ ان کے پیچھے کچھ بہت ہی دلچسپ خیالات ہیں، لیکن مجھے نہیں لگتا کہ وہ عملی طور پر نافذ ہو جائیں گے۔ کسی نہ کسی طرح، میرے لیے ان کے منافع کا فیصلہ کرنا مشکل ہے۔ 

یلیکس: اس سلسلے میں، ایک اور ذاتی سوال: یہ آپ کے لیے کتنا اہم ہے کہ آپ کے خیالات کو عملی جامہ پہنایا جائے؟ یا آپ اس کے بارے میں نہیں سوچتے؟

مائیکل: مجھے یہ سوال دوسرے لوگوں، درخواست دہندگان یا فیکلٹی میں شامل ہونے کے خواہشمند امیدواروں سے انٹرویوز میں پوچھنا پسند ہے۔ مجھے نہیں لگتا کہ اس سوال کا کوئی صحیح جواب ہے۔ جو لوگ ٹھنڈی چیزیں کرتے ہیں وہ بہت مختلف محرکات رکھتے ہیں۔ میں مسائل کی طرف متوجہ ہوں کیونکہ مجھے ذاتی طور پر وہ دلچسپ لگتے ہیں، ان کے عملی فوائد کی وجہ سے نہیں۔ لیکن دوسری طرف، جب کوئی دلچسپ چیز اب بھی اطلاق پاتی ہے، تو مجھے واقعی یہ پسند ہے۔ تو یہ یہاں آسان نہیں ہے۔ لیکن اپنے کام کے آغاز میں، میں اب بھی دنیا میں آخری استعمال کے خیال سے نہیں بلکہ اس خیال کی ہم آہنگی اور اسے دریافت کرنے اور اس سے کیا حاصل ہوتا ہے دیکھنے کی خواہش سے متاثر ہوں۔ اگر آخر میں یہ عملی نتائج دیتا ہے، بہت اچھا. 

یلیکس: آپ کی تعلیم اور تجربے کی وجہ سے، آپ دوسرے لوگوں کے خیالات کی قدر کا فیصلہ کرنے کے لیے زیادہ تر لوگوں سے بہتر ہیں۔ آپ ان کا موازنہ کر سکتے ہیں اور اس بات کا تعین کر سکتے ہیں کہ کس کے ساتھ بہتر کام کرتا ہے۔ مجھے یقین ہے کہ آپ کی ان چیزوں کے بارے میں کوئی رائے ہے جو فی الحال انٹیل جیسے بڑے مینوفیکچررز کے ذریعہ عملی طور پر استعمال ہو رہی ہیں۔ آپ کے نقطہ نظر سے، یہ کمپنیاں جو کورس کر رہی ہیں وہ کس حد تک درست ہے؟

مائیکل: مشق ہمیشہ اس کے ارد گرد گھومتی ہے جو تجارتی طور پر کامیاب ہوسکتی ہے، یعنی منافع کمانا، اور بہتر ہے کہ آپ اس کے بارے میں کسی اور سے پوچھیں۔ میرے کام کا زیادہ تر نتیجہ اشاعتوں میں ہوتا ہے، اور آپریٹنگ سسٹم کے شعبے میں کارکردگی کے اشاریوں کی بنیاد پر ان کا جائزہ لیا جاتا ہے: رفتار، توانائی کی کھپت، کوڈ کا سائز۔ لیکن مجھے ہمیشہ ایسا لگتا تھا کہ یہ تجرباتی نتائج صرف مضامین میں شامل کیے جاتے ہیں تاکہ وہ شائع ہو سکیں، اور لوگوں کے کام کے لیے اصل محرکات جمالیاتی ہیں۔ محققین فنکارانہ نقطہ نظر سے حل کا جائزہ لیتے ہیں، وہ اس بات کی پرواہ کرتے ہیں کہ خیالات کتنے خوبصورت ہیں، اور وہ موجودہ نقطہ نظر سے بہتر کچھ تخلیق کرنے کی کوشش کرتے ہیں۔ محققین ذاتی، ساپیکش، جمالیاتی محرکات سے کارفرما ہیں۔ لیکن آپ خود اس مضمون میں نہیں لکھ سکتے؛ یہ باتیں پروگرام کمیٹی کے لیے دلیل نہیں ہیں۔ خوش قسمتی سے، خوبصورت حل اکثر تیز اور سستے بھی ہوتے ہیں۔ میں نے اور میرے ایک درجن ساتھیوں نے تقریباً 15 سال پہلے اس موضوع پر گفتگو کی اور اس پر ایک مضمون لکھنا ختم کیا۔ مجھے لگتا ہے کہ آپ اب بھی اسے ڈھونڈ سکتے ہیں، اسے کہا جاتا ہے۔ "سسٹم ریسرچ کا اندازہ کیسے لگایا جائے" یا ایسا ہی کچھ، اس کے ایک درجن سے زیادہ مصنفین ہیں۔ یہ واحد مضمون ہے جس کا میں ایک ساتھ مصنف ہوں۔ ساشا فیڈورووا، لہذا اگر آپ میری اشاعتوں کی فہرست میں اس کے نام کی تلاش کرتے ہیں، تو آپ کو وہی مل جائے گا جس کی آپ کو ضرورت ہے۔ یہ نظام کی تحقیق کا جائزہ لینے کے بارے میں بات کرتا ہے اور خوبصورتی کتنی اہم ہے۔ 

یلیکس: تو سائنس اور کاروبار میں جو چیز اچھی سمجھی جاتی ہے اس کے معیار میں فرق ہے۔ سائنس کارکردگی، بجلی کی کھپت، TDP، نفاذ میں آسانی، اور بہت کچھ کا جائزہ لیتی ہے۔ کیا آپ کے پاس یونیورسٹی میں اس قسم کی تحقیق کرنے کا موقع ہے؟ کیا آپ کے پاس مختلف مشینوں اور مختلف فن تعمیرات والی لیبارٹری ہے جس میں آپ تجربات کر سکتے ہیں؟

مائیکل: جی ہاں، ہمارے محکمہ میں بہت سی مختلف دلچسپ مشینیں ہیں۔ اکثر وہ چھوٹے ہوتے ہیں، ہمارے پاس ایک چھوٹا کلسٹر اور بہت سے ملٹی پروسیسر سسٹم ہیں جن میں مختلف ایکسلریٹر ہیں۔ اس کے علاوہ، کیمپس میں ایک بہت بڑا کمپیوٹنگ سینٹر ہے جو کئی درجن مختلف شعبوں کے سائنسدانوں کی خدمت کرتا ہے۔ اس میں تقریباً ایک ہزار نوڈس اور بیس ہزار کور ہیں، یہ سب لینکس پر ہیں۔ اگر ضرورت پیش آئے تو آپ ہمیشہ کچھ AWS خرید سکتے ہیں۔ لہذا ہمارے پاس ہارڈ ویئر کے ساتھ کوئی خاص پابندی نہیں ہے۔ 

یلیکس: تیس سال پہلے کیسا تھا؟ کیا تب مسائل تھے؟

مائیکل: تب یہ تھوڑا مختلف تھا۔ 1980 کی دہائی کے وسط سے آخر تک، سائنس کو کمپیوٹنگ کے وسائل کی کمی سمجھا جاتا تھا۔ اس صورتحال کے تدارک کے لیے نیشنل سائنس فاؤنڈیشن (نیشنل سائنس فاؤنڈیشن) نے مربوط تجرباتی تحقیق کا ایک پروگرام بنایا (مربوط تجرباتی تحقیق، CER)۔ پروگرام کا مشن کمپیوٹر سائنس کے شعبہ جات کے لیے کمپیوٹنگ کا بنیادی ڈھانچہ فراہم کرنا تھا، اور اس میں نمایاں تبدیلی آئی ہے۔ اس کی فراہم کردہ رقم سے، ہم نے یونیورسٹی آف روچیسٹر میں 1984 میں 128 ناٹ والی BBN بٹر فلائی خریدی، یہ میرے وہاں پہنچنے سے ایک سال پہلے کی بات ہے۔ اس وقت یہ مشترکہ میموری کے ساتھ دنیا کا سب سے بڑا ملٹی پروسیسر سسٹم تھا۔ اس میں 128 پروسیسرز تھے، ہر ایک الگ مدر بورڈ پر تھا، اور چار ریک پر قبضہ کیا ہوا تھا۔ ہر پروسیسر میں ایک میگا بائٹ میموری ہوتی تھی، 128 میگا بائٹ ریم اس وقت ناقابل تصور رقم تھی۔ اس مشین پر ہم نے پہلی بار MCS لاکنگ کو لاگو کیا۔ 

یلیکس: تو، اگر میں آپ کو صحیح طریقے سے سمجھتا ہوں، تو اس وقت ہارڈ ویئر کا مسئلہ حل ہو گیا ہے؟ 

مائیکل: عام طور پر، ہاں۔ چند انتباہات ہیں: سب سے پہلے، اگر آپ چپ کی سطح پر کمپیوٹر فن تعمیر کر رہے ہیں، تو تعلیمی ماحول میں ایسا کرنا مشکل ہے کیونکہ کاروبار میں اسے کرنے کے لیے بہت بہتر ٹولز موجود ہیں۔ اگر آپ کو 10 نینو میٹر سے چھوٹی چیز کی ضرورت ہو تو آپ کو اسے کسی اور سے منگوانا پڑے گا۔ اس علاقے میں Intel میں محقق بننا بہت آسان ہے۔ اگر آپ چپس یا سالڈ اسٹیٹ میموری پر آپٹیکل کمیونیکیشنز پر کام کر رہے ہیں، تو آپ کو کاروبار میں ایسی ٹیکنالوجیز ملیں گی جو ابھی تک سائنس میں نہیں ہیں، اس لیے آپ کو اتحاد بنانا ہوگا۔ مثال کے طور پر سٹیفن سوانسن (اسٹیون سوانسن۔) بنایا گیا ہے۔ ایسی شراکت داری نئی میموری ٹیکنالوجیز کے لیے۔ یہ فارم ہمیشہ کام نہیں کرتا، لیکن بعض صورتوں میں یہ کافی کامیاب ہو سکتا ہے. اس کے علاوہ، سائنس میں سب سے زیادہ طاقتور کمپیوٹنگ سسٹمز کی ترقی زیادہ مشکل ہے۔ اس وقت امریکہ، جاپان اور چین میں سپر کمپیوٹر کے سب سے بڑے پراجیکٹس کی توجہ کاروبار پر ہے۔ 

نظریات کا عملی نفاذ۔ MCS, MS, CLH, JSR 166، Doug Lee اور مزید کے ساتھ کام کرنا۔

Виталий: آپ پہلے ہی اس بارے میں بات کر چکے ہیں کہ آپ نے سنکرونائزیشن الگورتھم پر کیسے کام شروع کیا۔ آپ کے بارے میں دو بہت مشہور مضامین ہیں۔ MCS بلاک کرنا и مائیکل سکاٹ قطار (MS)، جو ایک لحاظ سے جاوا میں لاگو کیا گیا تھا۔ (ایڈیٹر کا نوٹ: تمام اشاعتیں دیکھی جا سکتی ہیں۔ ссылке по)۔ وہاں اس بلاکنگ کو کچھ تبدیلیوں کے ساتھ نافذ کیا گیا اور یہ نکلا۔ CLH تالا، اور قطار کو ارادے کے مطابق لاگو کیا گیا تھا۔ لیکن آپ کے مضامین کی اشاعت اور ان کے عملی اطلاق میں کئی سال گزر گئے۔ 

یلیکس: قطار کے معاملے میں لگ بھگ 10 سال لگتے ہیں۔

مائیکل: جاوا معیاری لائبریری میں یہ خصوصیات ظاہر ہونے سے پہلے؟

Виталий: جی ہاں. آپ نے ایسا کرنے کے لیے کیا کیا؟ یا انہوں نے کچھ نہیں کیا؟

مائیکل: میں آپ کو بتا سکتا ہوں کہ MS Queue جاوا 5 میں کیسے آیا۔ اس کے سامنے آنے سے چند سال پہلے، میں نے بوسٹن کے قریب سن مائیکرو سسٹم میں مارک موئرز کے گروپ کے ساتھ ان کی لیب میں کام کیا۔ اس نے ان لوگوں کے لیے ایک ورکشاپ کا اہتمام کیا جنہیں وہ جانتا تھا جو ملٹی تھریڈنگ میں دلچسپ مسائل پر کام کر رہے تھے کیونکہ وہ ایسے عنوانات تلاش کرنا چاہتے تھے جنہیں وہ اپنی کمپنی کو فروخت کر سکے۔ یہیں سے میری پہلی ملاقات ڈوگ لی سے ہوئی تھی۔ ڈوگ اور میں اور سن کے تقریباً 25 دوسرے لوگ مل کر ڈوگ کی پیشکش پر تبادلہ خیال کر رہے تھے۔ جے ایس آر 166جو بعد میں java.util.concurrent بن گیا۔ راستے میں، ڈوگ نے ​​کہا کہ وہ MS قطار استعمال کرنا چاہیں گے، لیکن اس کے لیے اسے انٹرفیس کے لیے قطار میں موجود عناصر کی تعداد کے لیے ایک کاؤنٹر کی ضرورت ہے۔ یعنی یہ کام الگ طریقے سے ہونا چاہیے تھا، جوہری، درست اور تیز۔ میں نے صرف نوڈس میں سیریل نمبرز شامل کرنے کا مشورہ دیا، پہلے نوڈ اور آخری کا نمبر لے کر ایک کو دوسرے سے گھٹا دیا۔ ڈوگ نے ​​اپنا سر کھجاتے ہوئے کہا، "کیوں نہیں،" اور ایسا ہی کیا۔ ہم نے لائبریری میں اس نقطہ نظر کو نافذ کرنے پر تبادلہ خیال کیا، لیکن ڈوگ نے ​​زیادہ تر کام خود کیا۔ نتیجے کے طور پر، وہ جاوا میں بہترین ملٹی تھریڈنگ سپورٹ قائم کرنے میں کامیاب ہوا۔ 

یلیکس: تو، اگر میں صحیح طریقے سے سمجھتا ہوں، تو .size() طریقہ معیاری قطار انٹرفیس کا حصہ ہونا چاہیے تھا، اور اس میں O(1) کی الگورتھمک پیچیدگی ہونی چاہیے تھی؟

مائیکل: ہاں، اور اس کے علاوہ ایک الگ کاؤنٹر کی ضرورت ہے۔

یلیکس: کیونکہ اگر آپ جاوا میں .size() طریقہ کو کال کرتے ہیں، تو نتیجہ فوری طور پر دستیاب ہونے کی امید ہے اور یہ مجموعہ کے اصل سائز پر مبنی نہیں ہے۔ میں دیکھ رہا ہوں، شکریہ۔

مائیکل: کچھ سال بعد میں اپنے طالب علم بل شیرر کے ساتھ دوہری ڈیٹا ڈھانچے پر کام کر رہا تھا - درحقیقت، میں یہی بات کروں گا ہائیڈرا پر رپورٹ. ڈوگ ہمارے پاس آیا اور کہا کہ وہ انہیں جاوا ایگزیکیوٹر فریم ورک میں استعمال کر سکتا ہے۔ بل کے ساتھ مل کر، انہوں نے دو نفاذ، نام نہاد منصفانہ اور غیر منصفانہ قطاریں بنائیں۔ میں نے انہیں اس منصوبے پر مشورہ دیا، حالانکہ میں نے اصل کوڈ لکھنے میں حصہ نہیں لیا تھا۔ نتیجے کے طور پر، عمل درآمد کی رفتار میں نمایاں اضافہ ہوا ہے. 

ولادیمیر: کیا آپ کو اپنے الگورتھم کے غلط نفاذ یا نئی خصوصیات شامل کرنے کی درخواستوں کا سامنا کرنا پڑا ہے؟ عام طور پر، پریکٹس کو تھیوری کے ساتھ موافق ہونا چاہیے، لیکن اکثر وہ مختلف ہوتے ہیں۔ فرض کریں کہ آپ نے ایک الگورتھم لکھا ہے، اور کاغذ پر یہ کام کرتا ہے، لیکن وہ لوگ جو اس پر عمل درآمد میں شامل ہیں آپ سے مزید خصوصیات یا الگورتھم کی کسی قسم کی موافقت کے لیے پوچھنے لگے۔ کیا آپ کو کبھی ایسے حالات آئے ہیں؟

مائیکل: واحد مثال جس میں کوئی میرے پاس آیا اور پوچھا "اسے کیسے لاگو کیا جائے" ڈوگ کا سوال تھا، جس کے بارے میں میں پہلے ہی بات کر چکا ہوں۔ لیکن چند معاملات ایسے بھی ہیں جہاں عملی ضروریات کے مطابق دلچسپ تبدیلیاں کی گئی ہیں۔ مثال کے طور پر، IBM میں K42 ٹیم نے MCS لاک کو تبدیل کیا اور اسے ایک معیاری انٹرفیس بنا دیا اس لیے ایکوائر اور ریلیز کے معمولات کے لیے قطار نوڈ کو آگے پیچھے کرنے کی ضرورت نہیں تھی۔ اس معیاری انٹرفیس کی بدولت ایک ایسا آئیڈیا جو تھیوری میں خوبصورت تھا عملی طور پر کام کرنے لگا۔ یہ حیرت کی بات ہے کہ انہوں نے اس کے بارے میں کبھی کوئی مضمون شائع نہیں کیا، اور اگرچہ انہیں پیٹنٹ ملا، لیکن بعد میں انہوں نے اسے ترک کر دیا۔ خیال بہت اچھا تھا، اور میں جب بھی ممکن ہو اس کے بارے میں بات کرنے کی کوشش کرتا ہوں۔ 

ایسے دوسرے معاملات بھی ہیں جہاں لوگوں نے میرے شائع کردہ الگورتھم میں بہتری لائی ہے۔ مثال کے طور پر، MS قطار میں دو قدمی تنصیب کا طریقہ کار ہے، جس کا مطلب ہے کہ قطار کے اہم راستے پر دو CAS تھے۔ پرانی کاروں پر، CAS کافی مہنگی تھیں۔ انٹیل اور دیگر مینوفیکچررز نے حال ہی میں انہیں کافی حد تک بہتر بنایا ہے، لیکن ایک زمانے میں یہ 30-سائیکل ہدایات تھیں، لہذا اہم راستے پر ایک سے زیادہ کا ہونا ناپسندیدہ تھا۔ نتیجے کے طور پر، ایک مختلف قطار تیار کی گئی تھی جو MS قطار سے ملتی جلتی تھی، لیکن جس کا اہم راستے پر صرف ایک ایٹمی آپریشن تھا۔ یہ اس حقیقت کی وجہ سے حاصل ہوا کہ ایک مخصوص مدت کے دوران آپریشن میں O(1) کے بجائے O(n) وقت لگ سکتا ہے۔ یہ ناممکن تھا، لیکن ممکن تھا. یہ اس حقیقت کی وجہ سے ہوا کہ مخصوص لمحات پر الگورتھم قطار کو شروع سے اس قطار میں موجودہ پوزیشن تک لے گیا۔ عام طور پر، الگورتھم بہت کامیاب نکلا. جہاں تک میں جانتا ہوں، یہ بہت بڑے پیمانے پر استعمال نہیں کیا جاتا ہے، جزوی طور پر اس لیے کہ جوہری آپریشن کے لیے پہلے کے مقابلے میں کافی کم وسائل کی ضرورت ہوتی ہے۔ لیکن خیال بہت اچھا تھا۔ مجھے اوریکل سے ڈیو ڈائس کا کام بھی بہت پسند ہے۔ وہ جو کچھ بھی کرتا ہے وہ بہت پریکٹیکل ہوتا ہے اور وہ لوہے کو بہت چالاکی سے استعمال کرتا ہے۔ NUMA-Aware synchronization algorithms اور ملٹی تھریڈڈ ڈیٹا ڈھانچے میں اس کا ہاتھ تھا۔ 

ولادیمیر: جب آپ الگورتھم لکھتے ہیں یا طلباء کو پڑھاتے ہیں تو آپ کے کام کا نتیجہ فوری طور پر نظر نہیں آتا۔ کمیونٹی کو ایک نئے مضمون سے واقف ہونے کے لیے کچھ وقت درکار ہے۔ نیا الگورتھم فوری طور پر درخواست نہیں ڈھونڈتا ہے۔ 

مائیکل: یہ فوری طور پر واضح نہیں ہے کہ آیا مضمون اہم ہوگا یا نہیں۔ میرے خیال میں ان کاغذات کا مطالعہ کرنا دلچسپ ہوگا جنہوں نے کانفرنسوں میں ایوارڈز جیتے ہیں۔ یعنی ان مضامین کو دیکھیں جنہیں پروگرام کمیٹیوں کے لوگ ایک زمانے میں بہترین سمجھتے تھے۔ آپ کو لنکس کی تعداد اور کاروبار پر پڑنے والے اثرات سے حساب لگانے کی کوشش کرنی ہوگی کہ یہ مضامین واقعی 10، 20، 25 سالوں میں کتنے بااثر ثابت ہوئے۔ مجھے شک ہے کہ دونوں کے درمیان ایک مضبوط تعلق ہو گا. یہ صفر نہیں ہوگا، لیکن غالباً یہ ہماری پسند سے کہیں زیادہ کمزور ہوگا۔ بہت سے خیالات وسیع ہونے سے پہلے طویل عرصے تک لاوارث رہتے ہیں۔ مثال کے طور پر، آئیے ٹرانزیکشنل میموری کو لے لیں۔ اصل مضمون کے شائع ہونے سے لے کر اس وقت تک 10 سال سے زیادہ کا عرصہ گزر گیا جب لوگوں نے اس سے مشینیں بنانا شروع کیں۔ اور تجارتی مصنوعات میں اس میموری کی ظاہری شکل سے پہلے - اور تمام 20. بہت طویل عرصے تک کسی نے مضمون پر توجہ نہیں دی، اور پھر اس کے لنکس کی تعداد میں تیزی سے اضافہ ہوا۔ اس کا پیشگی اندازہ لگانا مشکل ہوگا۔ دوسری طرف، بعض اوقات خیالات کو فوری طور پر عمل درآمد مل جاتا ہے۔ کچھ سال پہلے، میں نے DISC کے لیے Joe Izraelevitz کے ساتھ ایک مقالہ لکھا تھا جس میں مستقل ڈیٹا ڈھانچے کے لیے درستگی کی ایک نئی رسمی تعریف تجویز کی گئی تھی جسے چلانے والے کمپیوٹر کے کریش ہونے کے بعد استعمال کیا جا سکتا تھا۔ مجھے مضمون شروع سے ہی پسند آیا، لیکن یہ میری توقع سے کہیں زیادہ مقبول ہوا۔ یہ کئی مختلف گروہوں کے ذریعہ استعمال کیا گیا تھا اور آخر کار استقامت کے ڈھانچے کی معیاری تعریف بن گئی۔ جو یقیناً اچھا ہے۔

ولادیمیر: کیا کوئی ایسی تکنیک ہے جو آپ تشخیص کے لیے استعمال کرتے ہیں؟ کیا آپ اپنے مضامین اور اپنے طلباء کا جائزہ لینے کی کوشش بھی کرتے ہیں؟ اس لحاظ سے کہ آیا آپ نے جس شخص کو سکھایا وہ صحیح سمت میں جا رہا ہے۔

مائیکل: باقی سب کی طرح، میں اس وقت جو کچھ کر رہا ہوں اس پر زیادہ توجہ دیتا ہوں۔ ایک بار پھر، سب کی طرح، میں کبھی کبھار گوگل اسکالر کو یہ دیکھنے کے لیے چیک کرتا ہوں کہ آیا میرے ماضی کے کاغذات کا حوالہ دیا جا رہا ہے، لیکن یہ زیادہ تجسس سے باہر ہے۔ زیادہ تر میں اس بات میں مگن رہتا ہوں کہ میرے طلباء اب کیا کر رہے ہیں۔ جب موجودہ کام کا جائزہ لینے کی بات آتی ہے، تو اس کا ایک حصہ جمالیاتی تحفظات ہیں، کیا خوبصورت ہے اور کیا نہیں ہے۔ اور روزمرہ کی سطح پر کھلے سوالات ایک بڑا کردار ادا کرتے ہیں۔ مثال کے طور پر، ایک طالب علم میرے پاس کچھ نتائج کا گراف لے کر آتا ہے، اور ہم یہ سمجھنے کی کوشش کر رہے ہیں کہ گراف کا کچھ عجیب رویہ کہاں سے آیا۔ عام طور پر، ہم اپنے کام میں مسلسل ان چیزوں کو سمجھنے کی کوشش کرتے رہتے ہیں جو ہمیں ابھی تک سمجھ نہیں آتی ہیں۔ 

ٹرانزیکشنل میموری

Виталий: شاید ہم ٹرانزیکشنل میموری کے بارے میں تھوڑی بات کر سکتے ہیں؟

مائیکل: مجھے لگتا ہے کہ یہ کم از کم تھوڑا کہنا قابل ہے کیونکہ میں نے اس میں بہت زیادہ کوشش کی ہے۔ یہ ایک ایسا موضوع ہے جس پر میرے پاس کسی بھی دوسرے سے زیادہ اشاعتیں ہیں۔ لیکن ایک ہی وقت میں، عجیب بات یہ ہے کہ، میں ہمیشہ لین دین کی یادداشت کے بارے میں بہت شکی تھا۔ میر ے خیال سے، Herlihy اور Moss کا مضمون (M. Herlihy, J. E. B. Moss) اپنے وقت سے پہلے شائع ہوا تھا۔ 1990 کی دہائی کے اوائل میں، انہوں نے تجویز کیا کہ ٹرانزیکشنل میموری باصلاحیت پروگرامرز کو ملٹی تھریڈڈ ڈیٹا ڈھانچے پر کام کرنے میں مدد دے سکتی ہے، تاکہ ان ڈھانچے کو پھر عام پروگرامرز لائبریریوں کے طور پر استعمال کر سکیں۔ یعنی، یہ ڈوگ لی کے لیے اپنا JSR 166 کرنے میں مددگار ثابت ہوگا۔ لیکن ٹرانزیکشنل میموری کا مقصد ملٹی تھریڈڈ پروگرامنگ کو آسان بنانا نہیں تھا۔ لیکن 2000 کی دہائی کے اوائل میں اس کو بالکل اسی طرح سمجھا جانے لگا، جب یہ وسیع ہو گیا۔ متوازی پروگرامنگ کے مسئلے کو حل کرنے کے طریقے کے طور پر اس کی تشہیر کی گئی تھی۔ یہ نقطہ نظر ہمیشہ مجھے ناامید لگتا ہے۔ ٹرانزیکشنل میموری صرف متوازی ڈیٹا ڈھانچے کو لکھنا آسان بنا سکتی ہے۔ یہ، مجھے لگتا ہے، یہ وہی ہے جو اس نے حاصل کیا. 

ملٹی تھریڈ کوڈ لکھنے کی دشواری کے بارے میں

یلیکس: بہت دلچسپ. ایسا لگتا ہے کہ باقاعدہ پروگرامرز اور ان لوگوں کے درمیان ایک خاص رکاوٹ ہے جو ملٹی تھریڈڈ کوڈ لکھ سکتے ہیں۔ پچھلے سال، میں نے ان لوگوں سے کئی بار بات کی جو کچھ الگورتھمک فریم ورک کو نافذ کر رہے تھے۔ مثال کے طور پر، مارٹن تھامسن کے ساتھ ساتھ ملٹی تھریڈڈ لائبریریوں پر کام کرنے والے پروگرامرز کے ساتھ۔ (ایڈیٹر کا نوٹ: مارٹن تھامسن ایک بہت مشہور ڈویلپر ہیں، انہوں نے لکھا ڈراپٹر и Aeron. اور اس کے پاس بھی ہے۔ رپورٹ ہماری جوکر 2015 کانفرنس میں، ویڈیو ریکارڈنگ یوٹیوب پر دستیاب ہے۔. وہ وہی ہے۔ کھول دیا اس کانفرنس کلیدی ریکارڈنگ بھی دستیاب). ان کا کہنا ہے کہ بنیادی چیلنج الگورتھم کو تیز اور استعمال میں آسان بنانا ہے۔ یعنی وہ اس رکاوٹ کو دور کرنے اور زیادہ سے زیادہ لوگوں کو اس علاقے کی طرف راغب کرنے کی کوشش کر رہے ہیں۔ آپ اس کے بارے میں کیا سوچتے ہیں؟

مائیکل: یہ ملٹی تھریڈنگ کا بنیادی مسئلہ ہے: نظام کی پیچیدگی میں اضافہ کیے بغیر اعلیٰ کارکردگی کیسے حاصل کی جائے۔ 

یلیکس: کیونکہ جب وہ پیچیدگی سے بچنے کی کوشش کرتے ہیں تو الگورتھم کم عالمگیر ہو جاتا ہے۔

مائیکل: یہاں کلید مناسب طریقے سے ڈیزائن کردہ تجرید ہے۔ مجھے لگتا ہے کہ یہ عام طور پر کمپیوٹر سسٹمز کے لیے بطور فیلڈ اہم چیز ہے۔ بٹلر لیمپسن اس اصطلاح کو استعمال کرنا پسند کرتا ہے، اور وہ ہمیں " تجرید کے سوداگر" کہتا ہے۔ سادہ ٹیکنالوجیز آج موجود نہیں ہیں۔ ہم جو پروسیسرز استعمال کرتے ہیں ان میں 10 بلین ٹرانجسٹر ہیں — سادگی سوال سے باہر ہے۔ ایک ہی وقت میں، ISA پروسیسر کے مقابلے میں بہت آسان ہے، کیونکہ ہم نے اسے اعلیٰ کارکردگی اور نسبتاً آسان انٹرفیس فراہم کرنے کے لیے بہت طویل وقت تک کام کیا۔ لیکن اس کے ساتھ بھی سب کچھ ہموار نہیں ہے۔ یہی مسئلہ ایکسلریٹر کے ساتھ ہے جو اب مارکیٹ میں ظاہر ہو رہے ہیں۔ سوالات پیدا ہوتے ہیں - GPU کے لیے صحیح انٹرفیس، ایک انکرپشن میکانزم، کمپریشن، ایک ٹرانس کوڈنگ میکانزم، لکیری الجبرا میکانزم، یا اس سے بھی زیادہ لچکدار FPGA کیسے بنایا جائے۔ ایک ایسا انٹرفیس کیسے بنایا جائے جو ٹول کو استعمال میں آسان بنائے اور پیچیدگی کو چھپا دے؟ یہ اس سے چھٹکارا نہیں پائے گا، بلکہ اسے ایک سادہ پروگرامر سے چھپائے گا۔ 

یلیکس: جیسا کہ میں سمجھتا ہوں، ہمیں اب بھی تجریدات کو سمجھنے میں رکاوٹ ہے۔ آئیے میموری ماڈل کو لیں؛ سائنس اور ٹیکنالوجی کی ترقی کے ہمارے مرحلے پر، یہ ایک اہم تجرید ہے۔ اس کی بدولت تمام پروگرامرز کو دو گروپوں میں تقسیم کیا گیا ہے: بڑا حصہ وہ ہے جو اسے نہیں سمجھتے، اور چھوٹا حصہ وہ ہیں جو سمجھتے ہیں، یا سمجھتے ہیں کہ وہ سمجھتے ہیں۔ 

مائیکل: یہ ایک اچھا سوال ہے - کیا ہم میں سے کوئی واقعی میموری ماڈل کو سمجھتا ہے؟

Виталий: خاص طور پر C++ میں۔

مائیکل: کبھی ہنس بوہم سے بات کریں۔ وہ سب سے ذہین لوگوں میں سے ایک ہے جن کو میں جانتا ہوں، میموری ماڈلز کا ایک سرکردہ ماہر۔ وہ آپ کو فوراً بتائے گا کہ بہت کچھ ہے جو وہ نہیں سمجھتا۔ لیکن اگر ہم تجرید کے مسئلے پر واپس آتے ہیں، تو، میری رائے میں، پچھلے 30 سالوں میں میموری ماڈل کے میدان میں سب سے اہم خیال کا اظہار کیا گیا تھا. سریتا ایڈوے کے مقالے میں. (ایڈیٹر کا نوٹ: اشاعتوں کی مکمل فہرست دستیاب ہے۔ ссылке по).

یلیکس: میرا سوال یہ ہے کہ کیا یہ رکاوٹ تصور کی فطرت سے آتی ہے؟ 

مائیکل: نہیں. سریتا اس نتیجے پر پہنچی کہ صحیح نقطہ نظر کے ساتھ، آپ کامیابی کے ساتھ تمام پیچیدگیوں کو چھپا سکتے ہیں، اعلیٰ کارکردگی حاصل کر سکتے ہیں اور پروگرامر کو ایک سادہ API دے سکتے ہیں۔ اور اگر آپ اس API کی پیروی کرتے ہیں، تو آپ مستقل مستقل مزاجی حاصل کر سکتے ہیں۔ میرے خیال میں یہ صحیح ماڈل ہے۔ ڈیٹا ریس کے بغیر کوڈ لکھیں اور ترتیب وار مستقل مزاجی حاصل کریں۔ بلاشبہ، ریسنگ کے امکانات کو کم کرنے کے لیے، خصوصی آلات کی ضرورت ہے، لیکن یہ دوسری بات ہے۔ 

ولادیمیر: کیا آپ کے کیرئیر میں کبھی ایسا وقت آیا ہے جب کوئی ایسا مسئلہ جو حل ہوتا نظر آتا تھا اچانک تباہی میں بدل گیا، یا یہ پتہ چلا کہ یہ مسئلہ ناقابل حل تھا؟ مثال کے طور پر، تھیوری میں آپ کسی بھی عدد کو فیکٹر کر سکتے ہیں یا اس بات کا تعین کر سکتے ہیں کہ آیا کوئی نمبر پرائم ہے۔ لیکن عملی طور پر ایسا کرنا مشکل ہو سکتا ہے؛ موجودہ ہارڈ ویئر کے ساتھ نمبروں کو فیکٹر کرنا مشکل ہے۔ کیا آپ کے ساتھ بھی کچھ ایسا ہی ہوا ہے؟

مائیکل: مجھے فوری طور پر ایسا کچھ یاد نہیں۔ ایسے وقت بھی آئے جب مجھے ایسا لگتا تھا کہ کسی مخصوص علاقے میں کرنے کے لیے کچھ نہیں بچا، لیکن پھر وہاں کچھ نیا اور دلچسپ ہوا۔ مثال کے طور پر، میں نے سوچا کہ لامحدود قطاروں کا علاقہ پہلے ہی پختگی کو پہنچ چکا ہے۔ ایم این ایس کی قطار میں کئی بہتری کے بعد، اب زیادہ کچھ نہیں ہوا۔ اور پھر موریسن (ایڈم موریسن) اور افیک (یہودا افیک) نے ایجاد کیا۔ LCRQ قطار. یہ واضح ہو گیا کہ ایک لامحدود ملٹی تھریڈڈ قطار ممکن ہے، جہاں زیادہ تر وقت صرف اہم راستے پر لانے اور اضافے کی ہدایات ہوتی تھیں۔ اور اس سے بہتر کارکردگی کا آرڈر حاصل کرنا ممکن ہوا۔ ایسا نہیں ہے کہ ہم نہیں جانتے کہ بازیافت اور اضافہ ایک بہت مفید چیز ہے۔ ایرک فرائیڈنتھل نے 1980 کی دہائی کے آخر میں ایلن گوٹلیب کے ساتھ الٹرا کمپیوٹر پر اپنے کام میں اس کے بارے میں لکھا تھا، لیکن یہ محدود قطاروں کے بارے میں تھا۔ موریسن اور افیک ایک بے حد قطار میں بازیافت اور اضافہ کا استعمال کرنے کے قابل تھے۔

نئے فن تعمیرات۔ کیا ٹرانزیکشنل میموری کی فتح قریب ہے؟

ولادیمیر: کیا آپ نئے تعمیراتی حل تلاش کر رہے ہیں جو الگورتھم کے لیے مفید ہو؟ 

مائیکل: یقیناً، بہت سی چیزیں ہیں جن پر میں عمل درآمد دیکھنا چاہتا ہوں۔ 

ولادیمیر: کس قسم کی، مثال کے طور پر؟

مائیکل: سب سے پہلے، Intel اور IBM پروسیسرز میں ہماری ہارڈویئر لیول ٹرانزیکشنل میموری میں چند آسان ایکسٹینشنز۔ خاص طور پر، میں غیر لین دین کے بوجھ اور اسٹور کو چاہوں گا جو ابھی لین دین کے اندر فوری طور پر دستیاب ہو۔ وہ وقوع سے پہلے کی ترتیب میں فوری طور پر لوپس کی طرف لے جاتے ہیں، لہذا وہ مشکل ہو سکتے ہیں۔ لیکن اگر آپ تجرید کی تہوں کو برقرار رکھتے ہیں، تو بہت ساری دلچسپ چیزیں ہیں جو آپ لین دین سے باہر کر سکتے ہیں جب یہ ہو رہا ہے۔ میں نہیں جانتا کہ اس پر عمل درآمد کرنا کتنا مشکل ہوگا، لیکن یہ بہت مفید ہوگا۔ 

ایک اور مفید چیز ریموٹ میموری سے کیشے لوڈ کرنا ہے۔ میرے خیال میں جلد یا بدیر یہ ہو جائے گا۔ یہ ٹیکنالوجی مختلف میموری کے ساتھ سسٹمز کی تخلیق کی اجازت دے گی۔ ایک ریک میں 100 ٹیرا بائٹس نان وولاٹائل میموری رکھنا ممکن ہوگا، اور آپریٹنگ سسٹم خود متحرک طور پر فیصلہ کرے گا کہ اس میموری کے کون سے حصے پروسیسرز کے فزیکل ایڈریس اسپیس کے مطابق ہونے چاہئیں۔ یہ کلاؤڈ کمپیوٹنگ کے لیے انتہائی مفید ہو گا، کیونکہ اس سے ان کاموں کے لیے بڑی مقدار میں میموری فراہم کی جا سکے گی جن کی ضرورت ہے۔ مجھے لگتا ہے کہ کوئی کرے گا۔

Виталий: ٹرانزیکشنل میموری کے بارے میں بات ختم کرنے کے لیے، میرے پاس اس موضوع پر ایک اور سوال ہے۔ کیا ٹرانزیکشنل میموری بالآخر معیاری ملٹی تھریڈڈ ڈیٹا ڈھانچے کی جگہ لے لے گی؟

مائیکل: نہیں. لین دین ایک قیاس آرائی کا طریقہ کار ہے۔ پروگرامنگ کی سطح پر یہ ایٹمی تالے ہیں، لیکن اندر سے یہ قیاس آرائیاں ہیں۔ اس طرح کی پیشن گوئی کام کرتی ہے اگر زیادہ تر اندازے درست ہوں۔ لہذا، ٹرانزیکشنل میموری اچھی طرح سے کام کرتی ہے جب تھریڈز مشکل سے ایک دوسرے کے ساتھ تعامل کرتے ہیں، اور آپ کو صرف اس بات کو یقینی بنانا ہوگا کہ کوئی تعامل نہ ہو۔ لیکن اگر کوئی پیغام تھریڈز کے درمیان شروع ہو جائے تو لین دین کا کوئی فائدہ نہیں ہوتا۔ میں وضاحت کرتا ہوں، ہم اس معاملے کے بارے میں بات کر رہے ہیں جب لین دین پورے جوہری آپریشن کے گرد لپیٹے ہوئے ہیں۔ وہ اب بھی کامیابی سے ملٹی تھریڈڈ ڈیٹا ڈھانچے کے اجزاء کے طور پر استعمال کیے جا سکتے ہیں۔ مثال کے طور پر، اگر آپ کو تین الفاظ کے CAS کی ضرورت ہے، اور آپ کو ایک حقیقی ملٹی تھریڈ الگورتھم کے بیچ میں تین چھوٹی چیزوں کو ملٹی تھریڈ کرنے کی ضرورت ہے جو ایک ہی وقت میں بیس تھریڈز کے ساتھ کام کرتی ہے۔ عام طور پر، لین دین مفید ہو سکتا ہے، لیکن وہ ملٹی تھریڈڈ ڈیٹا ڈھانچے کو مناسب طریقے سے ڈیزائن کرنے کی ضرورت کو ختم نہیں کریں گے۔ 

غیر مستحکم میموری، آپٹین ڈی آئی ایم ایم، الٹرا فاسٹ ڈیوائسز۔

Виталий: آخری چیز جس کے بارے میں میں بات کرنا چاہوں گا وہ ہے آپ کی موجودہ تحقیق کا موضوع: غیر متزلزل میموری۔ ہم مستقبل قریب میں اس علاقے میں کیا امید کر سکتے ہیں؟ شاید آپ کسی ایسے موثر نفاذ کے بارے میں جانتے ہیں جو پہلے سے موجود ہیں؟ 

مائیکل: میں ہارڈ ویئر کا ماہر نہیں ہوں، میں صرف یہ جانتا ہوں کہ میں خبروں میں کیا پڑھتا ہوں اور میرے ساتھی مجھے کیا بتاتے ہیں۔ سب نے پہلے ہی سنا ہے کہ انٹیل فروخت کرتا ہے۔ آپٹین ڈی آئی ایم ایم، جس میں ڈائنامک RAM کے مقابلے میں پڑھنے میں 3 گنا اور لکھنے میں 10 گنا زیادہ تاخیر ہوتی ہے۔ وہ جلد ہی بہت بڑے حجم کے ورژن میں دستیاب ہوں گے۔ یہ سوچنا مضحکہ خیز ہے کہ آپ کے پاس کئی ٹیرا بائٹس بائٹ ایڈریس ایبل ریم والا لیپ ٹاپ ہو سکتا ہے۔ یہ امکان ہے کہ 10 سالوں میں ہم اس نئی ٹیکنالوجی کو استعمال کرنے کا فیصلہ کریں گے، کیونکہ ہم DRAM استعمال کرتے ہیں - صرف حجم میں اضافہ کریں۔ لیکن توانائی کی آزادی کی بدولت ہمارے لیے مکمل طور پر نئے مواقع کھلتے ہیں۔ ہم بنیادی طور پر اسٹوریج اسٹیک کو تبدیل کرسکتے ہیں تاکہ بائٹ ایڈریس ایبل ورکنگ میموری اور بلاک اسٹرکچرڈ پرسسٹنٹ میموری کے درمیان کوئی علیحدگی نہ ہو۔ اس طرح، ہمیں ہر اس چیز کو سیریلائز کرنے کی ضرورت نہیں ہوگی جسے ایک پروگرام سے دوسرے پروگرام میں بلاک ساختہ فائلوں میں منتقل کرنے کی ضرورت ہے۔ اس سے ہم بہت سے اہم اصول اخذ کر سکتے ہیں جو آپریٹنگ سسٹم، رن ٹائم ماحول، اور تقسیم شدہ ڈیٹا اسٹورز کو متاثر کرتے ہیں۔ یہ علاقہ کام کرنے کے لیے بہت دلچسپ ہے۔ ذاتی طور پر، میرے لیے یہ پیشین گوئی کرنا مشکل ہے کہ یہ سب کیا لے جائے گا، لیکن یہاں کے مسائل انتہائی دل لگی ہیں۔ یہاں انقلابی تبدیلیاں ہو سکتی ہیں، اور وہ ملٹی تھریڈنگ کے کام سے بہت فطری طور پر پیروی کرتی ہیں، کیونکہ ناکامی کی بازیابی نظام کے عام آپریشن کے آگے ایک "ملٹی تھریڈنگ" عمل ہے۔ 

دوسرا اہم موضوع جس پر میں فی الحال کام کر رہا ہوں وہ ہے انتہائی تیز آلات کا انتظام کرنا اور نظامی پالیسی کنٹرول کے ساتھ یوزر اسپیس سے آلات تک محفوظ رسائی۔ حالیہ برسوں میں، ڈیوائس تک رسائی کو یوزر اسپیس تک منتقل کرنے کا رجحان رہا ہے۔ ایسا اس لیے کیا جاتا ہے کہ TCP-IP کرنل اسٹیک نیٹ ورک انٹرفیس کے اوپر کام نہیں کر سکتا جسے ہر 5 مائیکرو سیکنڈ بعد ایک نئے پیکٹ کی ضرورت ہوتی ہے؛ یہ صرف برقرار نہیں رہے گا۔ لہذا، مینوفیکچررز آلات تک براہ راست رسائی فراہم کرتے ہیں. لیکن اس کا مطلب ہے کہ آپریٹنگ سسٹم اس عمل کا کنٹرول کھو دیتا ہے اور یہ مسابقتی ایپلی کیشنز کے لیے ڈیوائس تک مناسب رسائی فراہم نہیں کر سکتا۔ ہماری ریسرچ ٹیم کا خیال ہے کہ اس کوتاہی سے بچا جا سکتا ہے۔ ہمارے پاس اس مہینے USENIX ATC پر اس پر ایک مضمون ہوگا۔ اس کا تعلق استقامت پر کام سے ہے، کیونکہ طویل المدت بائٹ ایڈریس ایبل پرسسٹنٹ میموری، جوہر میں، الٹرا فاسٹ I/O کے ساتھ ایک ڈیوائس ہے جسے یوزر اسپیس میں رسائی حاصل کرنے کی ضرورت ہے۔ یہ تحقیق مائیکرو کرنلز، ایکوکرنلز، اور دیگر روایتی کوششوں کے لیے نئے طریقے ممکن بناتی ہے تاکہ فعالیت کو OS کرنل سے یوزر اسپیس میں محفوظ طریقے سے منتقل کیا جا سکے۔ 

ولادیمیر: بائٹ ایڈریس ایبل میموری بہت اچھی ہے، لیکن ایک جسمانی حد ہے - روشنی کی رفتار۔ اس کا مطلب ہے کہ ڈیوائس کے ساتھ تعامل کرتے وقت لامحالہ تاخیر ہوگی۔ 

مائیکل: بالکل صحیح.

ولادیمیر: کیا نئے بوجھ سے نمٹنے کے لیے کافی صلاحیت ہوگی؟

مائیکل: یہ ایک بہترین سوال ہے، لیکن میرے لیے اس کا جواب دینا مشکل ہوگا۔ میموری میں پروسیسنگ کا خیال کافی عرصے سے موجود ہے، یہ بہت دلچسپ ہے، لیکن بہت پیچیدہ بھی ہے۔ میں نے اس علاقے میں کام نہیں کیا، لیکن اگر وہاں کچھ دریافتیں کی جائیں تو یہ بہت اچھا ہوگا۔ مجھے ڈر ہے کہ میرے پاس شامل کرنے کے لیے مزید کچھ نہیں ہے۔ 

ولادیمیر: ایک مسئلہ اور ہے۔ نئی، نمایاں طور پر بڑی مقدار میں RAM کا CPU میں فٹ ہونا ناممکن ہو گا۔ لہذا، جسمانی حدود کی وجہ سے، اس RAM کو الگ تھلگ کرنا ضروری ہے۔ 

مائیکل: یہ سب انٹیگریٹڈ سرکٹس کی پیداوار میں نقائص کی تعداد پر منحصر ہے۔ اگر مکمل طور پر بغیر کسی نقائص کے سیمی کنڈکٹر ویفرز بنانا ممکن ہو، تو اس سے ایک مکمل مائیکرو سرکٹ بنانا ممکن ہو گا۔ لیکن اب ہم نہیں جانتے کہ مائیکرو سرکٹس کو ڈاک ٹکٹوں سے بڑا کیسے بنایا جائے۔ 

ولادیمیر: لیکن ہم اب بھی بڑے سائز کے بارے میں بات کر رہے ہیں، سینٹی میٹر کے بارے میں۔ اس کا لامحالہ تاخیر پر اثر پڑتا ہے۔ 

مائیکل: جی ہاں. روشنی کی رفتار کے بارے میں آپ کچھ نہیں کر سکتے۔ 

ولادیمیر: بدقسمتی سے. 

اگلا بڑا رجحان۔ دوہری ڈیٹا ڈھانچے ہائیڈرا

Виталий: جہاں تک میں سمجھتا ہوں، آپ نئے رجحانات کو بہت تیزی سے پکڑ لیتے ہیں۔ آپ ٹرانزیکشنل میموری میں کام کرنے والے پہلے لوگوں میں سے ایک تھے، اور نان ولیٹائل میموری میں کام کرنے والے پہلے لوگوں میں سے تھے۔ آپ کے خیال میں اگلا بڑا رجحان کیا ہوگا؟ یا شاید یہ ایک راز ہے؟

مائیکل: سچ کہوں تو مجھے نہیں معلوم۔ امید ہے کہ جب کوئی نئی چیز سامنے آئے گی تو میں اس کو دیکھ سکوں گا۔ میں اتنا خوش قسمت نہیں تھا کہ میں خود کوئی نیا فیلڈ ایجاد کر سکوں، لیکن میں نے کچھ خوش قسمتی حاصل کی ہے اور دوسروں کے تخلیق کردہ نئے شعبوں میں بہت جلد کام شروع کرنے میں کامیاب رہا ہوں۔ مجھے امید ہے کہ میں مستقبل میں یہ کام کر سکوں گا۔

یلیکس: اس انٹرویو میں آخری سوال ہائیڈرا میں آپ کی کارکردگی اور اسکول میں آپ کی سرگرمیوں کے بارے میں ہوگا۔ اگر میں صحیح طریقے سے سمجھتا ہوں، تو اسکول کی رپورٹ بلاکنگ فری الگورتھم کے بارے میں ہوگی، اور کانفرنس میں ڈبل ڈیٹا ڈھانچے کے بارے میں۔ کیا آپ ان رپورٹس کے بارے میں کچھ الفاظ کہہ سکتے ہیں؟

مائیکل: جزوی طور پر، ہم پہلے ہی اس انٹرویو میں آپ کے ساتھ ان موضوعات پر بات کر چکے ہیں۔ یہ اس کام کے بارے میں ہے جو میں نے اپنے طالب علم بل شیرر کے ساتھ کیا تھا۔ اس نے اس پر ایک مقالہ لکھا، اور ڈوگ لی نے بھی اس میں اپنا حصہ ڈالا، اور یہ بالآخر جاوا لائبریری میں ملٹی تھریڈڈ سنکرونس قطاروں کا حصہ بن گیا۔ آئیے فرض کریں کہ ڈیٹا سٹرکچر کو بلاک کیے بغیر پڑھا اور لکھا جاتا ہے، یعنی ہر آپریشن کے لیے اہم راستے پر محدود تعداد میں ہدایات ہوتی ہیں۔ اگر آپ کسی خالی کنٹینر سے ڈیٹا ہٹانے کی کوشش کرتے ہیں، یا کچھ ڈیٹا ہٹانے کی کوشش کرتے ہیں جو اس کنٹینر میں نہیں ہے، تو آپ کو فوری طور پر مطلع کیا جاتا ہے کہ ایسا نہیں کیا جا سکتا۔ لیکن اگر تھریڈ کو واقعی اس ڈیٹا کی ضرورت ہو تو یہ رویہ قابل قبول نہیں ہوگا۔ پھر ذہن میں آنے والی پہلی چیز یہ ہے کہ ایک لوپ بنانا ہے جو مسلسل پوچھے گا کہ کیا ضروری ڈیٹا ظاہر ہوا ہے۔ لیکن پھر ہر کسی کے لیے مداخلت ہے۔ اس کے علاوہ، اس اپروچ کے ساتھ، آپ 10 منٹ انتظار کر سکتے ہیں، اور پھر کوئی اور تھریڈ آئے گا، اور یہ غلطی سے ضروری ڈیٹا پہلے حاصل کر لے گا۔ دوہری ڈیٹا ڈھانچے میں اب بھی تالے نہیں ہیں، لیکن وہ تھریڈز کو مناسب طریقے سے انتظار کرنے دیتے ہیں۔ اصطلاح "ڈبل" کا مطلب ہے کہ ڈھانچہ یا تو ڈیٹا پر مشتمل ہے یا ڈیٹا کی درخواستیں، آئیے انہیں اینٹی ڈیٹا کہتے ہیں۔ لہذا اگر آپ کسی خالی کنٹینر سے کچھ بازیافت کرنے کی کوشش کرتے ہیں تو اس کے بجائے ایک درخواست کنٹینر میں ڈال دی جائے گی۔ اب تھریڈ کسی اور کو پریشان کیے بغیر درخواست کا انتظار کر سکتا ہے۔ مزید برآں، ڈیٹا کا ڈھانچہ درخواستوں کو ترجیحات تفویض کرتا ہے تاکہ موصول ہونے پر، یہ انہیں صحیح شخص تک پہنچا دے۔ نتیجہ ایک غیر مقفل کرنے کا طریقہ کار ہے جس کی اب بھی ایک رسمی تفصیلات اور عملی طور پر اچھی کارکردگی ہے۔ 

یلیکس: اس ڈیٹا ڈھانچے سے آپ کی کیا توقعات ہیں؟ کیا یہ تمام عام معاملات میں کارکردگی کو بہتر بنائے گا، یا یہ بعض حالات کے لیے بہتر موزوں ہے؟ 

مائیکل: یہ مفید ہے اگر، سب سے پہلے، آپ کو بغیر لاک کیے ایک کنٹینر کی ضرورت ہو، اور، دوسری بات، آپ کو ایسی صورت حال میں انتظار کرنے کی ضرورت ہے جہاں آپ کو کنٹینر سے ڈیٹا بازیافت کرنے کی ضرورت ہے جو اس میں نہیں ہے۔ میری بہترین معلومات کے مطابق، ہمارا فریم ورک بہترین رویہ فراہم کرتا ہے جب ان دو شرائط کو پورا کیا جاتا ہے۔ لہذا، ان معاملات میں میں اسے استعمال کرنے کی سفارش کرتا ہوں. لاک لیس ڈیٹا ڈھانچے کا بنیادی فائدہ یہ ہے کہ وہ کارکردگی کے مسائل سے بچتے ہیں۔ اور اگر ڈیٹا کو ایک تھریڈ سے دوسرے تھریڈ میں منتقل کیا جائے تو بہت سے الگورتھم میں انتظار کرنا بہت ضروری ہے۔

Виталийمجھے واضح کرنے دو: کیا آپ اسکول اور کانفرنس دونوں میں ایک ہی چیز کے بارے میں بات کریں گے؟

مائیکل: اسکول میں میں بولوں گا عام طور پر ملٹی تھریڈڈ ڈیٹا ڈھانچے کے بارے میں، بنیادی اصولوں کے ساتھ جو سبق کے آغاز میں بیان کیے گئے ہیں۔ میں فرض کرتا ہوں کہ سامعین جانتے ہیں کہ تھریڈز کیا ہیں اور وہ تالے سے واقف ہیں۔ اس بنیادی معلومات کی بنیاد پر، میں لاک فری ڈیٹا ڈھانچے کے بارے میں بات کروں گا۔ میں اس علاقے کے اہم ترین مسائل کا ایک جائزہ پیش کروں گا، میموری مینجمنٹ جیسے موضوعات کو چھوتا ہوں۔ مجھے نہیں لگتا کہ MS قطار سے زیادہ پیچیدہ کوئی چیز ہوگی۔

یلیکس: کیا آپ اسکول میں اپنی کلاس کے اختتام پر دوہری ڈیٹا ڈھانچے کے بارے میں پڑھانے کا منصوبہ بنا رہے ہیں؟

مائیکل: میں ان کا ذکر کروں گا، لیکن میں ان پر زیادہ وقت نہیں گزاروں گا۔ ہائیڈرا کی رپورٹ ان کے لیے وقف کی جائے گی۔ یہ اس منصوبے کا احاطہ کرے گا جس نے بالآخر اسے جاوا بنا دیا، نیز LCRQ قطار کی دوہری شکل بنانے کے لیے Joe Israelevich کے ساتھ مل کر کام کرنا، اور دوہری ڈیٹا ڈھانچے کے لیے قریب قریب عالمگیر ڈیزائن تیار کرنا۔

یلیکس: تو اسکول میں لیکچر کی سفارش ابتدائیوں کے لیے کی جا سکتی ہے، اور ہائیڈرا پر ڈبل ڈیٹا سٹرکچر پر لیکچر - ان لوگوں کے لیے جن کے پاس پہلے سے کچھ تجربہ ہے؟

مائیکل: اگر میں غلط ہوں تو مجھے درست کریں، لیکن Hydra کے سامعین کافی متنوع ہوں گے، بشمول جاوا کے بہت سے ماہرین، اور عام طور پر وہ لوگ جو خاص طور پر ملٹی تھریڈڈ پروگرامنگ میں شامل نہیں ہیں۔ 

Виталий: جی ہاں یہ سچ ہے.

یلیکس: کم از کم ہمیں امید ہے۔

مائیکل: اس معاملے میں، مجھے اسی مسئلے کا سامنا کرنا پڑے گا جس کے ساتھ ہم نے یہ انٹرویو شروع کیا تھا: ایک رپورٹ کو تکنیکی تفصیلات سے بھرپور اور تمام سامعین کے لیے قابل رسائی کیسے بنایا جائے۔

Виталий: کیا آپ اسی طرح رپورٹ دیں گے جس طرح آپ لیکچر دیتے ہیں؟ یعنی سامعین سے بات کریں اور حالات کے مطابق ڈھال لیں؟

مائیکل: مجھے ڈر ہے کہ یہ اس طرح کام نہیں کرے گا، کیونکہ رپورٹ میں سلائیڈز ہوں گی۔ جب سننے والے ابتدائی طور پر مختلف زبانیں بولتے ہیں تو سلائیڈز اہم ہوتی ہیں۔ بہت سے لوگوں کو مجھے انگریزی میں سمجھنا مشکل ہو گا، خاص کر اگر میں بہت جلدی بولتا ہوں۔ میں نے ان عنوانات کا انتخاب کیا کیونکہ پیٹر کزنیتسوف مجھ سے SPTDC سکول میں لاک فری ڈیٹا سٹرکچر کے بارے میں بات کرنے کو کہا۔ اور پھر مجھے جاوا یوزر گروپ کانفرنس کے لیے ایک رپورٹ درکار تھی، اور میں ایسی چیز کا انتخاب کرنا چاہتا تھا جو خاص طور پر جاوا پروگرامرز کے لیے دلچسپی کا باعث ہو۔ سب سے آسان طریقہ یہ تھا کہ جاوا لائبریری میں ان چیزوں کے بارے میں بات کی جائے جن میں کسی نہ کسی طریقے سے میرا ہاتھ تھا۔ 

یلیکس: ہم فرض کرتے ہیں کہ ہائیڈرا پر سامعین پہلے سے ہی لاک فری پروگرامنگ کے بارے میں کچھ جانتے ہیں اور شاید اس شعبے میں کچھ تجربہ رکھتے ہیں۔ لیکن یہ محض ایک مفروضہ ہے، کانفرنس میں ہی صورتحال واضح ہو جائے گی۔ بہرحال، آپ کے وقت کا شکریہ۔ مجھے یقین ہے کہ یہ انٹرویو ہمارے قارئین کے لیے بہت دلچسپ ہوگا۔ بہت شکریہ!

Виталий: شکریہ۔ 

مائیکل: مجھے آپ سے سینٹ پیٹرزبرگ میں مل کر خوشی ہوگی۔ 

یلیکس: ہمارا بھی ایک خوبصورت شہر ہے۔ کیا تم کبھی یہاں آئے ہو؟ آئی ہو؟

مائیکل: نہیں، میں کبھی بھی روس نہیں گیا۔ لیکن سینٹ پیٹرزبرگ ہمیشہ ان جگہوں کی فہرست میں شامل رہا ہے جہاں میں ابھی تک نہیں گیا تھا، لیکن جہاں میں واقعی جانا چاہتا ہوں، اس لیے میں دعوت پر بہت خوش تھا۔ 

یلیکس: ویسے، ہم مقررین کے لیے گھومنے پھرنے کا پروگرام رکھیں گے۔ انٹرویو کے لیے آپ کا بہت بہت شکریہ، اور آپ کا دن اچھا گزرے!

آپ ہائیڈرا 2019 کانفرنس میں مائیکل کے ساتھ اپنی گفتگو جاری رکھ سکتے ہیں، جو 11-12 جولائی 2019 کو سینٹ پیٹرزبرگ میں منعقد ہوگی۔ وہ رپورٹ لے کر آئے گا۔ "دوہری ڈیٹا ڈھانچے". ٹکٹ خریدے جا سکتے ہیں۔ سرکاری ویب سائٹ پر.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں