"النتائج التجريبية للنشر فقط ، والدوافع الحقيقية للعمل جمالية." مقابلة رائعة مع مايكل سكوت

"النتائج التجريبية للنشر فقط ، والدوافع الحقيقية للعمل جمالية." مقابلة رائعة مع مايكل سكوت مايكل سكوت - لمدة 34 عاما كأستاذ لعلوم الكمبيوتر في جامعة روتشستر، وفي منزله جامعة ويسكونسن ماديسون كان عميدًا لمدة خمس سنوات. يقوم بالبحث وتعليم الطلاب حول البرمجة المتوازية والموزعة وتصميم اللغة.

العالم يعرف مايكل من الكتاب المدرسي "براغماتية لغة البرمجة"، ماذا عن العمل "خوارزميات التزامن القابل للتطوير على المعالجات المتعددة للذاكرة المشتركة" حصل على جائزة Dijkstra كواحدة من أشهر الجوائز في مجال الحوسبة الموزعة. ربما تعرفه أيضًا باعتباره مؤلف تلك الخوارزمية ذاتها مايكل سكوت.

بالتعاون مع دوج لي، قام بتطوير الخوارزميات غير المحظورة وقوائم الانتظار المتزامنة التي تعمل على تشغيل مكتبات Java. تطبيق "هياكل البيانات المزدوجة" في JavaSE 6 تم تحسين الأداء بمقدار 10 مرات ThreadPoolExecutor.

المحتويات:

  • مهنة مبكرة، جامعة روتشستر. مشروع شارلوت، لغة الوشق؛
  • واجهة IEEE متماسكة قابلة للتطوير، قفل MCS؛
  • البقاء على قيد الحياة في عالم دائم التغير؛
  • هل أصبح الطلاب أغبى؟ الاتجاهات العالمية والتدويل.
  • العمل الفعال مع الطلاب.
  • كيفية مواكبة إعداد الدورات والكتب الجديدة؛
  • الروابط بين قطاع الأعمال والأوساط الأكاديمية؛
  • التنفيذ العملي للأفكار. MCS، MS، CLH، JSR 166، العمل مع دوج لي والمزيد؛
  • ذاكرة المعاملات
  • أبنية جديدة. إن انتصار ذاكرة المعاملات قريب؛
  • ذاكرة غير متطايرة، Optane DIMM، أجهزة فائقة السرعة؛
  • الاتجاه الكبير القادم. هياكل البيانات المزدوجة. العدار.

المقابلة تجري بواسطة :

فيتالي أكسينوف - حاليًا باحث ما بعد الدكتوراه في IST Austria وعضو في قسم تقنيات الكمبيوتر في جامعة ITMO. يجري بحثًا في مجال النظرية والتطبيق لهياكل البيانات التنافسية. قبل العمل في IST، حصل على درجة الدكتوراه من جامعة باريس ديدرو وجامعة ITMO تحت إشراف البروفيسور بيتر كوزنتسوف.

أليكسي فيدوروف - منتج في JUG Ru Group، وهي شركة روسية تنظم مؤتمرات للمطورين. شارك أليكسي في التحضير لأكثر من 50 مؤتمرًا، وتتضمن سيرته الذاتية كل شيء بدءًا من منصب مهندس التطوير في Oracle (JCK، Java Platform Group) وحتى منصب المطور في Odnoklassniki.

فلاديمير سيتنيكوف - مهندس في Netcracker. عشر سنوات من العمل على أداء وقابلية التوسع لنظام التشغيل NetCracker، وهو برنامج يستخدمه مشغلو الاتصالات لأتمتة عمليات إدارة الشبكة ومعدات الشبكة. مهتم بقضايا أداء Java وOracle Database. مؤلف أكثر من اثني عشر تحسينًا للأداء في برنامج تشغيل PostgreSQL JDBC الرسمي.

مهنة مبكرة، جامعة روتشستر. مشروع شارلوت، لغة الوشق.

أليكسي: في البداية، أردت أن أخبرك أننا جميعًا في روسيا نحب حقًا علوم الكمبيوتر وعلوم البيانات والخوارزميات. انها فاحشة بصراحة. لقد قرأنا كل شيء كتاب من تأليف كورمين وليسرسون وريفست. لذلك، يجب أن يحظى المؤتمر القادم والمدرسة وهذه المقابلة نفسها بشعبية كبيرة. لقد تلقينا العديد من الأسئلة لهذه المقابلة من الطلاب والمبرمجين وأفراد المجتمع، لذلك نحن ممتنون جدًا لهذه الفرصة. هل تحظى علوم الكمبيوتر بنفس الحب في الولايات المتحدة؟

مايكل: إن مجالنا متنوع للغاية، وله اتجاهات عديدة، ويؤثر على المجتمع بعدة طرق مختلفة بحيث يصعب علي أن أعطيك إجابة محددة. لكن الحقيقة هي أنها أحدثت تغييرات هائلة في الأعمال والصناعة والفن والمجتمع بشكل عام على مدى الثلاثين عامًا الماضية.

Виталий: لنبدأ بشيء بعيد. يوجد في العديد من الجامعات ما يشبه التخصص في مجال معين. بالنسبة لجامعة كارنيجي ميلون، هذا هو الحوسبة المتوازية، أما بالنسبة لمعهد ماساتشوستس للتكنولوجيا فهو التشفير والروبوتات والترابط المتعدد. هل يوجد مثل هذا التخصص في جامعة روتشستر؟

مايكل: لأكون صادقًا، أود أن أقول إن جامعة كارنيجي ميلون ومعهد ماساتشوستس للتكنولوجيا متخصصان في جميع المجالات. لقد أولى قسمنا دائمًا أكبر قدر من الاهتمام للذكاء الاصطناعي. نصف الأشخاص الذين يعملون لدينا ينخرطون في الذكاء الاصطناعي أو التفاعل بين الإنسان والحاسوب - وهذه الحصة أعلى مما هي عليه في الأقسام الأخرى، وكانت كذلك دائمًا. لكن عندما كنت في الجامعة، لم يكن لدي أي دورات في الذكاء الاصطناعي، ولم أعمل قط في هذا المجال. لذلك قسمي متخصص في مشكلة لا علاقة لي بها. العزاء هو أن المشكلة الثانية الأكثر أهمية لقسمنا هي البرمجة المتوازية ومتعددة الخيوط، أي تخصصي.

Виталий: لقد بدأت العمل في علوم الكمبيوتر عندما كان مجال البرمجة متعددة الخيوط في طور الظهور. تظهر قائمة منشوراتك أن أعمالك الأولى تعاملت مع مجموعة واسعة إلى حد ما من القضايا: إدارة الذاكرة في الأنظمة متعددة الخيوط، وأنظمة الملفات الموزعة، وأنظمة التشغيل. لماذا هذا التنوع؟ هل حاولت أن تجد مكانك في مجتمع البحث؟

مايكل: كطالب، شاركت في مشروع شارلوت في جامعة ويسكونسن، حيث تم تطوير أحد أنظمة التشغيل الموزعة الأولى. عملت هناك مع رافائيل فينكل (رافائيل فينكل) ومارفن سليمان (مارفن سليمان). كانت أطروحتي مخصصة لتطوير لغة برامج النظام للأنظمة الموزعة - والآن نسيها الجميع والحمد لله. لقد قمت بإنشاء لغة برمجة Lynx، والتي كانت تهدف إلى تسهيل إنشاء خوادم لنظام تشغيل موزع غير مترابط. وبما أنني كنت في ذلك الوقت منخرطًا بشكل أساسي في أنظمة التشغيل، فقد افترضت أن مسيرتي المهنية ستكون مرتبطة بها بشكل أساسي. لكن روتشستر كانت جامعة صغيرة جدًا، ولهذا السبب، تفاعلت المجموعات المختلفة هناك بشكل وثيق جدًا مع بعضها البعض. لم يكن هناك أكثر من عشرة أشخاص آخرين يعملون في مجال أنظمة التشغيل لأتحدث معهم، لذلك كانت كل اتصالاتي مع أشخاص يعملون في مجالات مختلفة تمامًا. لقد استمتعت بها حقًا، كوني لاعبًا متعدد المهارات يعد ميزة كبيرة بالنسبة لي. إذا تحدثنا على وجه التحديد عن هياكل البيانات متعددة الخيوط وخوارزميات المزامنة، فقد بدأت العمل عليها تمامًا عن طريق الصدفة.

واجهة IEEE متماسكة قابلة للتطوير، قفل MCS.

Виталий: هل يمكن أن تخبرني المزيد عن هذا؟

مايكل: هذه قصة مضحكة لا أتعب من إخبارها للجميع. لقد حدث ذلك في مؤتمر أسبلوس في بوسطن - كان ذلك في أواخر الثمانينات أو أوائل التسعينات. جون ميلور كرومي (جون ميلور كرومي)، أحد خريجي كليتنا. كنت أعرفه، لكننا لم نقم بإجراء بحث مشترك من قبل. ماري فيرنون (ماري فيرنون) من ولاية ويسكونسن تحدث عن نظام متعدد المعالجات كانوا يطورونه في ولاية ويسكونسن: ويسكونسن متعدد المكعبات. كان لدى Multicube آلية مزامنة على مستوى الأجهزة تسمى Q on Sync Bit، وبعد ذلك تمت إعادة تسميتها بـ Q on Lock Bit لأنها بدت مثل جبن Colby، والتي كانت تورية. إذا كنت مهتمًا بآليات تعدد مؤشرات الترابط، فمن المحتمل أنك تعلم أن Colby أصبح في النهاية محرك المزامنة لمعيار IEEE Scalable Coherent Interface. كانت هذه آلية قفل تعمل على إنشاء مؤشرات من ذاكرة تخزين مؤقت إلى أخرى على مستوى الأجهزة بحيث يعرف كل حامل قفل دوره. عندما سمعنا أنا وجون بهذا الأمر، نظرنا إلى بعضنا البعض وقلنا: لماذا نفعل هذا على مستوى الأجهزة؟ ألا يمكن تحقيق نفس الشيء باستخدام المقارنة والمبادلة؟ أخذنا أحد الدفاتر الموجودة في الفصل وكتبنا عليها حظر MCSبينما واصلت مريم تقريرها. وبعد ذلك قمنا بتنفيذها وتجريبها وتبين أن الفكرة ناجحة ونشرنا المقال. في ذلك الوقت، بدا لي هذا الموضوع مجرد إلهاء ممتع، وبعد ذلك خططت للعودة إلى أنظمة التشغيل. ولكن بعد ذلك ظهرت مشكلة أخرى على نفس المنوال، وفي النهاية أصبحت المزامنة والترابط المتعدد وهياكل البيانات هي تخصصي. وكما ترون، كل هذا حدث بالصدفة.

