سوف يكون هناك لغة وظيفية والتي لا جافا مجتمع ما و# لا .صافي المجتمع ؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

سوف يكون هناك لغة وظيفية والتي لا جافا مجتمع ما و# لا .صافي المجتمع ؟

ما لغات البرمجة الوظيفية المتاحة ، أو في التنمية ، JVM?

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

المحلول

كلوجر . انها ليست كتبته بشكل ثابت، لكنه لا يملك أكثر من التركيز على ثبات والتزامن من F #. ومع ذلك، مثل F # (وعلى عكس الشائع اللثغة)، والمقصود أن تكون لغة وظيفية في المقام الأول ما هو جيد في المستهلكة المكتبات OO من المنصة الأساسية.

نصائح أخرى

سكالا ستكون لغة.

وعلى الرغم من عدم وظيفية بدقة (انها مزيج من ظيفية وجوه المنحى) وليس حصرا لجافا (هناك <لأ href = "http://www.scala-lang.org/node/168" يختلط = "noreferrer">. NET نسخة من سكالا )، من شأنه أن يكون أقرب التناظرية إلى F # في JVM.

الشيء الأول الذي جاء الى ذهني سكالا ولكن في الحقيقة Ocaml-جافا يأتي أقرب F# هو البديل من Ocaml.انظر هذا المنصب الذي يقارن Ocaml-جافا سكالا:

OCaml المبرمجين عادة أكثر من 10 أضعاف الإنتاجية مثل Java أو C++ المبرمجين لمجموعة واسعة من المهام العملية.على الرغم من كونها تستند إلى الأساس OOP منصة, F# يقطع شوطا طويلا لالتقاط الإنتاجية تعزيز فوائد OCaml (كل مل الأسرة).في المقابل ، سكالا فشل في التقاط العديد من المزايا بما في ذلك بعض الحقيقة الأساسية منها ، وبالتالي كتابة الكود الصحيح هو أكثر صعوبة في سكالا في أي مل.

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

الآن أود أن أقول سكالا.ولكن في المستقبل أود إلقاء نظرة على القلعة.أول تنفيذ المواصفات صدر في 1 أبريل 2008.و هذا ليس مزحة.الرئيسية featues هي:

  • كتابتها بشكل ثابت ، ولكن الكثير من نوع الاستدلال لتجنب الفوضى
  • Unicode و 2d التقديم الدوال الرياضية
  • مصممة التنفيذ المتوازي (لكل التخلف إلى ذلك)
  • الدعم القوي مكتبات مخصصة (الرجل ستيل التأثير)
  • عامل الحمولة الزائدة ، بما في ذلك تجاور المشغل

مزيد من المعلومات في مشروع القلعة على موقع مجتمع و ويكيبيديا القلعة الصفحة.

يمكن القول إن لا شيء لأن JVM يفتقر إلى الذيل المكالمات كانت مطلوبة لجعل تقريبا كل رمز وظيفي قوي فيما يتعلق كومة الاستهلاك.

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

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

الهتافات ، جون هاروب.

هناك قائمة جيدة من لغات البرمجة على JVM ، بما في ذلك نمط برمجة وظيفية وغيرها من النموذج اللغات على:

  • en.wikipedia.org/wiki/List_of_JVM_languages

اول اختيار هو سكالا (multi-نموذج;OO & FP) ، قضيت 5 أشهر+ دراسة سكالا في عام 2009 ، وخلق مرجعية سريعة ورقة:bchiprog.blogspot.com/2009/05/scala-cheat-sheet.html

لاحظت أن هناك نماذج البرمجة التي هي مثيرة للاهتمام الأخرى تركز على المعالجة المتوازية مثل X10, القلعة, و مصلى.X10 يتم تنفيذها على أعلى سكالا - http://www.scala-lang.org/sites/default/files/odersky/scalaliftoff2009.pdf

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

وتستخدم اللغات الوظيفية على نحو متزايد في الشجاعة النظم المالية للشركات الصف -

وMarc Gravell. نحن نستخدم العديد ظيفية (نقية أو "شبه نقية") في البنك أعمل ...

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

في الواقع, قد أكون مخطئا, ولكن لا أتوقع F# أن تكون السائدة الأخرى .صافي اللغات ؛ مفيدة في بعض الدوائر (الأكاديمية المجمعين ، عدد قليل من السيناريوهات الأخرى) - ومع ذلك لا تنسى أن C# يقدم FP الاستخدام وأنها تحصل على أفضل في كل مرة:C# 1.2 لديها مندوبون ؛ C# 2.0 مجهول أساليب يلتقط/الإغلاق;C# 3.0 وقد lambdas عن البساطة ، والتعبير عن التجريد.مجهول أنواع (C# 3.0) حصة بعض التشابه مع الصفوف (من حيث الراحة) ، ولكن من الواضح جدا من الوحوش المختلفة, لذلك بالتأكيد ليس مثل -- مثل المقارنة.

ربما ليس تماما كما الأمثل و# لكن في الغالب من يوم إلى يوم FP حالات الاستخدام أكثر من كافية.

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

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

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