
في المرة الأخيرة التي أتحدث فيها مع المطورين أو الشركات ، كثيراً ما أسمع نفس القصة بكلمات مختلفة - "لقد كتبنا في روبي ، لكننا الآن نسير". من ناحية ، لا شيء يثير الدهشة. التطوير عمل متقلب ، شيء جديد يظهر دائمًا ، كل يوم عليك أن تقضي فيه الكثير من العقول لتظل ذات صلة.
ولكن في الوقت نفسه هناك بعض التفاني في التكنولوجيا وحتى عبادة الصك. أخبر php shnik أن الوقت قد حان للانتقال إلى .NET ، ستسمع "PHP ممتاز ، إنه يكتب نصف العالم عليه" ، أو ستجعله على وجهك.
ما هو الخطأ في روبي ، وأين ذهبت شعبيتها المتفجرة؟ تحدثت مع عدد قليل من الياقوت. على سبيل المثال ، مكسيم إنديكوف من Staply ، الذي ينتقل فريقه من Ruby إلى Go ، ومع Alexei Kuznetsov من GeekBrains ، وهي شركة بدأت بدورات Ruby وقد تخلت عنها بالكامل الآن.
لماذا روبي جيد؟
مكسيم إنديكوف ( maks_ohs ): بناء جملة مدروس تبدو عليه الشفرة قابلة للقراءة قدر الإمكان. يمكنك أن تكتب بوضوح وبشكل واضح حقا. يتم تنفيذ عدد كبير من المكتبات ، لا يتسبب الاتصال بها في حدوث مشكلات.
بافل سيريزين: أهم
ميزة للياقوت هي القضبان ، وهي أفضل إطار. نفذت الأنماط بوضوح ، وليس مثل node.js ، بارد كما تريد. الترميز نفسه يشبه الإنجليزية.
Alexey Kuznetsov: تحتوي اللغة على بناء جملة خفيف الوزن وموجز جدًا ومناسب تمامًا لوصف DSL ومنطق العمل. عتبة دخول منخفضة ، مجتمع ودود. مرشح جيد للتعلم كلغة أولى.
لماذا روبي سيء؟
مكسيم إنديكوف: عند الطلب على الموارد ، فإن التاريخ الكامل لتطور اللغة يرافقه تحسينات جدية في استهلاك الذاكرة. في تنفيذ المترجم المرجعي (MRI) ، لا يوجد تعدد مؤشرات ترابط حقيقي باستخدام نوى معالجات متعددة (GIL).
الكتابة الديناميكية. ولكن من الصعب أن تنسب إلى السلبيات ، لأنها تتيح لك تسريع التنمية ، وإن كان ذلك مع فقدان الجودة.
بافل سيريزين: ما مدى جودة روبي للكتابة هو أمر مثير للاشمئزاز للقراءة. من الصعب للغاية فهم ما يحدث ، لكن لا سمح الله ، فقد كان المؤلف مصابًا بمتلازمة الدراجات وقام برعشة - هنا على الأقل شنق نفسك على الفور. الكتابة الثابتة في بعض الأحيان ليست كافية.
أليكسي كوزنتسوف: اللغة لا تتطور عملياً على خلفية أقرب منافسيها (JavaScript و Python). استند النمو الهائل في الاهتمام في روبي في المقام الأول على روبي أون ريلز. ولكن بعد أن أصبحت أطر عمل Rails التي تشبه كل لغة جافا مشهورة ، فإن Ruby ليس لديه الكثير لتقدمه. غياب الكتابة الثابتة الاختيارية أيضًا لا يضيف نقاط Ruby.
قل لي لماذا اخترت ذلك؟
أليكسي كوزنتسوف: لقد تحولت إلى روبي مع C ++ منذ حوالي 5 سنوات وكان في ذلك الوقت اختيارًا معقولًا. أردت أن أصنع منتجات أقرب إلى المستخدمين النهائيين. لم يكن PHP أفضل سمعة. في JS ، قواعد الكرة ES5 + JQuery ، ولم يكن بناء جملة Python ملهمًا.
بافل سيريزين: أولاً وقبل كل شيء ، بسبب القضبان ، فهي مناسبة بشكل مثالي لمجال تطوير الويب ، الذي أردت القيام به. ومن الجميل أن تكتب بلغة موجهة نحو المطور.
مكسيم إنديكوف: لقد أثر المجتمع حقًا. وهناك عدد كبير من جودة الدروس المكتوبة وأفضل الممارسات. إطار سكك حديدية يجعل التطوير واضحًا قدر الإمكان من بداية المشروع إلى النشر. مجموعة كبيرة من الأساليب والتطبيقات الخاصة باختبارات الكتابة: RSpec و MiniTest وما إلى ذلك.
في تلك اللحظة ، هل تعتقد أن لديه مستقبل؟
مكسيم إنديكوف: نعم ، كانت اللغة تتطور باستمرار (وما زالت تفعل ذلك الآن). كان هناك عدد كبير من الوظائف الشاغرة. على خلفية php ، يبدو أن كل شيء هو الأكثر منطقية وصحيحة.
بافل سيريزين: لم أكن أعتقد أن الياقوت سيكون في القمة ، لكن بالعكس. كان يبدو دائمًا أنه سيكون هناك عدد قليل من المطورين ، وهذا من شأنه أن يخلق منافسة. صحيح - هذا واحد من السلبيات ، يكاد يكون من المستحيل الدخول من مستوى يونيو إلا في العواصم.
لماذا روبي الآن أقل وأقل المطلوبة؟
بافل سيريزين: الآن ، في كثير من الأحيان ، يختارون لغات وأطرًا أكثر شيوعًا لإنشاء مشاريع جديدة. كلا من الياقوت والقضبان متخلفان قليلاً في الأداء ولا يواكبان الاتجاهات. تم تسليم دعم Webpack إلى القضبان ، الأمر الذي لا يساعد كثيرًا - من الأسهل تقسيمه إلى مشروعين منفصلين.
Alexey Kuznetsov: Node.js يعمل بنشاط على تفكيك نطاق تطبيقات الويب ، كما أن تطبيق Go ينفد من جميع أنواع الأدوات المساعدة.
مكسيم إنديكوف: يبدو لي أن المضاعفات المستمرة للمهام أثرت علي. يتطلب الحل إما زيادة مستمرة في السعة ، وزيادة استخدام الموارد ، أو محاولات لعدم الوقوع في السقف ، الحيل المعمارية.
تم إنشاء روبي على هذا النحو PL ، والتي يحبها المطورين ، وليس الأعمال. هل تعتقد أن عدم شعبيته الحالية مؤشر على أن مثل هذه الاستراتيجية لا تعمل؟
أليكسي كوزنتسوف: يبدو لي أن الوضع عكس ذلك. ارتفعت اللغات الأخرى إلى المستوى الذي كان المطورون سعداء بالعمل معهم (التدمير في ES6 ، التدفقات في Java8 ، ضعف الصفر في Kotlin و Swift ، نموذج المنافسة في Go).
مكسيم إنديكوف: يريد العمل توفير موارد خادم المال. عندما تتوفر التكنولوجيا التي يمكن أن تعقد الحمل بأوامر من حجم أعلى ، فإن القليل منهم يرفضون الادخار.
عندما يكون لهذه التكنولوجيا كتابة صارمة ، والتي تعد ميزة إضافية للاعتمادية - فهذا حجر آخر في حديقة روبي.
يبدو أن هذا هو الوضع في روسيا: كان هناك وتطور php. ثم جاءت شعبية روبي المحلية ، والتي تم تصويرها على أنها قاتل php ، لكنها غالبًا ما كانت تفتقر إلى حجج تجارية أخرى إلى جانب "حسنًا ، من المريح حقًا الكتابة على روبي". جميعهم كانوا خائفين من نقص المتخصصين. مع ظهور إكسير وتذهب ، الحجج أكثر قابلية للفهم.
هل يجب عليك المغادرة مع روبي؟
أليكسي كوزنتسوف: لا أعتقد أننا يجب أن نواجه روبي ، لكن الأمر يستحق النظر في البدائل.
مكسيم إنديكوف: السوق بأكمله يهاجر. تعلن الشركات الكبيرة عن استخدام Go. لكننا نتحدث عن الهجرة في مناطق معينة من المشكلة. بالتأكيد يجب امتلاك المعرفة بالتكنولوجيات الشعبية الجديدة.
بافل سيريزين: الآن أصبح js أكثر شعبية وغير مريح للرش على لغتين مختلفتين في بناء الجملة. تاريخيا ، لدي المزيد من الروح ل React ، لذلك أعتقد أن تترك المكدس الكامل إلى الأمام.
هل سيكون من بين اللغات التي لم يطالب بها أحد تمامًا؟
مكسيم إنديكوف: لا ، لكتابة النماذج الأولية و MVP بسرعة ، حيث تكون سهولة التنفيذ مطلوبة ، ليس لديه أي مساوٍ. هناك مجال غير محروث من المشاريع التي تحتاج إلى تنفيذها بسرعة وكفاءة. قد لا تأتي اللحظة التي يكون فيها التحسين مطلوبًا ، ولكن كما تعلمون ، فإن التحسين السابق لأوانه هو الشر.
بافل سيريزين: لا أعتقد ذلك. بالنسبة لروبي ، ستبقى هناك سمعة معينة بلغة لا تحظى بشعبية إلى حد ما ، مكانة خاصة بمجتمعها.
أليكسي كوزنتسوف: هذا لا يزال بعيد المنال. هناك العديد من الحالات التي لا يكون فيها المشروع مكتوبًا. والكثير من المطورين مستعدون لعطلة نهاية الأسبوع لجمع MVP.
وبوجود فريق مضغوط من الياقوت ، يمكنك تطوير المنتج بنجاح لسنوات (GitHub و GitLab - وكلاهما مكتوب بلغة RoR).
كتب روبي ملايين أسطر التعليمات البرمجية التي يحتاج شخص ما إلى صيانتها.
لكن عدد المشاريع الجديدة سينخفض مع مرور الوقت. أفكر في خمس سنوات ما زالت اللغة موجودة.
ما يمكن أن يساعد روبي تبقى شعبية؟
مكسيم إنديكوف: مرونة كبيرة لمطوري اللغات. تنفيذ التحسينات للعمل مع multithreading.
بافل سيريزين: تحسين أداء اللغة نفسها
وقضبانها . ووضع الشركة مع الكثير من أموال الدعم.
أليكسي كوزنتسوف: لم يتحول روبي إلى قرع. عربات أخرى ظهرت للتو. يأتي البعض مع محركات نفاثة ، والبعض الآخر يلمع بقوة أكبر.
أعتقد أن الكتابة الثابتة الاختيارية (والتوليف الذي يمكن القيام به أعلى منه) يمكن أن تساعد.
أي من YaPs الشعبية هي الآن الأكثر ملاءمة للروبي؟
مكسيم إنديكوف: بدلاً من ذلك ، يعتمد الأمر على المهام ، لكن في أغلب الأحيان تكون الإجابة على هذا السؤال هي: إكسير. لغة تم إنشاؤها بواسطة أشخاص من مجتمع الياقوت / القضبان.
أليكسي كوزنتسوف: بشكل عام ، أنا لست قريبًا من الانقسام إلى المطورين عن طريق لغة البرمجة. لا ينبغي أن يكون هناك مشكلة بالنسبة لمطور البرامج لإتقان مكدس جديد بمستوى كافٍ خلال 2-4 أسابيع.
ولذا فإنني أتطلع نحو Go / JS / Swift اعتمادًا على المهام التي يخطط المطور للتركيز عليها. هناك إليكسير و Clojure ، لكنهم ليسوا في التيار الرئيسي.
بافل سيريزين: كل
روبي تقريباً يحترم نفسه يغادر إلى جولانج. إذن الجواب واضح.