Виталий: لقد كنت على دراية بحظر MCS منذ فترة طويلة، لكن حتى الآن لم أكن أعلم أنه من عملك، ولم أفهم أنه اختصار لأسماء عائلاتكم.

كيفية البقاء على قيد الحياة في عالم دائم التغير؟

أليكسي: لدي سؤال حول موضوع ذي صلة. قبل 30 أو 40 عامًا، كانت هناك حرية أكبر في مختلف التخصصات. إذا كنت ترغب في بدء مهنة في مجال تعدد مؤشرات الترابط أو الأنظمة الموزعة، فنحن نرحب بك، وإذا كنت ترغب في الدخول في أنظمة التشغيل، فلا مشكلة. في كل مجال كان هناك العديد من الأسئلة المفتوحة وعدد قليل من الخبراء. ظهرت الآن تخصصات ضيقة: لا يوجد خبراء فقط في أنظمة التشغيل بشكل عام، بل يوجد متخصصون في الأنظمة الفردية. إنه نفس الشيء مع أنظمة تعدد الخيوط والأنظمة الموزعة. لكن المشكلة هي أن حياتنا ليست إلى ما لا نهاية؛ إذ لا يستطيع كل إنسان أن يخصص سوى بضعة عقود من الزمن للبحث. كيف البقاء على قيد الحياة في هذا العالم الجديد؟

مايكل: نحن لسنا مميزين في هذا الصدد؛ لقد حدث نفس الشيء مرة واحدة في مناطق أخرى. لقد كنت محظوظًا لأنني بدأت العمل في علوم الكمبيوتر عندما كان هذا المجال في سنوات "المراهقة". لقد تم بالفعل وضع بعض الأسس، لكن كل شيء كان لا يزال غير ناضج للغاية. هذه الفرصة لا تأتي في كثير من الأحيان. لقد كانت الهندسة الكهربائية موجودة منذ فترة طويلة جدًا، والفيزياء موجودة منذ فترة أطول، والرياضيات تقريبًا منذ بداية الزمن. لكن هذا لا يعني أنه لم يعد أحد يقوم باكتشافات مثيرة للاهتمام في الرياضيات. لا تزال هناك العديد من المشاكل المفتوحة، ولكن في الوقت نفسه، هناك المزيد مما يجب تعلمه. أنت على حق في الإشارة إلى أن هناك الآن العديد من التخصصات أكثر مما كانت عليه من قبل، ولكن هذا يعني أننا نجد أنفسنا في نفس الوضع مثل معظم مجالات النشاط البشري الأخرى.

أليكسي: أنا مهتم بالجانب العملي للمسألة هنا. لدي خلفية في الرياضيات، وخلال دراستي كنت أحضر مؤتمرات في كثير من الأحيان وعملت في مواضيع علمية مختلفة. اكتشفت أن لا أحد من الجمهور يفهم تقاريري، وبنفس الطريقة، كانت تقارير الآخرين مفهومة لأنفسهم فقط. ليس هذا هو الحال في المواضيع عالية المستوى، ولكن بمجرد أن تبدأ في الخوض في شيء ما، لم يعد بإمكان الجمهور مواكبةك. كيف تتعامل مع هذا؟

مايكل: ليس ناجحا دائما. لقد قمت مؤخرًا بإعداد تقرير تعمقت فيه كثيرًا في التفاصيل الفنية. مع تقدم الحديث، أصبح من الواضح أن معظم الجمهور لم يفهمني، لذلك كان علي أن أتأقلم مع الوضع بسرعة. لم يكن من الممكن تغيير الشرائح، لذلك لم تكن النتيجة جيدة جدًا - لذلك، بشكل عام، أحاول عدم استخدام الشرائح. بشكل عام، نصيحتي هي أن تفكر في جمهورك. أنت بحاجة إلى معرفة من تتحدث إليه، ومستوى معرفته، وما يحتاج إلى سماعه لتقدير عملك.

Виталий: هل يمكن أن تعطينا لمحة عن موضوع هذه المحاضرة؟

مايكل: بصراحة، أفضل عدم التوسع في هذا الموضوع حتى أترك الأشخاص المعنيين مجهولين. النقطة المهمة هي أننا غالبًا ما نتعمق كثيرًا في تعقيدات المشكلة التي نعمل عليها، لذلك يصبح من الصعب علينا أن نشرح في بداية الحديث سبب كون المشكلة مثيرة للاهتمام وأهميتها ومدى ارتباطها بالقضايا التي تهم المجتمع. الجمهور يعرف بالفعل. وفقا لملاحظاتي، يواجه الطلاب صعوبة أكبر في تعلم هذه المهارة. وكانت هذه أيضًا نقطة الضعف في تقريري الأخير. يجب أن يجد التقرير المنظم بشكل صحيح، منذ البداية، اتصالاً مع الجمهور، وأن يشرح لهم ما هي المشكلة بالضبط ومدى ارتباطها بالموضوعات المعروفة له بالفعل. مدى تقنية هذه المقدمة يعتمد على الجمهور. إذا كان متنوعا تماما، فيمكن أن يكون التقرير متعدد المراحل. يجب أن تكون المقدمة في متناول الجميع، وفي النهاية قد لا تتمكن المقالة من مواكبتك، لكن الأشخاص المطلعين نسبيًا على مجالك سيكونون قادرين على فهم ذلك.

هل أصبح الطلاب أغبى؟ الاتجاهات العالمية والتدويل.

أليكسي: لقد كنت تراقب الطلاب لعدة عقود. هل يصبح الطلاب أكثر غباء أو أكثر ذكاءً من عقد إلى عقد أو من سنة إلى أخرى؟ في روسيا، يشكو الأساتذة باستمرار من أن الطلاب يصبحون أكثر غباءً كل عام، وليس من الواضح حقًا ما يجب فعله حيال ذلك.

مايكل: يمكنك حقًا سماع الكثير من السلبية منا نحن كبار السن. لا شعوريًا، لدينا ميل إلى توقع أن يستوعب الطلاب كل الثلاثين عامًا من الخبرة التي لدينا بالفعل. إذا كان لدي فهم أعمق مما كنت عليه في عام 30، فلماذا لا يمتلكه الطلاب؟ ربما لأنهم في العشرين من عمرهم، ما رأيك؟ أعتقد أن أهم التغييرات في العقود الأخيرة كانت في التركيبة السكانية: لدينا الآن عدد أكبر بكثير من الطلاب الدوليين، باستثناء الكنديين. كان هناك الكثير من الكنديين لأننا قريبون جدًا من الحدود الكندية ويمكن للطلاب من هناك العودة إلى وطنهم في عطلات نهاية الأسبوع. ولكن يوجد الآن العديد من الجامعات الجيدة في كندا، ويفضل الكنديون الدراسة هنا؛ وعدد أقل بكثير منهم يأتون إلى الولايات المتحدة.

أليكسي: هل تعتقدين أن هذا اتجاه محلي أم عالمي؟

مايكل: لا أتذكر بالضبط من، لكن أحدهم قال إن العالم مسطح. لقد أصبح مجالنا أكثر دولية. مؤتمرات ACM في السابق كانت تقام داخل الولايات المتحدة حصرا، ثم تقرر إقامتها مرة كل 4 سنوات في دول أخرى، والآن تقام في جميع أنحاء العالم. أثرت هذه التغييرات بشكل أكبر IEEE، لأنها كانت دائمًا منظمة دولية أكثر من ACM. وهناك رؤساء برامج من الصين والهند وروسيا وألمانيا والعديد من البلدان الأخرى، لأن هناك الكثير مما يحدث في كل مكان الآن.

أليكسي: ولكن ربما هناك بعض الجوانب السلبية لهذا التدويل؟

مايكل: أود أن أقول إن جميع الجوانب السلبية لا تتعلق بالتكنولوجيا، بل بالسياسة. ذات يوم، كانت المشكلة الرئيسية هي حقيقة أن الولايات المتحدة كانت تسرق أذكى الأشخاص وأكثرهم موهبة من بلدان في جميع أنحاء العالم. والمشكلة الرئيسية الآن هي الألعاب السياسية بين الدول المختلفة حول التأشيرات والهجرة.

أليكسي: أي الموانع وأشياء من هذا القبيل. انها واضحة.

فلاديمير: أنا شخصياً مهتم بالأسلوب الذي تتبعه عند تدريس موضوع جديد للطلاب. هناك خيارات مختلفة: يمكنك أولاً أن تحاول إلهامهم لتجربة شيء جديد، أو يمكنك إيلاء المزيد من الاهتمام لتفاصيل كيفية عمل تقنية معينة. ماذا تفضل؟

العمل الفعال مع الطلاب

أليكسي: وكيف تجد التوازن اللعين بين الأول والثاني؟

