سؤال

روبي أصبحت شائع, ، إلى حد كبير من تأثير Ruby on Rails، ولكن يبدو أنها تكافح حاليًا خلال فترة المراهقة.هناك الكثير من أوجه التشابه بين روبي وSmalltalk - ماجليف هو شهادة على ذلك.على الرغم من وجود بناء جملة غير عادي، فإن Smalltalk تتمتع بكل (إن لم يكن أكثر) من جمال Ruby الموجه نحو الكائنات.

مما قرأته، يبدو أن Smalltalk قد تغلبت على روبي:

يبدو أن روبي تعيد اختراع العجلة.فلماذا لا يستخدم مطورو روبي SmallTalk؟ ما الذي لا تمتلكه روبي في Smalltalk؟

للسجل:أنا رجل روبي ولدي خبرة قليلة أو معدومة في Smalltalk، لكنني بدأت أتساءل عن السبب.


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

gst smalltalk_file
هل كانت مفيدة؟

المحلول

أنا من مستخدمي Pythonista أكثر مني من مستخدمي Ruby، ولكن نفس الأشياء تنطبق على Ruby لنفس الأسباب تقريبًا.

  • تعتبر بنية Smalltalk معزولة إلى حد ما، بينما تم إنشاء Python وRuby من الألف إلى الياء لتسهيل التكامل.لم تكتسب Smalltalk أبدًا مجموعة من دعم التطبيقات المختلطة بالطريقة التي حصلت عليها Python وRuby، لذلك لم ينتشر مفهوم "smalltalk كلغة برمجة نصية مضمنة" أبدًا.

    جانبًا، لم تكن Java هي أسهل شيء للتفاعل مع قواعد التعليمات البرمجية الأخرى (JNI خرقاء إلى حد ما)، لكن هذا لم يمنعها من اكتساب المشاركة الذهنية.تعتبر وسيطة الواجهة IMO مهمة - سهولة التضمين لم تؤذي بايثون - لكن هذه الوسيطة تحمل وزنًا معتدلًا فقط حيث لا تتطلب جميع التطبيقات هذه الإمكانية.كما أن الإصدارات الأحدث من Smalltalk تناولت العزلة بشكل كبير.

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

    التأثير الإجمالي هو أن Smalltalk حصل على سمعة (مستحقة إلى حد ما) لأنه من الصعب تعلمه؛يستغرق الأمر قدرًا كبيرًا من الوقت والجهد لتصبح مبرمجًا ماهرًا في Smalltalk.تعتبر لغة Ruby وPython أسهل بكثير في التعلم وجلب المبرمجين الجدد إلى مستوى السرعة.

  • تاريخيًا، كانت تطبيقات Smalltalk السائدة باهظة الثمن للغاية وتحتاج إلى أجهزة غريبة لتشغيلها، كما يمكن رؤيته هذا المنشور net.lang.st80 من عام 1983.كانت أنظمة التشغيل Windows 3.1 وNT و'95 وOS/2 هي أنظمة التشغيل الأولى في السوق على الأجهزة السائدة القادرة على دعم تنفيذ Smalltalk مع تكامل النظام الأصلي اللائق.في السابق، كانت أجهزة Mac أو أجهزة محطة العمل هي أرخص الأنظمة الأساسية القادرة على تشغيل Smalltalk بفعالية.بعض التطبيقات (خاصة Digitalk) تدعم أنظمة تشغيل الكمبيوتر بشكل جيد ونجحت في اكتساب بعض الاهتمام.

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

  • تعمل روبي وبايثون في سلسلة أدوات أكثر تقليدية ولا ترتبطان ارتباطًا وثيقًا ببيئة تطوير محددة.على الرغم من أن Smalltalk IDEs التي استخدمتها لطيفة بما فيه الكفاية، فإنني أستخدم PythonWin لتطوير Python إلى حد كبير لأنه يحتوي على محرر لطيف مع تمييز بناء الجملة ولا يتدخل.

    ومع ذلك، تم تصميم Smalltalk ليتم استخدامه مع IDE (في الواقع، كان Smalltalk هو IDE الرسومي الأصلي) ولا يزال لديه بعض الميزات الرائعة التي لم يتم تكرارها بواسطة الأنظمة الأخرى.لا يزال اختبار الكود مع التمييز و"إظهاره" ميزة رائعة جدًا لم أرها من قبل في Python IDE، على الرغم من أنني لا أستطيع التحدث باسم Ruby.

  • لقد تأخر Smalltalk إلى حد ما في الوصول إلى حفل تطبيقات الويب.لم تكن الجهود المبكرة مثل VisualWave ناجحة بشكل كبير على الإطلاق، ولم يحصل إطار الويب اللائق على القبول في دوائر Smalltalk إلا بعد ظهور Seaside.في هذه الأثناء، حظيت Java EE بدورة حياة قبول كاملة بدءًا من الترويج لها من قبل المعجبين المتحمسين وأخيرًا الشعور بالملل والانتقال إلى Ruby؛-}

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

