English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مقدمة إلى Scala

Scala اختصار لـ Scalable Language، وهي لغة برمجة متعددة الأنماط

بدأ Martin Odersky من معهد الفيزياء والتكنولوجيا في لوزان (EPFL) في تصميم Scala في عام 2001 بناءً على عمل Funnel.

Funnel هو لغة برمجة تجمع بين أفكار البرمجة الوظيفية وPetri nets.

عمل Odersky السابق كان Generic Java وjavac (مكتبة Sun Java compiler). تم إصدار Scala للمنصة Java في نهاية عام 2003 أو بداية عام 2004. تم إصدار Scala للمنصة .NET في يونيو 2004. تم إصدار النسخة الثانية من اللغة، v2.0، في مارس 2006.

حتى سبتمبر 2009، كان الإصدار الأحدث هو الإصدار 2.7.6. تتضمن الميزات المتوقعة للإصدار 2.8 إعادة كتابة مكتبة Scala (Scala collections library)، واسماء المعلمات النمطية والمعلمات الافتراضية، وكتل الحزم (package object)، وContinuation.

في أبريل 2009، أعلنت Twitter أنها قد نقلت معظم برمجياتها الخلفية من Ruby إلى Scala، وسيتم أيضًا نقل البقية. بالإضافة إلى ذلك، أعلنت Wattzon بشكل علني أن جميع منصاتها مكتوبة على بنية تحتية Scala.

خصائص Scala

خصائص موجهة للأتمتة

Scala لغة موجهة للأتمتة بشكل كامل، كل قيمة هي كائن. يتم وصف نوع البيانات والسلوك للكائنات من قبل الفئات والخصائص.

هناك طريقتان لتمديد ميكانيكية التجميع: الطريقة الأولى هي وراثة الفرعية، والطريقة الثانية هي ميكانيكية التضمين المرونة. يمكن لهذه الطرق تجنب مشاكل وراثة متعددة.

برمجة وظيفية

Scala أيضًا لغة تقنية تقوم بالتحويل بين الأنماط، يمكن استخدام وظائفها أيضًا كقيم. يقدم Scala جملة بسيطة لتعريف الوظائف المجهولة، يدعم الوظائف العليا، يسمح بالتداخل في الطبقات المتعددة من الوظائف، ودعم الكوريزي. تشبه الكلاسات الحالة والأنماط المدمجة في Scala أنماطًا حسابية مستخدمة بشكل شائع في لغات البرمجة الوظيفية.

بشكل أعمق، يمكن للمبرمجين استخدام مطابقة الأنماط في Scala لإنشاء كود يشبه تعبيرات النصوص العادية لمعالجة بيانات XML.

النوع الثابت

يحتوي Scala على نظام أنواع، حيث يضمن التحقق عند التجميع أمان وتناسق الكود. يدعم نظام الأنواع الميزات التالية:

  • الأنواع الجماعية

  • التوافق والانقلاب

  • التعليقات

  • قيود الحدود للمعلمات النوعية

  • استخدام الفئات والأنواع التجريدية كأعضاء في الكائن

  • الأنواع المركبة

  • تحديد النوع بوضوح عند الاستدلال على الذات

  • الرؤية

  • الأساليب المتعددة

التحسين

يتبني تصميم Scala مبدأً يفترض أن تطوير تطبيقات معينة في مجال معين غالبًا ما يتطلب توسيعًا لغة معينًا. يقدم Scala العديد من آليات اللغة الفريدة التي يمكن إضافة بنية لغة جديدة بسهولة ك مكتبة:

  • يمكن استخدام أي طريقة كعمليات إضافية أو ناقصية

  • يمكن بناء القفص تلقائيًا بناءً على النوع المتوقع.

التكاملية

يستخدم Scala Actor كنموذج تكامل، حيث هو كائن مشابه للسطر، يرسل ويعمل على الرسائل عبر البريد الإلكتروني. يمكن للـ Actor إعادة استخدام السطر، لذا يمكن استخدام ملايين Actor في البرنامج، بينما يمكن إنشاء آلاف السطور فقط. يستخدم Akka كتحقيق افتراضي للـ Actor في إصدارات 2.10 وما بعدها.

من يستخدم Scala

  • في أبريل 2009، أعلنت Twitter أنها قد نقلت معظم برمجياتها الخلفية من Ruby إلى Scala، وخططت أيضًا لنقل باقي البرمجيات.

  • بالإضافة إلى ذلك، أعلنت Wattzon بشكل علني أن كل منصةها مكتوبة بالكامل باستخدام بنية تحتية Scala.

  • استخدمت مجموعة UBS Scala في المنتجات العامة.

  • استخدم Coursera Scala كلغة خادم.

إطارات Scala Web

إليك قائمة بـ 3 إطارات تطبيقات الويب الشائعة لـ Scala حاليًا: