ما هي اللغة الوظيفية الجيدة لبناء خدمة الويب؟[مغلق]

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

سؤال

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

هل من الممكن إنشاء خدمة ويب باستخدام Haskell، أو ML، أو أي من اللغات الوظيفية التقليدية الأخرى، أم أنه من الأفضل استخدام Scala أو F#؟أي اقتراحات أخرى؟

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

المحلول

إذا كان .NET خيارًا للمنصة، فلا تستبعد F# بسبب حداثته.مع اقترابه من أن يصبح منتجًا رسميًا، فإنه يتكامل بشكل أفضل مع Visual Studio ويرث كل المزايا التي يوفرها .NET.

هناك أيضًا دعم نشط ويمكن الوصول إليه من قبل كل من Microsoft والمجتمع المتحمس.

نصائح أخرى

لقد أكمل أوكسيجين/إليوم...لا أستطيع أن أقول أنني استخدمته، رغم ذلك.وهي أيضًا في مراحلها الأولى.

إرلانج، مع الداء العليقي.إنها لغة ممتعة وقوية وتتدرج بشكل ملحوظ وتجعل استخدام 100 أو 1000 عملية آمنًا وسهلاً.و المتعه.

(أعتقد أيضًا أنها جميلة.)

هاسكل:

ألقِ نظرة على هذا السؤال:ما هي أبسط طريقة لكتابة تطبيقات الويب في هاسكل؟

أساسًا، غسل, هابس و مزدوج الوجه هم الثلاثة الكبار في هاسكل في الوقت الراهن.تصويتي لصالح HAppS الذي لديه الأفضل درس تعليمي في اللحظة.

يوجد ايضا HSP لكنني لم أنظر إليه أو أفكر فيه مؤخرًا.

يرجى قراءة هذه المقدمة على F# و ASP.NET والتي سوف تعطيك بداية جيدة.

هناك العديد من الأمثلة على الويب التي يتم فيها استخدام F# في تطبيقات الويب.واحد منهم على سبيل المثال الإكمال التلقائي لتوماس بيتريسيك الذي بناه كتطبيق توضيحي لمقالته "أدوات الويب F#:أصبحت تطبيقات Ajax بسيطة".لقد استخدمت F# كجزء من خدمة ويب بنفسي أيضًا وأضمن لك أنها تعمل بشكل جيد :).

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

تنصل:لا ينتمي إلى ARC أو بول جراهام

تم بناء Reddit على lisp، أليس كذلك؟و يتحدث بول جراهام بدرجة عالية جدًا من خفة الحركة، وخاصة مع تطبيقات الويب.

قد تفكر في Clojure - إنها لغة جديدة جدًا، ولكنها تبدو واعدة جدًا للتطبيقات المتزامنة القابلة للتطوير وتتمتع بميزة تكامل JVM الجيد جدًا والوصول إلى جميع مكتبات Java (تمامًا مثل Scala).

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

على الرغم من أنني لا أستطيع أن أوصي به لأنني لا أزال ألعب به، إلا أن Erlang قوي جدًا.

يجب أن أتفق مع التوصية بـ Clojure.لقد انتهيت للتو من اختبار التحميل لـ a خدمة موجز الأخبار مكتوبة بلغة Clojure والتي حافظت على 80 منشورًا للنشاط الصادر في الثانية لكل خادم ويب Clojure يعمل على مثيل m1.medium EC2.

يحتوي الجيل السابق من اللغات الوظيفية على أدوات مثل Ocsigen (لـ OCaml) وHApps (لـ Haskell) ولكن ليس لديهم أي مستخدمين تقريبًا:فهي برامج لم يتم اختبارها بالكامل.

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

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