مايكل: المشكلة هي أن الفصول الدراسية لا تسير دائمًا بالطريقة التي أريدها. عادةً ما أعطي الطلاب مواد القراءة مسبقًا حتى يتعمقوا فيها، ويفهموها بأفضل ما لديهم من قدرات، وصياغة أسئلة حول تلك الأجزاء التي لم يتمكنوا من فهمها. وبعد ذلك، يمكنك في الفصل التركيز على أصعب اللحظات واستكشافها معًا. هذه هي الطريقة التي أحب بها تدريس الفصول أكثر من غيرها. ولكن بالنظر إلى العبء الذي يقع على كاهل الطلاب الآن، لا أستطيع دائمًا التأكد من أنهم يستعدون مسبقًا. ونتيجة لذلك، سيتعين عليك تخصيص وقت لإعادة سرد المواد بشكل عام أكثر مما تريد. وعلى الرغم من ذلك، أحاول أن أبقي فصولنا تفاعلية. بخلاف ذلك، سيكون من الأسهل تسجيل مقطع فيديو مرة واحدة ليتمكن الطلاب من مشاهدته في المنزل. الهدف من الفصول الحية هو التفاعل البشري. في الفصل، أفضل استخدام الطباشير والسبورة بدلاً من الشرائح، إلا في حالات معينة عندما يكون الرسم التخطيطي معقدًا للغاية بحيث لا يمكن رسمه على السبورة. وبفضل هذا، لن أضطر إلى الالتزام بخطة درس صارمة. نظرًا لعدم وجود ترتيب صارم لتقديم المادة، فإن هذا يسمح لي بتخصيصها للجمهور اعتمادًا على الأسئلة التي أتلقاها. بشكل عام، أحاول أن أجعل الفصول الدراسية تفاعلية قدر الإمكان، بحيث تعتمد المادة التي أقدمها على الأسئلة المطروحة علي.

فلاديمير: إنه لشيء رائع. من خلال تجربتي، من الصعب جدًا إقناع المستمعين بطرح الأسئلة. حتى لو طلبت مسبقًا طرح أي أسئلة، مهما كانت غبية أو ذكية، فإنهم يظلون صامتين. كيف تتعامل مع هذا؟

مايكل: سوف تضحك، ولكن إذا وقفت في صمت لفترة كافية، عاجلاً أم آجلاً سوف يشعر الجميع بعدم الارتياح وسيطرح شخص ما سؤالاً. أو يمكنك طرح سؤال فني بسيط مع الإجابة بنعم أو لا لتحديد ما إذا كان الأشخاص يفهمون ما قيل للتو. على سبيل المثال، هل يوجد سباق بيانات في المثال أعلاه؟ من يعتقد ذلك؟ من لا يعتقد؟ من منا لا يفهم شيئًا على الإطلاق، لأنه في المجمل ارتفع نصف الأيدي فقط؟

Виталий: وإذا أجبت بشكل خاطئ، سيتم طردك من الفصل :)

مايكل: إذا لم تجب على أي شيء، فعليك أن تسأل سؤالاً. أحتاج إلى فهم ما يحتاج الطالب إلى معرفته بالضبط للإجابة على السؤال الذي طرحته للتو. أحتاجهم لمساعدتي في مساعدتهم. وأنا على استعداد للتكيف معهم حتى يفهموا المشكلة. ولكن إذا كنت لا أعرف ما يدور في رؤوسهم، لا أستطيع أن أفعل ذلك. وإذا لم تمنح الطلاب السلام لفترة طويلة بما فيه الكفاية، أحيانًا في النهاية يطرحون الأسئلة الصحيحة، أي الأسئلة التي تسمح لي برؤية ما يدور في رؤوس الطلاب بالضبط. 

أليكسي: هل تؤدي هذه الأسئلة أحيانًا إلى أفكار لم تفكر فيها من قبل؟ هل هم غير متوقعين؟ هل تسمح لك بالنظر إلى المشكلة في ضوء جديد؟

مايكل: هناك أسئلة تفتح طريقة جديدة لتقديم المواد. غالبًا ما تكون هناك أسئلة تؤدي إلى مشاكل مثيرة للاهتمام لم أخطط للحديث عنها. كثيرًا ما يخبرني الطلاب أنني أميل إلى الخروج عن الموضوع عندما يحدث هذا. ووفقًا لهم، غالبًا ما يكون هذا هو الجزء الأكثر إثارة للاهتمام في الدرس. نادرًا جدًا، فقط عدة مرات، طرح الطلاب أسئلة أدت إلى اتجاه جديد في البحث وتطورت إلى مقال. ويحدث هذا في كثير من الأحيان في المحادثات مع الطلاب وليس أثناء الفصول الدراسية، ولكنه يحدث أحيانًا أثناء الفصول الدراسية. 

أليكسي: إذن طرح عليك الطلاب أسئلة كان من الممكن على أساسها نشر مقال؟

مايكل: نعم. 

Виталий: كم مرة تجري هذه المحادثات مع الطلاب؟ متى يريدون تعلم أكثر مما تم تناوله خلال الدرس؟

مايكل: مع طلابي الخريجين - طوال الوقت. لدي حوالي 5 أو 6 منهم، ونناقش معهم شيئًا ما طوال الوقت. والمحادثات من هذا النوع مع الطلاب الذين يحضرون دروسي ببساطة ليست شائعة جدًا. على الرغم من أنني أتمنى أن يحدث هذا في كثير من الأحيان. أظن أنهم ببساطة يخشون الحضور إلى الكلية خلال ساعات العمل. في كل فصل دراسي، يتمكن بعض الطلاب من التغلب على هذا الحاجز النفسي، ومن الممتع دائمًا التحدث معهم بعد الفصل الدراسي. صحيح، إذا كان جميع الطلاب شجعانًا، فلن يكون لدي ما يكفي من الوقت. لذلك ربما كل شيء يعمل كما ينبغي. 

Виталий: كيف تمكنت من إيجاد الوقت للتواصل مع الطلاب؟ بقدر ما أعرف، لدى المعلمين في الولايات المتحدة الأمريكية الكثير من العمل - التقدم بطلب للحصول على المنح وما شابه ذلك. 

مايكل: بصراحة، العمل مع الطلاب هو الجانب الذي أستمتع به أكثر من عملي. لذلك لدي الدافع الكافي لذلك. معظم الوقت الذي أقضيه في مكتبي أقضيه في الاجتماعات بجميع أنواعها. إنه الصيف الآن، لذا فإن جدول أعمالي أقل ازدحامًا، ولكن خلال العام الدراسي، كل يوم من الساعة 9 إلى 17، أجهز كل شيء. الأعمال البحثية والمراجعات والمنح - لكل هذا هناك أمسيات وعطلات نهاية الأسبوع فقط. 

كيفية مواكبة إعداد الدورات والكتب الجديدة.

أليكسي: هل تستمر حاليًا في تدريس أي مقررات كنت تقوم بتدريسها منذ فترة طويلة؟ شيء مثل مقدمة لعلوم الكمبيوتر.

مايكل: أول ما يتبادر إلى ذهنك هنا هو دورة في لغات البرمجة. 

أليكسي: ما مدى اختلاف نسخة اليوم من هذه الدورة عما كانت عليه قبل 10 أو 20 أو 30 عامًا؟ وربما ما هو أكثر إثارة للاهتمام هنا ليس تفاصيل دورة معينة، ولكن الاتجاهات العامة.

مايكل: الدورة التدريبية الخاصة بي في لغات البرمجة كانت غير عادية إلى حد ما في الوقت الذي قمت بإنشائها. بدأت قراءته في أواخر الثمانينات، بدلاً من زميلي دوج بالدوين (دوغ بالدوين). كان موضوع الدورة مرتبطًا بشكل عرضي بتخصصي، ولكن عندما غادر كنت أفضل مرشح لتدريس الدورة. لم يعجبني أي من الكتب المدرسية الموجودة في ذلك الوقت، لذلك انتهى بي الأمر بتأليف الكتاب المدرسي لهذه الدورة بنفسي. (ملاحظة المحرر: نحن نتحدث عن الكتاب "براغماتية لغة البرمجة") ويستخدم الآن في أكثر من 200 جامعة حول العالم. نهجي غير عادي لأنه يخلط عمدا بين مشاكل تصميم اللغة وتنفيذها، ويولي اهتماما كبيرا للتفاعل بين هذه الجوانب في جميع المجالات الممكنة. بقي النهج الأساسي دون تغيير، كما هو الحال مع العديد من المفاهيم الأساسية: التجريدات، ومساحات الأسماء، والنمطية، والأنواع. لكن مجموعة اللغات التي تظهر بها هذه المفاهيم تغيرت بالكامل. عندما تم إنشاء الدورة لأول مرة، كانت هناك العديد من الأمثلة في لغة باسكال، ولكن اليوم لم يسمع العديد من طلابي حتى عن هذه اللغة. لكنهم يعرفون Swift وGo وRust، لذا يجب أن أتحدث عن اللغات المستخدمة اليوم. بالإضافة إلى ذلك، أصبح الطلاب الآن على دراية جيدة بلغات البرمجة النصية، ولكن عندما بدأت تدريس هذه الدورة، كان الأمر كله يتعلق باللغات المجمعة. نحتاج الآن إلى الكثير من المواد حول Python وRuby وحتى Perl، لأن هذا هو ما تتم كتابة الكود فيه هذه الأيام، وهناك الكثير من الأشياء المثيرة للاهتمام التي تحدث في هذه اللغات، بما في ذلك مجال تصميم اللغة. 

Виталий: إذًا سيكون سؤالي التالي مرتبطًا بالسؤال السابق. كيفية الاستمرار في هذا المجال؟ أظن أن تحديث دورة مثل هذه يتطلب الكثير من العمل - فأنت بحاجة إلى فهم لغات جديدة وفهم الأفكار الرئيسية. كيف تفعل هذا؟

