لماذا Clojure أكثر من غيرها من JVM اللثغ:كاوا المسلحة الدب أو هيئة رقابة التأمين?

StackOverflow https://stackoverflow.com/questions/1413390

  •  06-07-2019
  •  | 
  •  

سؤال

JVM بالفعل ثلاثة اللثغ قبل Clojure وصل على الساحة: كاوا, المسلحة الدب و هيئة رقابة التأمين.

ما الفجوة Clojure ملء أن تبقى تلك اللثغ?

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

المحلول

كاوا ، ABCL و هيئة رقابة التأمين هي reimplementations من اللغات الحالية التي هي طويلة جدا في السن.فهي ممتازة إذا كان لسبب ما كنت تريد استخدام معيار خطة أو معيار Common Lisp على JVM.

Clojure هو جديد اللغة.لا تملأ الفجوة.وتضيف تماما إمكانيات جديدة.انها تفضل محض النهج الوظيفي - مخطط CL كلاهما متعدد النموذج.Clojure تقترض بكثافة من تصميم مختلف FP اللغات (مل ، هاسكل).

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

الناس يقولون أن ج يتيح لك كتابة سريعة البرامج بشكل افتراضي.

حسنا, Clojure يتيح لك الكتابة المتزامنة البرامج بشكل افتراضي.

نصائح أخرى

  1. "Clojure هو اللثغة لا يعوق التوافق" (هذا من Clojure الموقع).إنها بداية جديدة.إنه تقدم.استخدام الأفكار التي تجعل اللثغة/مخطط قوية ولكن التفكير حول لهم جافا منصة.

  2. Clojure سوف يكون دائما أحدث Clojure.مع أي لغة أخرى استدار إلى JVM ، JVM الإصدار قد يكون دائما يلعب اللحاق بالركب.إذا كنت لا تحتاج إلى منصة جافا لماذا استخدام هيئة رقابة التأمين على آخر مخطط ؟ إذا كنت تفعل, لماذا لا تستخدم واحد يسب (Clojure) التي تم تصميمها خصيصا من أجل ذلك ؟

  3. مصممة مع التزامن في الاعتبار.

أبسط الجواب لا يمكن أن تأتي مع Clojure ليست شائعة-اللثغة.Clojure ليست مقيدة تاريخ آخر اللثغ.وهو جديد اللغة بنيت بالنسبة JVM.

أنا ببساطة لم يكن على بينة من تلك التي هي خطيرة فائدة Clojure (أن الناس ما يكفي من الضجيج وجدت).أهم شيء Clojure له أنني لم أرى في تلك يمكنك سرد برنامج المعاملات الذاكرة.

Clojure كانت أيضا مصممة JVM, بدلا من كونها طبقة لغة أخرى ، لذلك فمن قليلا أكثر "جافا-y" أن أتصور أن الآخرين سوف تكون عندما يكون لديك للقيام التشغيل البيني.

الأساس المنطقي الصفحة على clojure.org الدول:

لماذا أنا أكتب آخر البرمجة اللغة ؟ في الأساس لأنني أردت:

  • ثغة
  • عن البرمجة الوظيفية
  • التكافلية مع منصة
  • مصممة التزامن

و لا يمكن العثور على واحد.

هل 3 اللغات التي ذكرتها (كاوا ، ABCL و هيئة رقابة التأمين) تلبية هذه المتطلبات ؟ وهم:

  • اللثغ (إما CL أو مخطط اللهجات) ✓
  • عن البرمجة الوظيفية ✓
  • التكافلية مع إنشاء منصة (JVM) ✓

ولكنها ليست تصميم ل (STM) التزامن;ومع ذلك ، أن تكون عادلة وكاملة ، هناك على الأقل 2 STM المكتبات وجدت CL التي لم يتم ذكرها:

  1. STMX
    • اختبار العمل على ABCL.قيد التطوير النشط.
  2. CL-STM
    • ميت ؟ التغيير الأخير كان في عام 2007.

همم...إذن لماذا خلق جديد Lisp ؟ أساسا لأن هذه هي المكتبات.الأساس المنطقي الصفحة على clojure.org لا تزال (التشديد مضاف):

ماذا عن مستوى اللثغ (Common Lisp و مخطط)?

  • بطيئة/لا الابتكار بعد التوحيد
  • البيانات الأساسية هياكل قابلة للتغيير ، وليس الموسعة
  • لا التزامن في المواصفات
  • جيدة تطبيقات موجودة بالفعل على JVM (ABCL, كاوا ، هيئة رقابة التأمين وآخرون)
  • معيار اللثغ هي منصات خاصة بهم

وهو اللغة التزامن التصميم المشكلة كما ذكر آخرون.

وعلاوة على ذلك, لماذا يتوقف JVM? Clojure CLR الدعم هو قيد التطوير النشط.

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

إذا كنت ساخر, أقول هذا لأن Clojure لديه أجمل موقع و أكثر جنسية اسم.

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

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

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

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

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

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

لا يجب أن يكون أكثر واحد يجيب (و لا أتوقع الأصوات على هذا واحد), ولكن هنا بعض التحسينات الصغيرة إلى عدة إجابات أخرى.

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

أنا أحب Common Lisp.جزء من جمالها هو الغرابة ، الذي يأتي من حقيقة أنه تم تصميمه من قبل اللجان بهدف التوافق على عدة تتعارض اللهجات.

أنا أحب هذا المخطط.انها جميلة, أنيقة اللغة.ومع تطورها يعتمد على اللجان ، وربما أن قد أبطأت عليه في بعض الأحيان.في أي حال, أهدافها تختلف عن Clojure هو.

Common Lisp و مخطط لها تأكيدات مثل ذيل العودية التي ليست مناسبة تماما الكفاءة على JVM.Clojure تم تصميمه من البداية إلى خريطة جيدا على JVM ، تبادليا (إلى حد ما) مع جافا.(لست متأكدا ما يعنيه ذلك عن Clojurescript و CLR اللهجات.)

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

ومع ذلك ، هذه هي النقطة المهمة:هيكي تصميم لغة مدروسة, أنيقة, و ذلك من بداية تضمنت منهجية ذات الصلة مجموعة من الوظائف التي تجعل من السهل أن تفعل الكثير مع القليل.أن يذهب الأساسية JVM interop فضلا عن بقية اللغات.الناس الذين التحكم Clojure تستمر في أن تكون صارمة حول التمسك لغة أهداف حتى الآن.

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

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

لا شيء من هذا هو المقصود من القول بأن Clojure أفضل من Common Lisp أو النظام ؛ انها ليست.ثلاث لغات مختلفة الفضائل.

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

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

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