ومع ذلك، فإن Smalltalk يعد نظامًا رائعًا للغاية بمجرد أن تتعرف على كيفية تشغيله.

نصائح أخرى

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

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

ولا توجد طريقة أفضل من الأخرى.ولكل منها فوائدها ومخاطرها، وكل منها سوف يوصلني إلى هدفي.

أعتقد أن سؤالك يفتقد هذه النقطة إلى حد ما.أنت لا ينبغي أن تختار، يجب عليك يتعلم كلاهما!

إذا كنت حقًا في وضع يمكنك من اختيار إطار العمل التالي (VM، البنية التحتية)، فأنت بحاجة إلى تحديد ما يجب استخدامه ويمكنك طرح سؤال محدد مع إيجابيات وسلبيات من منظور ما يريد تطبيقك القيام به.

لقد استخدمت الحديث الصغير (أحبه) وروبي (أحبه).

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

لقد بدأت في استخدام روبي (في العمل) لأننا كنا بحاجة إلى بعض لغات البرمجة النصية التي تتصرف بشكل متساوٍ تقريبًا في ظل أنظمة سولاريس ولينكس وويندوز (98،2000، إكس بي).كانت روبي في ذلك الوقت غير معروفة للجو العادي ولم يكن هناك أي قضبان.ولكن كان من السهل بيعها لجميع المعنيين.

(لماذا لا بيثون؟الحقيقة ؟لقد أمضيت أسبوعًا في البحث عن خطأ حدث عندما قامت إحدى الوحدات الطرفية بتحويل المساحة الخاصة بي إلى علامة تبويب وتم إفساد النية).

لذلك بدأ الناس في البرمجة أكثر فأكثر باستخدام الياقوت لأنه كان مريحًا للغاية ومستمتعًا وليس سحابة في السماء.

يلخص بول جراهام ذلك

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

و

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

وعندما كنت في Lisp Land حاول استبدال LISP بمحادثات قصيرة

مكتبات روبي ومجتمعها وزخمها جيدون

لذلك إذا كان Lisp لا يزال أقوى من Ruby ، ​​فلماذا لا تستخدم Lisp؟الاعتراضات النموذجية على البرمجة في LISP هي:

  1. لا توجد مكتبات كافية.
  2. لا يمكننا توظيف مبرمجي LISP.
  3. لم يذهب LISP إلى أي مكان خلال العشرين عامًا الماضية.

هذه ليست اعتراضات هائلة ، لكنها بالتأكيد تستحق النظر.

و

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

وأود أن أقول العكس:يعد بناء جملة Smalltalk أحد أبسط وأقوى تركيب جمل لغة البرمجة.