مايكل: لا أستطيع أن أتباهى بأنني أنجح دائمًا بنسبة 100%. لكن في أغلب الأحيان أفعل ما يفعله الآخرون - قراءة الإنترنت. إذا كنت أرغب في فهم Rust، فأنا أبحث عنه في Google، ثم انتقل إلى صفحة Mozilla واقرأ الدليل المنشور هناك. وهذا جزء من الأشياء التي تحدث في التطوير التجاري. إذا تحدثنا عن العلوم، فأنت بحاجة إلى متابعة التقارير في المؤتمرات الرئيسية. 

الربط بين قطاع الأعمال والأوساط الأكاديمية

Виталий: لنتحدث عن العلاقة بين الأعمال والبحث العلمي. في قائمة أعمالك، وجدت عدة مقالات حول تماسك ذاكرة التخزين المؤقت. هل أفهم أن خوارزميات اتساق ذاكرة التخزين المؤقت كانت غير مستقرة في وقت نشرها؟ أو أنها ليست منتشرة بدرجة كافية. ما مدى انتشار أفكارك في الممارسة العملية؟

مايكل: لست متأكدًا تمامًا من المنشورات التي تتحدث عنها. لقد قمت بالكثير من العمل مع طلابي بيل بولوسكي (ويليام بولوسكي) و ليونيداس كونتوتاناسيس (ليونيداس كونتوثاناسيس) في أوائل التسعينيات حول إدارة الذاكرة لأجهزة نيومان. في ذلك الوقت، لم يكن لدى الشركة بعد فهم لكيفية إنشاء نظام متعدد المعالجات بشكل صحيح: هل يستحق إنشاء دعم للوصول إلى الذاكرة البعيدة على مستوى الأجهزة، هل يستحق توزيع الذاكرة، هل من الممكن تحميل ذاكرة التخزين المؤقت من الذاكرة البعيدة أم أنه من الضروري نقل الصفحات في نظام التشغيل؟ عمل كل من بيل وليونيداس في هذا المجال واستكشفا الأساليب دون تحميل ذاكرة التخزين المؤقت عن بعد. لم يكن هذا مرتبطًا بشكل مباشر بتماسك ذاكرة التخزين المؤقت، ولكنه كان لا يزال يعمل على إدارة ذاكرة NUMA، وبالتالي نشأت الأساليب الحديثة لوضع الصفحة في أنظمة التشغيل الحديثة من هذا. بشكل عام، قام بيل وليونيداس بعمل مهم، على الرغم من أنهما ليسا الأكثر تأثيرًا في هذا المجال - فقد كان هناك العديد من الأشخاص الآخرين الذين يعملون على نفس الشيء في ذلك الوقت. عملت لاحقًا على موضوع يتعلق بتماسك ذاكرة التخزين المؤقت في سياق ذاكرة معاملات الأجهزة. انتهى الأمر بالمجموعة التي عملت معها على هذه المشكلة بالحصول على العديد من براءات الاختراع. هناك بعض الأفكار المثيرة للاهتمام خلفها، لكنني لا أعتقد أنه سيتم تنفيذها عمليًا في نهاية المطاف. بطريقة أو بأخرى، من الصعب بالنسبة لي أن أحكم على ربحيتها. 

أليكسي: في هذا الصدد، هناك سؤال شخصي أكثر: ما مدى أهمية وضع أفكارك موضع التنفيذ بالنسبة لك؟ أو لا تفكر في ذلك؟

مايكل: أحب طرح هذا السؤال في المقابلات مع الأشخاص الآخرين أو المتقدمين أو المرشحين الراغبين في الانضمام إلى هيئة التدريس. لا أعتقد أن هناك إجابة صحيحة لهذا السؤال. الأشخاص الذين يقومون بأشياء رائعة يمكن أن يكون لديهم دوافع مختلفة تمامًا. إنني انجذب إلى المشكلات لأنني شخصيا أجدها مثيرة للاهتمام، وليس بسبب فوائدها العملية. ولكن من ناحية أخرى، عندما لا يزال هناك شيء مثير للاهتمام يجد التطبيق، فأنا أحب ذلك حقًا. لذلك ليس الأمر سهلاً هنا. لكن في بداية عملي مازلت مدفوعًا ليس بفكرة الاستخدام النهائي في العالم، بل بتناغم الفكرة والرغبة في استكشافها ورؤية ما سيأتي منها. إذا كان في النهاية يعطي نتائج عملية، عظيم. 

أليكسي: بسبب تعليمك وخبرتك، أنت أكثر قدرة من معظم الناس على الحكم على قيمة أفكار الآخرين. يمكنك مقارنتها وتحديد أي منها يعمل بشكل أفضل. أنا متأكد من أن لديك رأيًا حول الأشياء التي يتم استخدامها عمليًا حاليًا من قبل الشركات المصنعة الكبرى مثل Intel. من وجهة نظرك، ما مدى صحة المسار الذي تسلكه هذه الشركات؟

مايكل: الممارسة تدور دائمًا حول ما يمكن أن يكون ناجحًا تجاريًا، أي تحقيق الربح، ومن الأفضل أن تسأل شخصًا آخر عن ذلك. ينتج عملي في الغالب عن المنشورات، وفي مجال أنظمة التشغيل يتم تقييمها بناءً على مؤشرات الأداء: السرعة، واستهلاك الطاقة، وحجم الكود. لكن بدا لي دائمًا أن هذه النتائج التجريبية تضاف إلى المقالات فقط حتى يمكن نشرها، وتكون دوافع الناس الحقيقية للعمل جمالية. يقوم الباحثون بتقييم الحلول من منظور فني، ويهتمون بمدى روعة الأفكار، ويحاولون إنشاء شيء أفضل من الأساليب الحالية. الباحثون مدفوعون بدوافع شخصية وذاتية وجمالية. لكن لا يمكنك الكتابة عن هذا في المقال نفسه؛ فهذه الأشياء ليست حججًا للجنة البرنامج. ولحسن الحظ، غالبًا ما تكون الحلول الأنيقة سريعة ورخيصة أيضًا. لقد ناقشت أنا وعشرات من زملائي هذا الموضوع منذ حوالي 15 عامًا وانتهى بي الأمر بكتابة مقال حول هذا الموضوع. أعتقد أنه لا يزال بإمكانك العثور عليه الآن، إنه يسمى "كيفية تقييم بحوث النظم" أو شيء من هذا القبيل، لديها أكثر من عشرة مؤلفين. هذه هي المقالة الوحيدة التي أنا كاتبها ساشا فيدوروفا، فإذا قمت بالبحث عن اسمها في قائمة منشوراتي، ستجد ما تحتاجه. يتحدث عن تقييم أبحاث النظم ومدى أهمية الأناقة. 

أليكسي: إذًا هناك فرق بين معيار ما يعتبر جيدًا في العلم وفي الأعمال. يقوم العلم بتقييم الأداء واستهلاك الطاقة وTDP وسهولة التنفيذ وغير ذلك الكثير. هل لديك الفرصة لإجراء هذا النوع من الأبحاث في الجامعة؟ هل لديك مختبر بآلات مختلفة وبُنى مختلفة يمكنك إجراء التجارب فيها؟

مايكل: نعم، قسمنا لديه الكثير من الآلات المختلفة المثيرة للاهتمام. غالبًا ما تكون صغيرة الحجم، ولدينا مجموعة صغيرة والعديد من الأنظمة متعددة المعالجات ذات مسرعات مختلفة. بالإضافة إلى ذلك، يحتوي الحرم الجامعي على مركز حوسبة ضخم يخدم العلماء من عشرات التخصصات المختلفة. يحتوي على حوالي ألف عقدة وعشرين ألف نواة، كلها على نظام Linux. إذا دعت الحاجة، يمكنك دائمًا شراء بعض خدمات AWS. لذلك ليس لدينا أي قيود كبيرة على الأجهزة. 

أليكسي: كيف كان الحال قبل ثلاثين سنة؟ هل كانت هناك مشاكل حينها؟

مايكل: كان الأمر مختلفًا بعض الشيء حينها. في منتصف وأواخر الثمانينات، كان العلم يعاني من نقص في الموارد الحاسوبية. ولعلاج هذا الوضع، قامت المؤسسة الوطنية للعلوم (المؤسسة الوطنية للعلوم) إنشاء برنامج للبحوث التجريبية المنسقة (البحوث التجريبية المنسقة، CER). كانت مهمة البرنامج هي توفير البنية التحتية الحاسوبية لأقسام علوم الكمبيوتر، وقد حقق تغييرًا كبيرًا. وبفضل الأموال التي قدمتها، اشترينا في جامعة روتشستر BBN Butterfly ذات 1984 عقدة في عام 128، وكان ذلك قبل عام من وصولي إلى هناك. في ذلك الوقت كان أكبر نظام متعدد المعالجات مع ذاكرة مشتركة في العالم. كان يحتوي على 128 معالجًا، كل منها على لوحة أم منفصلة، ​​ويشغل أربعة رفوف. كان لكل معالج ميغابايت من الذاكرة، وكان 128 ميغابايت من ذاكرة الوصول العشوائي كمية لا يمكن تصورها في ذلك الوقت. قمنا بتطبيق قفل MCS على هذا الجهاز لأول مرة. 

أليكسي: إذن، إذا فهمت بشكل صحيح، فهل تم حل مشكلة الأجهزة في الوقت الحالي؟ 

