في غضون يومين ،
سيعقد مؤتمر
RubyRussia في موسكو. أجاب ضيفنا
Charles Nutter (يعمل على دعم JRuby و JVM على Red Hat) على سؤالين.
كيف دخلت عالم البرمجة وروبي؟في عام 2004 ، تعاقدت مع شركة حكومية كمهندس Java Enterprise. عملت في مشروع لصالح وزارة الزراعة الأمريكية ، وقضيت أسبوعين في الشهر في واشنطن. تزامنت إحدى هذه الرحلات مع RubyConf 2004 ، وبما أن أحد أصدقائي قد أوصى منذ فترة طويلة بأن أهتم بروبي ، فقد قررت الذهاب إلى المؤتمر. لذلك انتهى بي الأمر في حدث مخصص لروبي ، ليس لدي أي فكرة عن هذه اللغة ... لكنني فهمت كل جزء من الكود ، كل مثال مقدم. لقد دهشت ووعدت نفسي بإيجاد طريقة لجلب روبي إلى عالم جافا الخاص بي.
ما المشاريع التي تعمل عليها الآن؟أنا واحد من مديري مشروع JRuby. يتضمن هذا العمل العديد من المشاريع ذات الصلة ، على سبيل المثال ، دعم المكتبات الأصلية (نحن ندعم Ruby FFI على JRuby) ، أو تحويل السلسلة (ينقل منطقًا مشابهًا من CRuby). بالإضافة إلى ذلك ، أعمل مع المجتمع للتأكد من أن المستخدمين يمكنهم دائمًا الحصول على المساعدة منا. بشكل عام ، العمل ممتلئ دائمًا!
أي من هذه المشاريع لها مستقبل أكثر إشراقًا؟أعتقد أن هذه هي JRuby ، على الرغم من أنها ليست اللغة الأكثر شعبية على منصة JVM.
لقد ساهمنا على الأقل في التغييرات الإيجابية في JVM نفسها. بفضل تعاوننا مع Sun Microsystems و Oracle ، أصبحت JVM الآن منصة ملائمة للعديد من اللغات الديناميكية ، وليس فقط Java. آمل أن نكون قد لعبنا دورًا مهمًا في هذا التغيير.
ما اللغات التي تكتبها في أغلب الأحيان؟ أيهما تفضل أكثر ولماذا؟أنا أكتب بشكل رئيسي في روبي وجافا ، حيث يتم كتابة JRuby باستخدام كليهما. كل من هذه اللغات مناسبة تمامًا لمهامها. روبي - لإنشاء تطبيقات تحتاج إلى التطوير والتكيف بسرعة. جافا - لكتابة مكتبات وخدمات عالية السرعة وموثوقة. ويجمع JRuby بين أفضل ما في العالمين!
هل تحب البرمجة في Java؟نعم ، ولا سيما بالنظر إلى جميع التحسينات اللغوية المضافة حديثًا ، مثل لامداس (الإغلاق أو الكتل في روبي) ، وبناء الجملة الجديد للإعلان عن المتغيرات المحلية (فار) عندما يكون النوع الثابت فريدًا.
ما رأيك في الصدأ؟الصدأ لغة عظيمة! في الكلية ، استخدمت C ++ كثيرًا ، لكن يمكنني بالتأكيد القول أنه إذا كنت أعرف Rust في ذلك الوقت ، فإنني أفضل الكتابة عليه. أنا أحب بشكل خاص نموذج الملكية المكتوب بشكل ثابت ، والذي يسمح لنا بكتابة برامج متوازية مستقرة ، ويضمن الوصول الآمن إلى الذاكرة. أعتقد أن اللغات الأخرى يجب أن تتبنى هذا في المستقبل.
ما هي أفكارك حول آفاق روبي؟ لسنوات عديدة ، يعتقد الكثير من الناس أن اللغة ومجتمعها "يموتون" ...بعد سنوات عديدة من العمل على JRuby ، وقعت في حب صيغة روبي ، وكيف تعمل. ولكن أخشى أن مشكلة الأداء موجودة بالفعل ومهمة. تكافح JRuby لجعل سلاسل المحادثات المتوازية حقيقة لمطوري Ruby ، ولكن حتى الآن ، تستخدم الغالبية العظمى من خدمات Ruby العديد من العمليات المعزولة ، وتنفق كمية هائلة من موارد وحدة المعالجة المركزية والذاكرة. أعتقد أن هذا يرجع إلى C API كبير الحجم وغزوي لكتابة ملحقات Ruby ، والتي لا تسمح بتنفيذ تحسينات مثل سلاسل الرسائل المتوازية.
لكنني لا أفقد الأمل بأننا ما زلنا نرى ذات يوم تغييرات.
أي من ميزات Ruby الأقل شيوعًا يجب أن تفكر فيها في المستقبل؟أتطلع إلى أن تصبح السلاسل غير قابلة للتغيير افتراضيًا ، كما هو الحال في معظم اللغات الأخرى. البرمجة المتزامنة ستكون أبسط بكثير إذا أمكن تجميد المزيد من كائنات روبي. قد يشبه النموذج المستخدم في Rust ... إذا قمت بمشاركة كائن في التدفقات ، يجب عليك اختيار إصدار الكائن الذي لن يتم تعديله بالضبط. يمتد هذا إلى المصفوفات ، والتجزئة ، وأي كائن قابل للتغيير تقريبًا في Ruby: نحن بحاجة إلى تبسيط حظر تغييرات البيانات.
لدي مشروع روبي متجانسة قديم كبير. تساءلت عما إذا كان يمكنني ترجمتها إلى JRuby. كيف يمكن القيام بذلك ، وهل من المنطقي؟السؤال الأول ، في الواقع ، هو ما إذا كانت هذه الخطوة سوف تساعدك.
يمكن أن تكون الحجج الهامة للتحول إلى JRuby:
- تقليل تكلفة الموارد عند وجود عيب ، على سبيل المثال ، إذا تم استضافة العديد من التطبيقات على نفس الخادم في وقت واحد
- نشر تطبيق Ruby في بيئة JVM الثقيلة التي تستخدمها المؤسسات المالية والحكومية الكبيرة
- الحاجة إلى الوصول إلى المكتبات الموجودة فقط في Java ، أو التي يسهل نقلها إلى JVM ، من معادلاتها في Ruby أو C
- زيادة طفيفة في الأداء في التطبيقات ذات الحوسبة الثقيلة (التي تقوم بتحميل المعالج) أو مع عدد كبير من المهام المتوازية.
أود أن أقول أنه إذا كان التطبيق يتطور بشكل جيد ولا يكلفك الكثير ، فربما لا يجب عليك فعل أي شيء. ولكن إذا قررت الحصول على المزيد من روبي ، فإليك عملية الترحيل:
- قم بتجميع كافة مكتبات الجهات الخارجية التي يستخدمها التطبيق الخاص بك.
- أبرز من بينها تلك التي تستخدم ملحقات C.
- اعثر على ما يعادل JRuby لكل ملحق. لدينا عدة
- صفحات على ويكي JRuby حول هذا الموضوع. تحتوي معظم المكتبات الشعبية على إصدارات JRuby. إذا لم يكن هناك إصدار JRuby ، فيمكنك استخدام إصدار Ruby خالص (سيكون سريعًا بما يكفي على JRuby) أو مكتبات JVM (في Java ، Scala ، Clojure ، إلخ) ، والتي يمكن استخدامها كبديل.
- بمجرد أن تكسب جميع أحجارك الكريمة على JRuby ، سيعمل التطبيق بالكامل! نولي الكثير من الاهتمام للتوافق ونحاول أن نأخذ في الاعتبار المشاكل الجديدة التي ينتبه إليها مستخدمونا. لذلك ، مع احتمال كبير ، إذا كان لديك حزمة على JRuby ، سيعمل التطبيق.
حسنًا ، بعد ذلك يبدأ الجزء الأكثر صعوبة - ماذا تفعل بالموارد المحررة. كم عدد المواضيع التي توازي التطبيق ، وكيفية إنفاق المال المدخر ... :)
ما الذي يحتاج الطلاب إلى معرفته ليصبحوا مبرمجين جيدين؟عندما كنت في الجامعة ، درست دورات علوم الكمبيوتر الخاصة بي Scheme ، وهي لغة وظيفية مثل Lisp كانت رائعة لتعلم أساسيات البرمجة. ما زلت أوصي المبرمجين المبتدئين بدراسة جزء على الأقل من كتاب هيكل وتفسير برامج الكمبيوتر ، الذي نشره معهد ماساتشوستس للتكنولوجيا (MIT). حسنًا ، بشكل عام ، كلما زادت اللغات المختلفة ، كلما كان ذلك أفضل. هذا يعطي أفكارًا جديدة ويسمح لك بالنظر إلى حل مشاكلك من زوايا مختلفة.
من أين تحصل على الدافع للعمل؟ هل واجهت مشكلة الإرهاق المهني؟الإرهاق مشكلة حقيقية في صناعتنا. تعمل بشكل خاص في المصدر المفتوح
يجلب الكثير من الضغط. أعتقد أن هذا حدث للجميع ... عندما يكون هناك الكثير من العمل ، ليس لديك الوقت للقيام بكل شيء ، تضحي بالوقت مع العائلة والأصدقاء ، تنسى صحتك من أجل إصلاح خطأ منتظم آخر. لمحاربة هذا ، أحاول التركيز على هواية: لعب ألعاب الكمبيوتر وألعاب الطاولة ، وتعلم العزف على الجيتار ،
تعلم اللغات الأجنبية والسفر حول العالم والتعرف على أشخاص جدد. مدمني العمل المتذمرين سيعيشون دائمًا في داخلي ، مما يقنعني بالعودة إلى العمل ، لكنني ما زلت أحاول الحفاظ على التوازن الصحيح.
ما رأيك في روسيا وماذا تتوقع من حدث روبي روسيا القادم؟أنا أحب روسيا ، وكانت كل رحلاتي إلى المؤتمر هنا خلال السنوات القليلة الماضية مفيدة للغاية. ستكون هذه زيارتي الرابعة ، في السابق كنت في سانت بطرسبرغ وموسكو وحتى في نوفوسيبيرسك (!!!). إنني أتطلع للعودة إلى موسكو والاجتماع مع مجتمع روبي الروسي ، والذي سمعت عنه الكثير.
تم إعداد الأسئلة من قبل
ديمتري ماتفييف ، رئيس الوزراء في
Evrone . ويمكنك طرح سؤالك بالفعل في 6 أكتوبر. لذا أراك في المؤتمر! كل التفاصيل على
الموقع .
يمكنك قراءة الأصل باللغة الإنجليزية على
hype.codes .
والشكر الجزيل للشركات التي تدعم حدث روبي الرئيسي في روسيا:
الشريك العام -
Toptalشركاء الذهب -
Gett and
Cookpadالشركاء
الفضيون -
Instamart و
UCHi.ru و
JetBrains و
Qleanشريك بعد
الولادة -
Teachbaseالشركاء البرونزيون -
Bookmate و
InSales