صحيح أن اللغات متشابهة إلى حد كبير.الطريقة الضحلة لتفسير ذلك هي تسمية روبي بفرقة غلاف Smalltalk.التفسير الأكثر منطقية هو أن نظام Smalltalk المغلق عزلها، في حين أن مشاركة Ruby في بيئة Unix وعادتها في الاستيلاء على الميزات من كل لغة تحت الشمس يمنحها منحنى اعتماد لطيفًا بلا حدود وتكاملًا سهلاً مع أدوات Kickass مثل Git.

جايلز بوكيت

خمن من قال هذا؟(الاقتباس قريب، ربما غير دقيق):"كنت أعتقد دائمًا أن Smalltalk سيتغلب على Java.لم أكن أعرف ما إذا كان سيتم تسميتها بـ "روبي" عندما حدث ذلك."

لفة الطبل ....

...

الجواب هو ...كينت بيك

لدى ستيفان دوكاس بعض كتب Smalltalk الرائعة المتوفرة هنا:

http://stephane.ducasse.free.fr/FreeBooks.html

لذلك، على الرغم من أن مجتمع Smalltalk ليس غزير الإنتاج مثل مجتمعات Ruby و Rails، إلا أنه لا يزال هناك بعض المساعدة الرائعة هناك.

ما الذي تمتلكه روبي ولا يمتلكه Smalltalk؟

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

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

يضربني.لقد أمضيت عامًا في التحقق من روبي والقيام ببعض المشاريع الصغيرة لمعرفة مدى إعجابي بها.أعتقد أنني متعصب لـ Smalltalk لأنه في كل مرة كنت أجلس فيها للعمل مع Ruby كنت أتنهد وأفكر "أفضل حقًا أن أفعل هذا في Smalltalk".أخيرًا استسلمت وعدت إلى Smalltalk.الآن أنا أكثر سعادة.أسعد هو أفضل.

وهو ما يطرح السؤال بالطبع: "لماذا؟".ليس في ترتيب معين:

  1. لأن IDE يدمر أي شيء آخر عملت معه على الإطلاق.يتضمن ذلك مجموعة من الأنظمة الأساسية بدءًا من ISPF على حواسيب IBM الرئيسية وحتى Visual (.*) من Microsoft، وتتضمن أشياء مثل Visual Basic 4-6 وVisual C++ (تجسيدات مختلفة) وTurbo Pascal من Borland والأحفاد (على سبيل المثال.Delphi)، والأشياء الموجودة على أجهزة DEC في كل من وضع الأحرف وتحت X-Windows.
  2. لأن الصورة مكان جميل للعيش فيه.أستطيع أن أجد ما أريد هناك.إذا لم أتمكن من معرفة كيفية القيام بشيء ما، فأنا أعرف ذلك مكان ما في الصورة مثال لما أحاول القيام به - كل ما علي فعله هو البحث حتى أجده.وهو توثيق ذاتي - إذا كنت تريد رؤية تفاصيل كيفية عمل شيء ما، فما عليك سوى فتح متصفح في الفصل الذي تهتم به، وإلقاء نظرة على الطريقة، وهذه هي الطريقة التي تعمل بها.(حسنًا، في النهاية ستضغط على شيء يسمى بدائيًا، وبعد ذلك سيكون "هنا يوجد تنانين"، لكنه عادةً ما يكون مفهومًا من السياق).من الممكن القيام بأشياء مماثلة في Ruby/C++/C، لكن الأمر ليس بهذه السهولة.السهل هو الأفضل.
  3. اللغة بسيطة ومتسقة.ثلاثة أنواع من الرسائل - أحادية وثنائية وكلمة رئيسية.وهذا يصف أولوية التنفيذ أيضًا - الرسائل الأحادية أولاً، ثم الرسائل الثنائية، ثم رسائل الكلمات الرئيسية.استخدم الأقواس للمساعدة في حل الأمور.بناء الجملة الصغير، حقًا - يتم كل ذلك من خلال إرسال الرسائل.(حسنًا، المهمة ليست رسالة يتم إرسالها، بل هي عامل تشغيل.إذن هو عامل التشغيل "العودة" (^).الكتل محاطة بأزواج من الأقواس المربعة ([ ] ).قد تكون هناك قطعة أو اثنتين من الأجزاء "السحرية" الأخرى، ولكن القليل جدًا...).
  4. كتل.نعم، أعلم أنها موجودة في Ruby (وغيرها)، لكن تبا، لا يمكنك حرفيا البرمجة في Smalltalk دون استخدامها.أنت على قسري لمعرفة كيفية استخدامها.في بعض الأحيان يكون الإجبار أمرًا جيدًا.
  5. البرمجة الموجهة للكائنات دون أي تنازلات - أو بدائل، في هذا الشأن.لا يمكنك التظاهر بأنك "تفعل أشياء" بينما لا تزال تفعل نفس الشيء القديم.
  6. لأنه سوف يمتد دماغك.التركيبات المريحة التي اعتدنا عليها جميعًا (if-then-else، do-while، for( ;;)، وما إلى ذلك) لم تعد موجودة لذا عليك أن تتعلم شيئًا جديدًا.هناك ما يعادل كل ما سبق (وأكثر)، ولكن عليك أن تتعلم كيفية التفكير بشكل مختلف.بشكل مختلف جيد.