مايكل: بشكل عام، نعم. هناك بعض المحاذير: أولاً، إذا كنت تقوم بهندسة الكمبيوتر على مستوى الرقائق، فمن الصعب القيام بذلك في بيئة أكاديمية لأن هناك أدوات أفضل بكثير للقيام بذلك في مجال الأعمال. إذا كنت بحاجة إلى أي شيء أصغر من 10 نانومتر، فسيتعين عليك طلبه من شخص آخر. في هذا المجال، من الأسهل كثيرًا أن تكون باحثًا في شركة Intel. إذا كنت تعمل على الاتصالات الضوئية على الرقائق أو على ذاكرة الحالة الصلبة، فستجد تقنيات في مجال الأعمال لم تدخل في نطاق العلوم بعد، لذا يتعين عليك إنشاء تحالفات. على سبيل المثال، ستيفن سوانسون (ستيفن سوانسون) مخلوق مثل هذه الشراكة لتقنيات الذاكرة الجديدة. هذا النموذج لا يعمل دائما، ولكن في بعض الحالات يمكن أن يكون ناجحا تماما. بالإضافة إلى ذلك، فإن تطوير أقوى أنظمة الحوسبة في العلوم هو أمر أكثر صعوبة. تركز أكبر مشاريع الكمبيوتر العملاق حاليًا في الولايات المتحدة واليابان والصين على الأعمال التجارية. 

التنفيذ العملي للأفكار. MCS، MS، CLH، JSR 166، العمل مع دوج لي وأكثر من ذلك.

Виталий: لقد تحدثت بالفعل عن كيفية بدء العمل على خوارزميات المزامنة. لديك مقالتان مشهورتان جدًا عنهما حظر MCS и قائمة انتظار مايكل سكوت (MS)، والتي تم تنفيذها إلى حد ما في جافا. (ملاحظة المحرر: يمكن الاطلاع على جميع المنشورات رابط). هناك تم تنفيذ هذا الحجب مع بعض التغييرات، وتم تنفيذه قفل CLH، وتم تنفيذ قائمة الانتظار على النحو المنشود. ولكن مرت سنوات عديدة بين نشر مقالاتك وتطبيقها العملي. 

أليكسي: يبدو حوالي 10 سنوات في حالة قائمة الانتظار.

مايكل: قبل ظهور هذه الميزات في مكتبة جافا القياسية؟

Виталий: نعم. ماذا فعلت لتحقيق هذا؟ أم أنهم لم يفعلوا شيئا؟

مايكل: أستطيع أن أخبرك كيف وصل MS Queue إلى Java 5. قبل بضع سنوات من ظهوره، عملت مع مجموعة مارك مويرز في شركة Sun Microsystems في مختبرهم بالقرب من بوسطن. قام بتنظيم ورشة عمل للأشخاص الذين يعرفهم والذين كانوا يعملون على مشاكل مثيرة للاهتمام في تعدد العمليات لأنه أراد العثور على موضوعات يمكنه بيعها لشركتهم. هذا هو المكان الذي التقيت فيه لأول مرة دوج ليا. كنا أنا ودوغ وحوالي 25 شخصًا آخر من صن نناقش معًا عرض دوج حول شبيبة 166، والذي أصبح فيما بعد java.util.concurrent. على طول الطريق، قال دوغ إنه يرغب في استخدام قائمة انتظار MS، ولكن لهذا كان بحاجة إلى عداد لعدد العناصر في قائمة الانتظار للواجهة. أي أنه كان ينبغي أن يتم ذلك بطريقة منفصلة وذرية ودقيقة وسريعة. اقترحت ببساطة إضافة أرقام تسلسلية إلى العقد، مع أخذ رقم العقدة الأولى والأخيرة وطرح أحدهما من الآخر. خدش دوغ رأسه، وقال "لم لا"، وانتهى به الأمر بفعل ذلك. لقد ناقشنا تنفيذ هذا النهج في المكتبة، لكن دوج قام بمعظم العمل بنفسه. ونتيجة لذلك، تمكن من إنشاء دعم ممتاز لتعدد مؤشرات الترابط في Java. 

أليكسي: لذا، إذا فهمت بشكل صحيح، يجب أن تكون طريقة .size() جزءًا من واجهة قائمة الانتظار القياسية، ويجب أن يكون لها تعقيد خوارزمي قدره O(1)؟

مايكل: نعم، وبالإضافة إلى ذلك يلزم وجود عداد منفصل.

أليكسي: لأنه إذا قمت باستدعاء الأسلوب .size() في Java، فمن المتوقع أن تكون النتيجة متاحة على الفور ولا تعتمد على الحجم الفعلي للمجموعة. حسنا أشكرك.

مايكل: بعد بضع سنوات، كنت أعمل على هياكل بيانات مزدوجة مع تلميذي بيل شيرير - في الواقع، هذا ما سأتحدث عنه تقرير عن هيدرا. جاء إلينا دوغ وقال إنه يمكنه استخدامها في Java Executor Framework. بالتعاون مع بيل، قاموا بإنشاء تطبيقين، ما يسمى بقوائم الانتظار العادلة وغير العادلة. لقد نصحتهم بهذا المشروع، على الرغم من أنني لم أشارك في كتابة الكود الفعلي. ونتيجة لذلك، زادت سرعة المنفذين بشكل ملحوظ. 

فلاديمير: هل واجهت تطبيقات غير صحيحة لخوارزمياتك أو طلبات إضافة ميزات جديدة؟ بشكل عام، يجب أن تتزامن الممارسة مع النظرية، ولكن في كثير من الأحيان تختلف. لنفترض أنك كتبت خوارزمية، وأنها تعمل على الورق، ولكن الأشخاص المشاركين في التنفيذ بدأوا يطلبون منك المزيد من الميزات أو نوع من التغيير والتبديل في الخوارزمية. هل سبق لك أن واجهت مثل هذه المواقف؟

مايكل: المثال الوحيد الذي جاءني فيه شخص ما وسألني "كيفية تنفيذه" كان سؤال دوج، والذي تحدثت عنه بالفعل. ولكن كانت هناك حالات قليلة تم فيها إجراء تغييرات مثيرة للاهتمام لتناسب الاحتياجات العملية. على سبيل المثال، قام فريق K42 في IBM بتحويل قفل MCS وجعله واجهة قياسية لذلك لم تكن هناك حاجة لتمرير عقدة قائمة الانتظار ذهابًا وإيابًا إلى إجراءات الاستحواذ والإصدار. بفضل هذه الواجهة القياسية، بدأت فكرة جميلة من الناحية النظرية في العمل على أرض الواقع. ومن المثير للدهشة أنهم لم ينشروا مقالًا عنها مطلقًا، وعلى الرغم من حصولهم على براءة اختراع، إلا أنهم تخلوا عنها لاحقًا. الفكرة كانت رائعة، وأحاول أن أتحدث عنها كلما أمكن ذلك. 

كانت هناك حالات أخرى قام فيها الأشخاص بإجراء تحسينات على الخوارزميات التي نشرتها. على سبيل المثال، تحتوي قائمة انتظار MS على آلية تثبيت من خطوتين، مما يعني وجود اثنين من CASs على المسار الحرج لقائمة الانتظار. في السيارات القديمة، كانت CAS باهظة الثمن. لقد قامت شركة Intel وغيرها من الشركات المصنعة بتحسينها بشكل جيد مؤخرًا، ولكن ذات مرة كانت هذه تعليمات مكونة من 30 دورة، لذا فإن وجود أكثر من واحدة على المسار الحرج كان أمرًا غير مرغوب فيه. ونتيجة لذلك، تم تطوير قائمة انتظار مختلفة تشبه قائمة انتظار MS، ولكنها تحتوي على عملية ذرية واحدة فقط على المسار الحرج. تم تحقيق ذلك نظرًا لحقيقة أنه خلال فترة زمنية معينة يمكن أن تستغرق العملية وقتًا O(n)، بدلاً من O(1). كان الأمر غير محتمل، لكنه ممكن. حدث هذا بسبب حقيقة أنه في لحظات معينة اجتازت الخوارزمية قائمة الانتظار من البداية إلى الموضع الحالي في قائمة الانتظار هذه. بشكل عام، تبين أن الخوارزمية كانت ناجحة جدًا. وعلى حد علمي، فإنها لا تستخدم على نطاق واسع، ويرجع ذلك جزئيًا إلى أن العمليات الذرية تتطلب موارد أقل بكثير من ذي قبل. لكن الفكرة كانت رائعة. أنا أيضًا أحب عمل Dave Dice من Oracle. كل ما يفعله عملي للغاية ويستخدم الحديد بذكاء شديد. كان له يد في الكثير من خوارزميات المزامنة المدركة لـ NUMA وهياكل البيانات متعددة الخيوط. 

فلاديمير: عندما تكتب خوارزميات أو تقوم بتدريس الطلاب، لا تظهر نتيجة عملك على الفور. يحتاج المجتمع إلى بعض الوقت للتعرف على مقالة جديدة على سبيل المثال. الخوارزمية الجديدة لا تجد التطبيق على الفور. 

مايكل: ليس من الواضح على الفور ما إذا كانت المقالة ستكون ذات أهمية أم لا. أعتقد أنه سيكون من المثير للاهتمام إجراء دراسة للأبحاث التي فازت بجوائز في المؤتمرات. أي انظر إلى المقالات التي اعتبرها الأشخاص في لجان البرنامج في وقت ما الأفضل. عليك أن تحاول أن تحسب من خلال عدد الروابط وتأثيرها على الأعمال مدى تأثير هذه المقالات حقًا خلال 10 أو 20 أو 25 عامًا. وأشك في أنه سيكون هناك علاقة قوية بين الاثنين. لن يكون صفراً، ولكن على الأرجح سيكون أضعف بكثير مما نود. تظل العديد من الأفكار غير مطالب بها لفترة طويلة قبل أن تنتشر على نطاق واسع. على سبيل المثال، لنأخذ ذاكرة المعاملات. لقد مرت أكثر من 10 سنوات من وقت نشر المقال الأصلي إلى الوقت الذي بدأ فيه الناس فعليًا في بناء الآلات باستخدامه. وقبل ظهور هذه الذاكرة في المنتجات التجارية - وكلها 20. لفترة طويلة جدًا لم ينتبه أحد للمقالة، ثم زاد عدد الروابط إليها بشكل حاد. سيكون من الصعب التنبؤ بهذا مقدما. ومن ناحية أخرى، في بعض الأحيان تجد الأفكار التنفيذ على الفور. قبل بضع سنوات، كتبت ورقة بحثية مع جو إزرائيليفيتز لـ DISC والتي اقترحت تعريفًا رسميًا جديدًا لصلاحية هياكل البيانات المستمرة التي يمكن استخدامها بعد تعطل الكمبيوتر الذي يقوم بتشغيلها. لقد أحببت المقال منذ البداية، لكن تبين أنه أصبح أكثر شعبية مما كنت أتوقع. تم استخدامه من قبل عدة مجموعات مختلفة وأصبح في نهاية المطاف التعريف القياسي لهياكل الثبات. وهو بالطبع جميل.

فلاديمير: هل هناك أي تقنيات تستخدمها للتقييم؟ هل تحاول حتى تقييم مقالاتك وطلابك؟ فيما يتعلق بما إذا كان الشخص الذي علمته يسير في الاتجاه الصحيح.

مايكل: مثل أي شخص آخر، أهتم أكثر بما أفعله في الوقت الحالي. مرة أخرى، مثل أي شخص آخر، أقوم أحيانًا بمراجعة الباحث العلمي من Google لمعرفة ما إذا كان يتم الاستشهاد بأبحاثي السابقة، ولكن هذا بدافع الفضول. في الغالب أنا منغمس في ما يفعله طلابي الآن. عندما يتعلق الأمر بتقييم العمل الحالي، جزء منه هو الاعتبارات الجمالية، ما هو أنيق وما هو ليس كذلك. وعلى المستوى اليومي، تلعب الأسئلة المفتوحة دورًا كبيرًا. على سبيل المثال، يأتيني أحد الطلاب برسم بياني لبعض النتائج، ونحاول أن نفهم من أين جاء بعض السلوك الغريب للرسم البياني. بشكل عام، في عملنا نحاول باستمرار فهم الأشياء التي لم نفهمها بعد. 

ذاكرة المعاملات

Виталий: ربما يمكننا أن نتحدث قليلا عن ذاكرة المعاملات؟

مايكل: أعتقد أنه من المفيد أن أقول القليل على الأقل لأنني بذلت الكثير من الجهد في ذلك. هذا هو الموضوع الذي لدي منشورات أكثر من أي موضوع آخر. لكن في الوقت نفسه، ومن الغريب أنني كنت دائمًا متشككًا جدًا بشأن ذاكرة المعاملات. في رأيي، مقال بقلم هيرليهي وموس (M. Herlihy، J. E. B. Moss) تم نشره قبل وقته. في أوائل التسعينيات، اقترحوا أن ذاكرة المعاملات يمكن أن تساعد المبرمجين الموهوبين في العمل على هياكل بيانات متعددة الخيوط، بحيث يمكن بعد ذلك استخدام هذه الهياكل كمكتبات من قبل المبرمجين العاديين. وهذا يعني أنها ستكون مساعدة لـ Doug Lee في تنفيذ JSR 1990. لكن ذاكرة المعاملات لم يكن المقصود منها تسهيل البرمجة متعددة الخيوط. ولكن هذا هو بالضبط ما بدأ يُنظر إليه في أوائل العقد الأول من القرن الحادي والعشرين، عندما انتشر على نطاق واسع. تم الإعلان عنها كوسيلة لحل مشكلة البرمجة الموازية. لقد بدا هذا النهج دائمًا ميؤوسًا منه بالنسبة لي. لا يمكن لذاكرة المعاملات إلا أن تسهل كتابة هياكل البيانات المتوازية. ويبدو لي أن هذا هو ما حققته. 

حول صعوبة كتابة كود متعدد الخيوط

أليكسي: مثير جدا. يبدو أن هناك حاجزًا معينًا بين المبرمجين العاديين وأولئك الذين يمكنهم كتابة تعليمات برمجية متعددة الخيوط. في العام الماضي، تحدثت عدة مرات مع الأشخاص الذين كانوا ينفذون بعض الأطر الخوارزمية. على سبيل المثال، مع مارتن طومسون، وكذلك مع المبرمجين الذين يعملون في مكتبات متعددة الخيوط. (ملاحظة المحرر: كتب مارتن طومسون هو مطور مشهور جدًا اختلال и AERON. ولديه أيضًا تقرير في مؤتمرنا الجوكر 2015، تسجيل فيديو متاح على موقع يوتيوب. هو نفسه افتتح هذا المؤتمر تسجيل الكلمة الرئيسية أيضا متاح). ويقولون إن التحدي الرئيسي هو جعل الخوارزميات سريعة وسهلة الاستخدام. أي أنهم يحاولون التغلب على هذا الحاجز وجذب أكبر عدد ممكن من الناس إلى هذه المنطقة. ما رأيك في ذلك؟

مايكل: هذه هي المشكلة الرئيسية لتعدد العمليات: كيفية تحقيق أداء عالٍ دون زيادة تعقيد النظام. 

أليكسي: لأنه عندما يحاولون تجنب التعقيد، تصبح الخوارزمية أقل عالمية.

مايكل: المفتاح هنا هو التجريدات المصممة بشكل صحيح. يبدو لي أن هذا هو الشيء الرئيسي بشكل عام بالنسبة لأنظمة الكمبيوتر كمجال. يحب بتلر لامبسون استخدام هذا المصطلح، ويطلق علينا اسم "تجار التجريدات". التقنيات البسيطة غير موجودة اليوم. تحتوي المعالجات التي نستخدمها على 10 مليارات ترانزستور، والبساطة غير واردة. وفي الوقت نفسه، يعد ISA أبسط بكثير من المعالج، حيث عملنا لفترة طويلة جدًا على تزويده بأداء عالٍ وواجهة بسيطة نسبيًا. ولكن ليس كل شيء سلسًا معها أيضًا. نفس المشكلة هي مع المسرعات التي تظهر الآن في السوق. تطرح الأسئلة - كيفية إنشاء الواجهة الصحيحة لوحدة معالجة الرسومات، أو آلية التشفير، أو الضغط، أو آلية تحويل الترميز، أو آلية الجبر الخطي، أو حتى FPGA الأكثر مرونة. كيفية إنشاء واجهة تجعل الأداة سهلة الاستخدام وتخفي التعقيد؟ لن يتخلص منها، بل سيخفيها عن مبرمج بسيط. 

أليكسي: كما أفهمها، لا يزال لدينا عائق في فهم التجريدات. لنأخذ نموذج الذاكرة، في مرحلتنا من تطور العلوم والتكنولوجيا، وهذا هو أحد التجريدات الرئيسية. وبفضلها ينقسم جميع المبرمجين إلى مجموعتين: الجزء الأكبر هم أولئك الذين لا يفهمونها، والجزء الأصغر هم أولئك الذين يفهمون، أو يعتقدون أنهم يفهمون. 

مايكل: هذا سؤال جيد - هل يفهم أي منا نموذج الذاكرة حقًا؟

Виталий: وخاصة في C++.

مايكل: تحدث إلى هانز بوم في وقت ما. إنه أحد أذكى الأشخاص الذين أعرفهم، وهو خبير رائد في نماذج الذاكرة. سيخبرك على الفور أن هناك الكثير الذي لا يفهمه. لكن إذا رجعنا إلى مسألة التجريدات، ففي رأيي تم التعبير عن الفكرة الأهم في مجال نماذج الذاكرة خلال الثلاثين سنة الماضية في أطروحة ساريتا أدفي. (ملاحظة المحرر: القائمة الكاملة للمنشورات متاحة رابط).

أليكسي: سؤالي هو: هل يأتي هذا الحاجز من طبيعة المفهوم ذاته؟ 

مايكل: لا. توصلت ساريتا إلى نتيجة مفادها أنه باستخدام النهج الصحيح، يمكنك إخفاء كل التعقيدات بنجاح والحصول على أداء عالٍ ومنح المبرمج واجهة برمجة تطبيقات بسيطة. وإذا اتبعت واجهة برمجة التطبيقات هذه، فيمكنك تحقيق الاتساق المتسق. أعتقد أن هذا هو النموذج الصحيح. اكتب التعليمات البرمجية دون سباقات البيانات واحصل على الاتساق المتسلسل. بالطبع، من أجل تقليل احتمالية السباق، هناك حاجة إلى أدوات خاصة، لكن هذا أمر آخر. 

فلاديمير: هل كانت هناك أوقات في حياتك المهنية عندما تحولت المشكلة التي بدت وكأنها قد تم حلها فجأة إلى كارثة، أو تبين أن هذه المشكلة غير قابلة للحل؟ على سبيل المثال، من الناحية النظرية يمكنك تحليل أي رقم أو تحديد ما إذا كان أي رقم أوليًا. ولكن من الناحية العملية قد يكون من الصعب القيام بذلك مع الأجهزة الحالية، فمن الصعب تحليل الأرقام. هل حدث لك شيء مماثل؟