من ناحية أخرى، قد يكون هذا مجرد هراء لرجل كان يبرمج منذ الأيام التي حكمت فيها الحواسيب المركزية الأرض، وكان علينا أن نسير خمسة أميال للعمل خلال العواصف الثلجية المسببة للعمى، صعودًا في كلا الاتجاهين، وكانت أجهزة الكمبيوتر تستخدم الكعك للذاكرة.ليس لدي أي شيء ضد Ruby/Java/C/C++/، فكلها مفيدة في السياق، لكن أعطني Smalltalk أو أعطني... حسنًا، ربما يجب أن أتعلم Lisp أو Scheme أو...:-)

حديث قصير:يقوم الأشخاص بإعادة توجيه ifTrue:[فكر] إذا كان خطأ:[لا تفكر]

روبي:يفكر الناس إلى الأمام ما لم يفكروا إلى الوراء

1) إن تدفق التحكم عبر الرسائل الشبيه بـ RPN الخاص بـ Smalltalk يشبه Lisp - إنه منتظم ورائع ولكنه غريب الناس.

2) يتيح روبي للأشخاص كتابة التعليمات البرمجية باستخدام الطريقة الاصطلاحية التي يتحدث بها الناس - بلاه إلا إذا هناك سبب لعدم القيام بذلك.

تحديث أعد كتابة نموذج Smalltalk ليكون في الواقع رمزًا قانونيًا أكثر.

روبي هي اللغة الطنانة الحالية.من الأسهل تسويق البرامج المبنية عليها الآن مقارنة باللغة التي تم تطويرها في السبعينيات.

مجتمع!تتمتع روبي وخاصة ريلز بمجتمع رائع.عند العبث بالمحادثات الصغيرة، بدا أنه لم يكن هناك عدد كبير من لقطات الشاشة، والمقالات، ومشاركات المدونات، وما إلى ذلك.كتب عن Smalltalk.

لقد أجبت على السؤال في السطر الأول:"روبي أصبحت شعبية"

  • هناك كثير من الوحدات والمشاريع المثيرة للاهتمام وما شابه ذلك والتي تتمحور حول روبي.
  • إذا كنت تواجه مشكلة في القيام بشيء ما في روبي، فسيكون من السهل العثور على المساعدة في مكان ما.
  • تم تثبيت روبي على كثير من أجهزة الكمبيوتر الآن (يتم تضمينه افتراضيًا في نظام التشغيل OS X، والعديد من توزيعات Linux، وهناك أدوات تثبيت جيدة لنظام التشغيل Windows) - لم أر برنامج Smalltalk مثبتًا افتراضيًا على أي جهاز استخدمته..