مايكل: لا أتذكر شيئًا كهذا على الفور. كانت هناك أوقات بدا لي فيها أنه لم يتبق شيء للقيام به في منطقة معينة، ولكن بعد ذلك حدث شيء جديد ومثير للاهتمام هناك. على سبيل المثال، اعتقدت أن منطقة الانتظار غير المحدودة قد وصلت بالفعل إلى مرحلة النضج. بعد إجراء عدة تحسينات على قائمة انتظار MNS، لم يحدث أي شيء كثيرًا. ومن ثم اخترع موريسون (آدم موريسون) وأفيك (يهودا أفيك). قائمة انتظار LCRQ. أصبح من الواضح أنه من الممكن وجود قائمة انتظار غير محدودة ومتعددة الخيوط، حيث لم يكن هناك في معظم الأوقات سوى تعليمات الجلب والزيادة على المسار الحرج. وهذا جعل من الممكن تحقيق أداء أفضل من حيث الحجم. لا يعني ذلك أننا لا نعرف أن الجلب والزيادة أمر مفيد للغاية. كتب إريك فرودنثال عن هذا الأمر في عمله على الكمبيوتر الفائق مع آلان جوتليب في أواخر الثمانينيات، لكن الأمر كان يتعلق بقوائم الانتظار المحدودة. تمكن موريسون وأفيك من استخدام ميزة الجلب والزيادة في قائمة انتظار غير محدودة.

أبنية جديدة. هل انتصار ذاكرة المعاملات قريب؟

فلاديمير: هل تبحث عن حلول معمارية جديدة قد تكون مفيدة للخوارزميات؟ 

مايكل: بالطبع، هناك أشياء كثيرة أود أن أرى تنفيذها. 

فلاديمير: أي نوع مثلا؟

مايكل: أولاً وقبل كل شيء، بعض الامتدادات البسيطة لذاكرة المعاملات على مستوى الأجهزة في معالجات Intel وIBM. على وجه الخصوص، أرغب في أن يكون التحميل والتخزين غير المتعلقين بالمعاملات الذي حدث للتو متاحًا على الفور ضمن المعاملات. أنها تؤدي على الفور إلى حلقات في تسلسل ما قبل الحدث، لذلك يمكن أن تكون صعبة. ولكن إذا حافظت على طبقات من التجريد، فهناك الكثير من الأشياء المثيرة للاهتمام التي يمكنك القيام بها خارج المعاملة أثناء حدوثها. لا أعلم مدى صعوبة تنفيذ ذلك، لكنه سيكون مفيدًا جدًا. 

شيء آخر مفيد هو تحميل ذاكرة التخزين المؤقت من الذاكرة البعيدة. أعتقد أن هذا سيتم عاجلاً أم آجلاً. ستسمح هذه التقنية بإنشاء أنظمة ذات ذاكرة منفصلة. سيكون من الممكن الاحتفاظ، على سبيل المثال، بـ 100 تيرابايت من الذاكرة غير المتطايرة في حامل، وسيقرر نظام التشغيل نفسه ديناميكيًا أي أقسام من تلك الذاكرة يجب أن تتوافق مع مساحة العنوان الفعلية للمعالجات. سيكون هذا مفيدًا للغاية للحوسبة السحابية، لأنه سيسمح بتوفير كميات كبيرة من الذاكرة للمهام التي تحتاج إليها. أعتقد أن شخص ما سوف يفعل ذلك.

Виталий: لإنهاء الحديث عن ذاكرة المعاملات، لدي سؤال آخر حول هذا الموضوع. هل ستحل ذاكرة المعاملات في النهاية محل هياكل البيانات القياسية متعددة الخيوط؟

مايكل: لا. المعاملات هي آلية المضاربة. على مستوى البرمجة، هذه أقفال ذرية، لكنها في الداخل مجرد تكهنات. ينجح مثل هذا التنبؤ إذا كانت معظم التخمينات صحيحة. لذلك، تعمل ذاكرة المعاملات بشكل جيد عندما لا تتفاعل سلاسل الرسائل مع بعضها البعض، وتحتاج فقط إلى التأكد من عدم وجود تفاعلات. ولكن إذا بدأت الرسالة بين سلاسل الرسائل، فإن المعاملات تكون قليلة الفائدة. اسمحوا لي أن أشرح أننا نتحدث عن الحالة عندما تكون المعاملات ملتفة حول العملية الذرية بأكملها. لا يزال من الممكن استخدامها بنجاح كمكونات لهياكل البيانات متعددة الخيوط. على سبيل المثال، إذا كنت بحاجة إلى CAS مكون من ثلاث كلمات، وتحتاج إلى ربط ثلاثة أشياء صغيرة متعددة الخيوط في منتصف خوارزمية متعددة الخيوط حقًا تعمل مع عشرين سلسلة رسائل في نفس الوقت. بشكل عام، يمكن أن تكون المعاملات مفيدة، لكنها لن تلغي الحاجة إلى تصميم هياكل بيانات متعددة الخيوط بشكل صحيح. 

ذاكرة غير متطايرة، Optane DIMM، أجهزة فائقة السرعة.

Виталий: آخر ما أود التحدث عنه هو موضوع بحثك الحالي: الذاكرة غير المتطايرة. ماذا يمكن أن نتوقع في هذا المجال في المستقبل القريب؟ ربما تعرف أي تطبيقات فعالة موجودة بالفعل؟ 

مايكل: أنا لست خبيرًا في الأجهزة، أعرف فقط ما أقرأه في الأخبار وما يخبرني به زملائي. لقد سمع الجميع بالفعل أن شركة Intel تبيع أوبتان DIMM، والتي لديها حوالي 3 أضعاف زمن الوصول للقراءة و10 أضعاف زمن الوصول للكتابة من ذاكرة الوصول العشوائي الديناميكية. وستكون متاحة قريبًا بإصدارات كبيرة جدًا. من المضحك أن تعتقد أنه يمكنك الحصول على جهاز كمبيوتر محمول مزود بعدة تيرابايت من ذاكرة الوصول العشوائي القابلة للعنونة بالبايت. من المحتمل أنه في غضون 10 سنوات، سنقرر استخدام هذه التكنولوجيا الجديدة، لأننا نستخدم DRAM - فقط قم بزيادة الحجم. ولكن بفضل استقلال الطاقة، تفتح لنا فرص جديدة تماما. يمكننا تغيير مكدس التخزين بشكل أساسي بحيث لا يكون هناك فصل بين الذاكرة العاملة القابلة للعنونة بالبايت والذاكرة المستمرة المبنية على كتلة. وبالتالي، لن نحتاج إلى إجراء تسلسل لكل ما يلزم نقله من برنامج إلى آخر إلى ملفات مبنية على كتل. ومن هذا يمكننا استخلاص العديد من المبادئ المهمة التي تؤثر على أنظمة التشغيل وبيئات التشغيل ومخازن البيانات الموزعة. هذه المنطقة مثيرة جدًا للعمل فيها. شخصياً، من الصعب بالنسبة لي التنبؤ بما سيؤدي إليه كل هذا، لكن المشاكل هنا مسلية للغاية. قد تكون هناك تغييرات ثورية هنا، وهي تتبع بشكل طبيعي جدًا العمل على تعدد مؤشرات الترابط، نظرًا لأن التعافي من الفشل هو عملية "تعدد مؤشرات الترابط" جنبًا إلى جنب مع التشغيل العادي للنظام. 

الموضوع الرئيسي الثاني الذي أعمل عليه حاليًا هو إدارة الأجهزة فائقة السرعة والوصول الآمن إلى الأجهزة من مساحة المستخدم من خلال التحكم في السياسة النظامية. في السنوات الأخيرة، كان هناك اتجاه لنقل الوصول إلى الجهاز إلى مساحة المستخدم. يتم ذلك لأن مكدس kernel TCP-IP لا يمكنه العمل فوق واجهة الشبكة التي تحتاج إلى حزمة جديدة كل 5 ميكروثانية، فهي ببساطة لن تتمكن من الاستمرار. لذلك، توفر الشركات المصنعة إمكانية الوصول المباشر إلى الأجهزة. ولكن هذا يعني أن نظام التشغيل يفقد السيطرة على العملية ولا يمكنه توفير الوصول المناسب إلى الجهاز للتطبيقات المنافسة. يعتقد فريق البحث لدينا أنه يمكن تجنب هذا القصور. سيكون لدينا مقال عن هذا في USENIX ATC هذا الشهر. يتعلق الأمر بالعمل على الثبات، نظرًا لأن الذاكرة المستمرة طويلة العمر والقابلة للعنونة بالبايت هي، في جوهرها، جهاز مزود بإدخال/إخراج فائق السرعة يحتاج إلى الوصول إليه في مساحة المستخدم. يتيح هذا البحث طرقًا جديدة ممكنة للنوى الصغيرة والنواة الخارجية والمحاولات التقليدية الأخرى لنقل الوظائف بأمان من نواة نظام التشغيل إلى مساحة المستخدم. 

فلاديمير: الذاكرة القابلة للعنونة بالبايت رائعة، ولكن هناك قيود مادية - سرعة الضوء. وهذا يعني أنه سيكون هناك حتمًا تأخير عند التفاعل مع الجهاز. 

مايكل: صح تماما.

فلاديمير: هل ستكون هناك سعة كافية للتعامل مع الأحمال الجديدة؟

مايكل: هذا سؤال ممتاز، ولكن سيكون من الصعب بالنسبة لي الإجابة عليه. لقد كانت فكرة المعالجة في الذاكرة موجودة منذ بعض الوقت، وهي مثيرة للاهتمام للغاية، ولكنها أيضًا معقدة للغاية. لم أعمل في هذا المجال، ولكن سيكون أمرا رائعا لو تم إجراء بعض الاكتشافات هناك. أخشى أنه ليس لدي ما أضيفه. 

فلاديمير: هناك مشكلة واحدة أخرى. سيكون من المستحيل استيعاب كميات جديدة أكبر بكثير من ذاكرة الوصول العشوائي (RAM) في وحدة المعالجة المركزية. لذلك، نظرًا للقيود المادية، يجب عزل ذاكرة الوصول العشوائي هذه. 