أود أن أقول إن ما إذا كانت لغة ما تتفوق على لغة أخرى أم لا، فهذا أمر غير ذي صلة.على سبيل المثال، قد لا تكون لغة PHP هي اللغة "الأفضل" على الإطلاق، لكنني ما زلت أفكر في استخدامها بدلاً من Ruby on Rails (أداة "أفضل" لإنشاء مواقع الويب) لأنها منتشرة على نطاق واسع.

في الأساس، تعتبر إيجابيات وسلبيات اللغة أقل أهمية بكثير من كل ما يحيط بها - أي المجتمع.

تعتبر روبي (أو أي لغة أخرى) أكثر شيوعًا من Smalltalk (أو أي لغة أخرى) لأننا نعيش في عالم فوضوي.لخفة الظل:

  • من ديف توماس نفسه ، [بعد] مقطع الفيديو حول" كيفية بناء مدونة في عشر دقائق "...انتقلت روبي من كونها لغة متخصصة لطيفة ، إلى أن تكون "لغة كتبت فيها تطبيقات Rails في" ("(Ruby Conference 2010 Keynote).
  • قام بائعو Smalltalk الأوائل بتحصيل رسوم باهظة
  • الحديث الصغير، لأنه تم اختراعه (سابق لعصره) قبل 30 عامًا، يخطر لدى الكثيرين كلغة قديمة "ميتة" (مثل لغة فورتران)
  • تعتبر الشركات Smalltalk ميزة تنافسية تجعلها يخفون استخدامه

في حين أن اللغات متشابهة في ميزات OO، فإن Smalltalk's القاتل الميزة هي البيئة الحية المفتوحة ("الصورة" التي أسيء فهمها كثيرًا).بعد أن تقوم بالخروج هذا المثال للبرمجة في Smalltalk, ، انتهى النقاش.

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

Smalltalk رائع - حيث تعلمت مفاهيم OO، ولكن لسهولة الاستخدام اخترت Ruby.يمكنني كتابة كود روبي في المحرر المفضل لدي وتشغيله من سطر الأوامر.

لذا، بالنسبة لي، هذا هو ما أختاره روبي بدلاً من Smalltalk.

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

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

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

لأن توزيعات Smalltalk تم تسعيرها بمضاعفات 1000 دولار أمريكي، في حين أن روبي مجانية.

روبي بالنسبة لـ Smalltalk مثل الأرقام العربية بالنسبة للأرقام الرومانية.نفس الرياضيات، وبناء الجملة أسهل.

لقد أجريت القليل من Smalltalk - IDE هو شيء واحد أتذكره - هل تتمتع روبي بدعم IDE جيد؟

استخدم Ruby لأنه قد يكون له أرجل عمل، لكن Smalltalk لا يفعل ذلك.

أستطيع أن أقول لك من تجربة شخصية.لا أزال أستخدم Smalltalk، وأحبه، واستخدمت نكهتين.على الرغم من أن Smalltalk هي لغة رائعة، وهي كل ما ذكرته، فمن غير المحتمل أن تقنع مدير تكنولوجيا المعلومات/CTO العادي باستخدام Smalltalk في مشروع جديد.بالطبع، قد تجد صعوبة في إقناع مدير تكنولوجيا المعلومات/الرئيس التنفيذي للتكنولوجيا المحافظ باستخدام روبي.في النهاية، عليك أن تكون حذرًا للغاية إذا كنت تريد دعمًا تجاريًا مستدامًا على المدى الطويل والقدرة على العثور على موظفين خارج الشارع يمكنهم دعم أنظمتك في المستقبل.على سبيل المثال، كان Smalltalk شيئًا كبيرًا حقًا في أوائل التسعينيات واستثمرت شركة IBM فيه بكثافة في أواخر التسعينيات.بالنسبة لشركة IBM Smalltalk، ستكون اللغة التالية لجميع تطبيقات الأعمال.قامت شركة IBM بوضع Smalltalk في كل شيء بما في ذلك أنظمة الحواسيب المركزية الخاصة بها.أصبحت Java شائعة، واستحوذت على السوق، وأصبح Smalltalk لاعبًا متخصصًا.منذ أكثر من عام، تخلت شركة IBM عن اللغة (مصطلحها هو غروب الشمس).أيضا، إلقاء نظرة على التاريخ.ParkPlace وDigitalk حيث كانا أول اللاعبين التجاريين الرئيسيين في ساحة Smalltalk، اندمجا ثم توقفا عن العمل.

أنا أحب كلاً من Smalltalk وRuby - لكنني وجدت أن Ruby أكثر قابلية للتطبيق على ما أفعله يوميًا، وهو أقرب إلى قلبي (من الناحية العملية).ما الذي تقدمه روبي ولا يقدمه Smalltalk؟

  • البرمجة النصية القائمة على النص
  • متطلبات تنفيذ منخفضة (يعمل في أماكن أكثر)
  • أسهل في التعلم والتبرير (سيكون لدى مبرمجي Perl وPython لا مشكلة
  • أسهل لتحريك البرامج - الملفات النصية!
  • واجهات جيدة مع البيئة الأصلية
  • في أي مكان يتم تشغيل Java، يتم تشغيل jRuby...
  • مجتمع أكبر وأكثر نشاطا

وقد ذكر البعض gst (GNU Smalltalk)؛المشاكل لا تزال قائمة.

استخدم كل ما يجعلك أكثر قوة وأسرع للتغلب على التحدي الذي تواجهه.

ل نحن, ، إطار داخلي صغير، بنيناه على سطح البحر هو حقًا قوتنا العظمى.

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

يمكنك إنشاء تطبيقات ويب رائعة على شاطئ البحر باستخدام عناصر مفتوحة المصدر.

كان dabbledb عبارة عن سارتوب يعتمد على شاطئ البحر، مهلا!لقد باعها آفي إلى تويتر في يونيو من هذا العام!

أقول أنك لا تحتاج إلى الانتظار حتى يوافق الآخرون على مبادرتك.

فقط اعمل لتحقيقها.افعلها.تبين لنا أن هذا يعمل.

انت لست وحدك.نحن على نفس القارب.

منظور مثير للاهتمام من روبرت مارتن (من RailsConf 2009): "ما قتل Smalltalk يمكن أن يقتل روبي أيضًا"

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

هنا هو برنامج تعليمي مرحبا بالعالم.

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

من المؤكد أن هناك تكلفة أعلى لإنجاز الأمور مقارنة بمعظم اللغات الأخرى.

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

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

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

سأذهب إلى أبعد من إجابة جونكي، وأقول أن هناك الآن عددًا كبيرًا من اللغات التي تتمتع بمجتمع قوي جدًا، بما يكفي تقريبًا لتناسب كل الأذواق، ومجموعة فرعية من هذه اللغات تتمتع باعتراف سائد (على سبيل المثال، لغات أخرى).سيسمح لك مديرك باستخدامها في العمل أيضًا).

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

بالنظر إلى هذه الأشياء، من الصعب تبرير قضاء الكثير من الوقت في تعلم لغات مثل LISP وSmalltalk، على الرغم من أنها مثيرة للاهتمام وربما تعليمية للنظر إليها.

باعتبارك متأخرًا في المناقشة، فإن المشكلة الرئيسية في Smalltalk وLisp هي أنه لا يمكنك تشغيلهما باستخدام CGI أو FastCGI على الاستضافة المشتركة.

لن تستخدمها الجماهير غير المغسولة أبدًا إذا كانت بحاجة إلى VPS أو خوادم مخصصة لاستخدامها.يتفوق IMHO Seaside على أي شيء آخر تقريبًا، ولكن هل سيتم تشغيله على Dreamhost أو Webfaction؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top