مايكل: كل ​​هذا يتوقف على عدد العيوب في إنتاج الدوائر المتكاملة. إذا كان من الممكن إنشاء رقائق أشباه الموصلات بالكامل دون عيوب، فسيكون من الممكن صنع دائرة كهربائية دقيقة كاملة منها. لكننا الآن لا نعرف كيفية صنع دوائر كهربائية صغيرة أكبر من طوابع البريد. 

فلاديمير: لكننا ما زلنا نتحدث عن أحجام ضخمة، حوالي سنتيمترات. وهذا له حتما تأثير على الكمون. 

مايكل: نعم. لا يوجد شيء يمكنك فعله بشأن سرعة الضوء. 

فلاديمير: للأسف. 

الاتجاه الكبير القادم. هياكل البيانات المزدوجة. العدار.

Виталий: بقدر ما أفهم، يمكنك التقاط الاتجاهات الجديدة بسرعة كبيرة. لقد كنت من أوائل الذين عملوا في ذاكرة المعاملات، ومن أوائل من عملوا في الذاكرة غير المتطايرة. ما رأيك سيكون الاتجاه الكبير القادم؟ أو ربما هو سر؟

مايكل: بصراحة، لا أعرف. آمل أن أتمكن من ملاحظة ظهور شيء جديد. لم يحالفني الحظ بما فيه الكفاية لاختراع أي مجال جديد بمفردي، ولكن كان لدي القليل من الحظ وتمكنت من البدء في العمل مبكرًا في مجالات جديدة ابتكرها الآخرون. آمل أن أتمكن من القيام بذلك في المستقبل.

أليكسي: السؤال الأخير في هذه المقابلة سيكون حول أدائك في هيدرا وأنشطتك في المدرسة. إذا فهمت بشكل صحيح، فسيكون التقرير في المدرسة حول الخوارزميات الخالية من الحظر، وفي المؤتمر حول هياكل البيانات المزدوجة. هل يمكنك قول بضع كلمات عن هذه التقارير؟

مايكل: لقد تطرقنا جزئيًا إلى هذه المواضيع معك في هذه المقابلة. يتعلق الأمر بالعمل الذي قمت به مع تلميذي بيل شيرير. لقد كتب أطروحة عنها، وساهم فيها دوج لي أيضًا، وأصبحت في النهاية جزءًا من قوائم الانتظار المتزامنة متعددة الخيوط في مكتبة جافا. لنفترض أن بنية البيانات تتم قراءتها وكتابتها دون حظر، أي أن كل عملية لها عدد محدود من التعليمات على المسار الحرج. إذا حاولت إزالة البيانات من حاوية فارغة، أو حاولت إزالة بعض البيانات غير الموجودة في هذه الحاوية، فسيتم إعلامك على الفور بأنه لا يمكن القيام بذلك. لكن هذا السلوك قد لا يكون مقبولاً إذا كان الخيط يحتاج فعلاً إلى هذه البيانات. ثم أول ما يتبادر إلى الذهن هو إنشاء حلقة تسأل باستمرار عما إذا كانت البيانات الضرورية قد ظهرت. ولكن بعد ذلك هناك تدخل للجميع. بالإضافة إلى ذلك، مع هذا النهج، يمكنك الانتظار لمدة 10 دقائق، ثم سيأتي بعض المواضيع الأخرى، وسوف تتلقى البيانات اللازمة عن طريق الخطأ أولا. لا تزال هياكل البيانات المزدوجة لا تحتوي على أقفال، ولكنها تسمح للسلاسل بالانتظار بشكل صحيح. المصطلح "مزدوج" يعني أن البنية تحتوي إما على بيانات أو طلبات بيانات، دعنا نسميها بيانات مضادة. لذا، إذا حاولت استرداد شيء ما من حاوية فارغة، فسيتم وضع طلب في الحاوية بدلاً من ذلك. الآن يمكن للخيط انتظار الطلب دون إزعاج أي شخص آخر. بالإضافة إلى ذلك، تقوم بنية البيانات بتعيين الأولويات للطلبات بحيث تقوم عند استلامها بتمريرها إلى الشخص المناسب. والنتيجة هي آلية غير قابلة للقفل لا تزال تتمتع بمواصفات رسمية وأداء جيد في الممارسة العملية. 

أليكسي: ما هي توقعاتك من بنية البيانات هذه؟ هل سيؤدي ذلك إلى تحسين الأداء في جميع الحالات الشائعة، أم أنه أكثر ملاءمة لمواقف معينة؟ 

مايكل: يكون مفيدًا إذا كنت تحتاج أولاً إلى حاوية بدون قفل، وثانيًا، تحتاج إلى الانتظار في موقف تحتاج فيه إلى استرداد البيانات من الحاوية غير الموجودة فيها. على حد علمي، يوفر إطار عملنا السلوك الأمثل عند استيفاء هذين الشرطين. لذلك، في هذه الحالات أوصي باستخدامه. الميزة الرئيسية لهياكل البيانات غير المقفلة هي أنها تتجنب مشاكل الأداء. والانتظار مهم جدًا في العديد من الخوارزميات إذا تم نقل البيانات من موضوع إلى آخر.

Виталий: اسمحوا لي أن أوضح: هل ستتحدث عن نفس الشيء في المدرسة وفي المؤتمر؟

مايكل: في المدرسة سأتحدث بشكل عام حول هياكل البيانات متعددة الخيوط، مع المبادئ الأساسية الموضحة في بداية الدرس. أفترض أن الجمهور يعرف ما هي الخيوط وعلى دراية بالأقفال. بناءً على هذه المعرفة الأساسية، سأتحدث عن هياكل البيانات الخالية من القفل. سأقدم لمحة عامة عن أهم المشاكل في هذا المجال، مع التطرق إلى موضوعات مثل إدارة الذاكرة. لا أعتقد أنه سيكون هناك أي شيء أكثر تعقيدًا من قائمة انتظار MS.

أليكسي: هل تخطط لتدريس هياكل البيانات المزدوجة في نهاية فصلك في المدرسة؟

مايكل: سأذكرها، ولكن لن أقضي الكثير من الوقت عليها. سيتم تخصيص تقرير هيدرا لهم. وسوف يغطي المشروع الذي وصل في النهاية إلى Java، بالإضافة إلى العمل مع جو إسرائيليفيتش لإنشاء متغير مزدوج لقائمة انتظار LCRQ، وإنشاء تصميم شبه عالمي لهياكل البيانات المزدوجة.

أليكسي: إذن يمكن التوصية بالمحاضرة في المدرسة للمبتدئين، والمحاضرة حول هياكل البيانات المزدوجة في هيدرا - للأشخاص الذين لديهم بالفعل بعض الخبرة؟

مايكل: صحّحوني إذا كنت مخطئًا، لكن الجمهور في Hydra سيكون متنوعًا تمامًا، بما في ذلك العديد من خبراء Java، وبشكل عام الأشخاص الذين لا يشاركون بشكل خاص في البرمجة متعددة الخيوط. 

Виталий: نعم انه صحيح.

أليكسي: على الأقل نحن نأمل ذلك.

مايكل: في هذه الحالة، سأواجه نفس المشكلة التي بدأنا بها هذه المقابلة: كيفية إعداد تقرير غني بما فيه الكفاية بالتفاصيل الفنية وفي متناول جميع المستمعين.

Виталий: هل ستقدم تقريرا بنفس الطريقة التي تعطي بها المحاضرات؟ أي التحدث مع الجمهور والتكيف مع الوضع؟

مايكل: أخشى أن الأمر لن يسير بهذه الطريقة، لأن التقرير سيحتوي على شرائح. تعتبر الشرائح مهمة عندما يتحدث المستمعون في البداية لغات مختلفة. سيجد العديد من الأشخاص صعوبة في فهمي باللغة الإنجليزية، خاصة إذا كنت أتحدث بسرعة كبيرة. اخترت هذه المواضيع لأن بيوتر كوزنتسوف طلب مني أن أتحدث عن هياكل البيانات الخالية من القفل في مدرسة SPTDC؛ وبعد ذلك كنت بحاجة إلى تقرير لمؤتمر مجموعة مستخدمي Java، وأردت اختيار شيء قد يثير اهتمام مبرمجي Java على وجه التحديد. أسهل طريقة هي التحدث عن تلك الأشياء الموجودة في مكتبة Java والتي كانت لي يدًا بطريقة أو بأخرى. 

أليكسي: نفترض أن جمهور Hydra يعرف بالفعل شيئًا عن البرمجة الخالية من القفل وربما لديه بعض الخبرة في هذا المجال. لكن هذا مجرد افتراض، وسيتضح الأمر أكثر في المؤتمر نفسه. على أي حال، شكرا على وقتك. أنا متأكد من أن المقابلة ستكون ممتعة للغاية لقرائنا. شكرًا جزيلاً!

Виталий: شكرًا لك. 

مايكل: سأكون سعيدًا بلقائك في سان بطرسبرج. 

أليكسي: ونحن أيضا، لدينا مدينة جميلة. هل كنت هنا من قبل؟

مايكل: لا، لم أذهب إلى روسيا مطلقًا. لكن سانت بطرسبرغ كانت دائمًا على قائمة الأماكن التي لم أذهب إليها بعد، ولكن حيث أريد حقًا الذهاب إليها، لذلك كنت سعيدًا جدًا بالدعوة. 

أليكسي: بالمناسبة، سيكون لدينا برنامج رحلات للمتحدثين. شكرًا جزيلاً على المقابلة، وأتمنى لك يومًا سعيدًا!

يمكنك مواصلة محادثتك مع مايكل في مؤتمر هيدرا 2019 الذي سيعقد في الفترة من 11 إلى 12 يوليو 2019 في سانت بطرسبرغ. وسوف يأتي مع التقرير "هياكل البيانات المزدوجة". يمكن شراء التذاكر على الموقع الرسمي.

المصدر: www.habr.com

إضافة تعليق