تحديث جديد للغة منشئ المواقع (SMPL)

كتبنا سابقاً عن لغة منشئ المواقع “SMPL” والتي يعمل عليها “عمر خطاب”، أصدر عمر نسخة جديدة للغة بعدد كبير من التحسينات بعد اطلاعه على تعليقات وآراء مستخدميها في التدوينة السابقة في عالم التقنية، النسخة الجديدة 0.3 للغة احتوت على عدد كبير من التحسينات كتب عنها وعرفها عمر:

لغة برمجة منشئ المواقع (SMPL) هي لغة برمجة ويب جديدة صغيرة الحجم، مجانية و مفتوحة المصدر، صممت لتضفي على البرمجة للويب مزيجًا من البساطة و النظام و المرونة..

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

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

  • الـStrong-Typing: و هذه ميزة أساسية، اللغة لا تحول بين أنواع البيانات بشكل ضمني و آلي، لمنع خروج أي نتائج غير متوقعة. فعند محاولة الجمع بين نص ورقم مثلًا يخرج خطأ بدلًا من محاولة التخمين بعشوائية!
  • تغييرات عديدة في قواعد اللغة النحوية، و الاهتمام بنقطة النظام و الترتيب في اللغة دون خسارة البساطة و المرونة. فهذا الإصدار موجه للمبرمجين الفعليين حقًا و يسهل عليهم الكثير و يوفر لهم نظامًا أفضل، بالاضافة إلى المبرمجين الجدد.
  • تحسين رسائل الأخطاء بشكل ملحوظ للغاية، و تسهيلات عملية اكتشاف الأخطاء و المشاكل و إصلاحهما (عملية الـDebugging).
  • تحسين الدوال، و إضافة عشرات الدوال الجديدة من مختلف الأنواع. و محاولة جمع مختلف الدوال ذات الوظائف المتشابهة في دالة واحدة، لتبسيط عملية  البرمجة و تنظيمها..
  • قواعد بيانات ArraysDB: و هذه كذلك من الميزات الأساسية، و هي قواعد بيانات من نوع مختلف تمامًا، لا يمكنني وصفها هنا، لكنها تقدم لك ما تحتاج من الوظائف من بحث و ترتيب و إدخال، بسهولة كبيرة جدًا و نظام رائع و سرعة جيدة و دون SQL، فهي تقوم بكل شيء عبر مجموعة من الدوال البسيطة بالاضافة إلى دوال المصفوفات العادية!! و بالتالي ليس هناك SQL Injection أيضًا..
  • اعتماد اللغة على نفسها لتحديد نتائج العمليات الحسابية و المقارنات، و إضافة خصائص عديدة للغة.
لمعرفة معلومات أكثر عن هذه اللغة والاطلاع على نتائج لها: http://smpl-lang.com/is_smpl_a_language.smpl
  • ,!

    ,!!مافهمت

  • أحيي صاحب المشروع على إصراره على تطوير اللغة ، وهنا ملاحظات :

    أولاً : مع أني من أشد الداعمين للمشاريع العربية ، ولكن مالحاجة لتعلم لغة جديدة ؟ إلى الآن لم أقتنع

    ثانياً : بالنسبة لقواعد البيانات إذا لم تستطع شرحها هنا كيف تريد أن ينتقل الناس لها ؟ ثم على أي أساس حكمت أنها أفضل من sql ، هل هناك مقارنة بين أداءهما على قواعد بيانات كبيرة ؟

    تمنياتي لك بالتوفيق

    • MohamedIBrahim

      اولا أحب أحيي جميع زوار واعضاء الموقع الكرام بالطبع اولا احب ان اخبر الجميع انني من اشد المعجبين باللغة رغم انني لا استخدمها الا للتجربة فقط لانني اساسا نادرا ما ان طورت موقعا بسيطا لكن عملي (ما زلت تحت الدراسة) هو تطوير هذه اللغات وانظمتها هناك اسباب كثيرة لاعجابي باللغة
      1- مشروع واعد وصاعد (بعيدا عن القومية والدين والعروبة)
      2- اللغة لها فكرة جديدة وهي ليست متمثلة فى اعتمادها على PHP فلو تكرم الاخوة الكرام على الاقل بالقراءة عن مصطلح Language Based On
      لوجدوا ان مثلا لغات مثل Jpythonو Jruby انها نفس Java والكود خاصتها يتحول لByte-Code الشهيرة لجافا JVM فان فى هذه الحالة فانها تسمي دينماكية التحويل فى الترجمة (التفسير) من Syntax الى VM وبالمناسبة العديد من اللغات بدأت هكذا ثم بدأت بالاستقلالية الكاملة واشهر مثال فى نفس عائلة JAVA لغة شهيرة اخري Scala والتي كانت مثل Jruby وغيرها لكن بدأت بالاستقلال الديناميكي
      3- الافكار التي يمكن تطبيقها فى لغة تعتمد على PHP محدودة لذا فانا اود من الاخ الكريم عمر تغيير الديناميكية لكن بنفس الوقت فان المشكلة هي فى خيار الانتشارية فتصميم لغات البرمجة هو مجموعة من القرارات الصعبة ف Langauge Designer يختلف كثيرا عن Compiler Hacker فمثلا فى حالة هذه اللغة فان الاستقلالية تم الاستغناء عنها مقابل الانتشار وهذا فى البداية لظروف الاستخدام والاستعمال خاصة فى وسط جاهل نسبيا بلغات البرمجة وأنواعها بالاخص (بتوسع وهذا ليس احتقارا للمجتمع العربي بالطبع لكنه الواقع) لكن فى المستقبل قد يأتي اصدار بالاستقلالية مع الانتشار وخاصة انه سيكون هناك انتشارا مسبقا (او هكذا يرجي) فسيكون الوضع اكثر ملائمة لتصبح للغة مستقلة فى عملية الترجمة (علما بانه حسب مراجعتي والتجربة هي مستقلة نحويا وبرمجيا) فمثلا يتم اصدار برمجيات خاصة لدعم اللغة علي Servers أو قد يتطور مثلا مفهوم وتكنلوجيا Cloud Computing فيما يصب مصلحة لغة منشئ المواقع فيكون هناك مثلا امكانية لتشغيل برمجيات على السيرفر بالنسبة للمستحدمين وان كان مثلا بموافقة المالك …..الخ من الافكار التي قد يتطور العالم لها يجب ان نلقي نظرة مستقبلية على المشروع أكثر يا شباب وهي قاعدة نفتقر لها كثيرا


      وهناك العديد من الاسباب بالنسبة لي شخصيا سردها سيطول ولن يكون مفيدا

      تعليقا علي كلام الاخ عبد الله عيد فانت وقعت فى عدة اخطاء منها

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

      – الخطأ الثاني الفائدة كبيرة جدا من تعلم لغات جديدة دعك من لغة SMPL لكن تعلم لغات برمجة جديدة خصوصا التي تدعم افكار جديدة او انماط برمجة جديدة مهمة جدا جدا فمثلا انا اري ورسمت لنفسي طريقا بتعلم انماط برمجة متعددة مثل Agent Programming و OOP و Functional و Proceduralو Flow-based , Logic و Generic و Imperative و Metaprogramming و Semantic و Class-based ……الخ على الاقل لتنمية العقل البرمجي وفهم افضل للبرمجة
      وهذا ليس ضروريا بالنسبة للعديد من اسواق عمل تطوير التطبيقات ومنها الاجنبي والعربي
      لكن تعلم لغة جديدة مثل SMPL يفيد جدا
      – بناء التطبيقات بشكل اسهل وان كان الامر نسبي حتي الان بسبب عدم توافر مجتمع مستخدم للغة يدعمها بشكل قوي
      – مشروعا مستمرا قد يتم تطويره وتحسين مفهوم برمجة المواقع مستقبلا (لم لا ننظر الي ناحية اكثر ايجابية نعم يمكن لهذا المشروع بطموحاته ان يصل لمرحلة عالية من التأثير علي مفهوم البرمجة نفسه)
      – هناك العديد من الاسباب لكن البساطة والسهولة على الاقل من وجهة نظري هما الدافع الاساسي بالطبع سيأتي احدهم ويقول لما سيتعلم اللغة واحد خبير ويهتم به سأقول له بان من تتكلم عليه ليس خبيرا فالخبير والمبرمج المحترف ليس فقط من يقوم بكتابة مواقع او تطبيقات حتي بشكل جيد او ممتاز لكنه ملما وخبيرا بثقافة عامة حول علوم الحاسب والبرمجة ولغاتها ….. الخ وبالتأكيد سيسعي لتطوير مهاراته واكتساب الجديد منها ومتابعة كل تطور وكل فكرة لعلها تكون سببا فى انفراجة كبيرة فى عمله مثلا
      المبرمج الخبير والمحترف يجب ان يساهم فى مشاريع مثل هذه وان لم تكن منشئ المواقع لان الامر ليس تحدي بين العروبة والافرنجة
      فمثلا انا كتبت وناقشت العديد من الاشخاص فى اكثر من مجتمع برمجة اجنبي ولاقت اهتمام العديد من المبرمجين وكانت هناك منهم اقتراحات عديدة
      واذا كانت اللغة من تطوير اجنبي او قادمة كخبر من الاجانب لكان العديد قد مال قلبه ناحيتها وتغيرت فكرته بسبب عقدة الخواجة الازلية التي ما زالت فينا وطبعا استثني من هذا من رحم ربي لكن لنكون صريحين هذه هي الحقيقة

      – الخطأ الثالث هو انك تقارن بين محرك قواعد بيانات وبين SQL فهذا محرك قواعد بيانات وهذه لغة قياسية للتواصل يبني عليها محركات بيانات عديدة واشهرها طبعا والذي يعلمه الكل MYSQL
      معذرة على الاطالة

      والله ولي التوفيق

      • أتفق معك في العديد من النقاط أخوي محمد إبراهيم وبخصوص ميزة ArraysDB أظن أن من الخطأ الكبير مقارنتها بالـ SQL فشتان بينهما لذا أرجوا من الأخ عمر الخطاب التنبه إلى هذه النقطة أكثر .

      • السلام عليكم.. أولًا أشكر أخي محمد إبراهيم على دعمه الكبير لي و للغة، و أشكر جميع الإخوة على النقد و الاقتراحات.

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

        شكرًا..

    • السلام عليكم.. مرحبًا أخي الكريم عبدالله عبيد.

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

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

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

      شكرًا.

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

  • مستر شورما

    انا مش فاهم شو الفايدة !!
    يعني بدل echo اعملت show ؟؟؟

    اخي مش هيك الشغل يعني انت بضيع وقتك هيك !!
    انا لما قريت بعض الكلام إلي كاتبه كان مليان اخطاء يعني مثلاً تحكي عن dart وتقول انها هي لغة للتحول للجافاسكربت كلامك خاطئ ولكن قوقل عملت مترجم منها للجافاسكربت عشان تشتغل ع المتصفحات الجديدة اما هي لغة جديدة كلياً وشيء رائع وحالياً بتشتغل ع الويبكيت وجيكو

    واكتر نقطة خلتني ابكي من الضحك هي
    Strong-Typin
    شو قاعد بتحكي ؟؟
    انت ممكن تخلي البي اتش بي هيك من ملف php.ini
    او حتى في سطر بي اتش بي
    error_reporting (E_ALL);

    اخي العزيز انا بحترم جداً محاولتك الشريفة القوية واتمنى ان اقوم انا بها ولكن انا انصحك واقول لك انها مضيعة للوقت يعني شو بصير لما تجمع اريهين بالبلس ممكن تجمعهم بسطر عن طريق الامبلويد وبتجمع السترينق مع بعض وبعدها بتشمطهم اكسبلود

    بصراحة اعجبتني الفكرة كثيراً اول ما طرحت وانا رأيتها من اول ما انطلقت بس صعبة تمشي نفسك فيها لانو اطلعت ع الصفحات إلي انت عاملهم بستخدام السامبل ولقيت كل وحدة مكتوب
    تم إنشاء الصفحة في 0.04 انت بتفكر هادي سرعة ؟؟؟

    انا بشتغل ع اللوكلهوست مش ع سيرفر وبتكون سرعة صفحة البي اتش بي عندي 0.004 وبقول ما ابطءها !!

    انا لا احبطك ولكن انصحك انك تهتم بشيء آخر يمكن لو مثل الاخ خالد الشمعة ومشروع بي اتش بي و العربية كااان عن جد مشروع فخم من الآخر
    انت ممكن تكمل على المشروع تاعو لانو كتير مهم انا استخدمها كل يوم في حياتي العملية لانو مثلاً بدي اكتب ع صور بالعربية المكتبة بتوفر لي هذا وبدون تقطيع الحروف وفي شغلات حلوة كتير كتير منو يعني مثلاً فنكشين بتعرف اذا هادا الاسم بنت ولا ولد 😀

    اتمنى ان يعجبك كلامي ولا يحبطك

    كل التحية لك ولجهودك الجباارة في عمل هذه اللغة الجميلة 🙂

    • السلام عليكم أخي “مستر شورما”.

      بالنسبة لما قرأت عن Dart و حديثي عنها في الرابط، فـDart هي لغة جديدة فعلًا و لكن ما لا يصل إلى البعض أن لغة جديدة تعني قواعد نحوية جديدة قابلة للتنفيذ، Dart حاليًا لا يمكن أن تعمل إلا بطريقة واحدة رسمية فقط و هي التحويل إلى JavaScript! لا هي مدعومة في Chrome و لا في غيره – بشكل رسمي! و لغة منشئ المواقع كذلك لغة كاملة جديدة كليًا و Turing-Complete.

      بالنسبة للـStrong-Typing، فـPHP ليست أبدًا كذلك و لا يمكنك عبر الاصدار الرسمي جعلها كذلك، الـStrong-Typing هو ألا يكون هناك تحويل ضمني لأنواع البيانات و ضمان الـType-Safety، و هو عدم خروج نتائج غير متوقعة جراء هذا التحويل الآلي الضمني.

      أشكرك جزيل الشكر على تشجيعك ضمن التعليق لأكثر من مرة.

      بالنسبة للسرعة، سأفترض أنك على حق. قارن بين سرعة C و PHP! عمومًا لا شيء كامل و خالي من العيوب، خاصة إذا تذكرنا أننا نتحدث عن الاصدار 0.3 فحسب!

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

      شكرًا على اقتراحاتك.

  • ألسلام عليكم ورحمة الله وبركاته ،، أولاً أحب احي الأخ عمر الخطاب على مجهوده الكبير و أدعوك بالإستمرار قدماً إلى الأمام .

    نعم لغة SMPL تعد لغة جديدة و كونها مبنية على الـ PHP فهذا لا يغير من الأمر شئ فهناك الكثير من اللغات مبنية على لغات أخرى ، بالنسبة للنمط النحوي للغة فهو جيد إلى حد ما حالياً ( شبيه بلغة الباثيون و لغة الـ PHP ) .

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

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

    تقبل تحياتي 🙂
    نشوان دعقان

    • السلام عليكم أخي نشوان.. أشكرك على الدعم الكبير أخي، و على التعليق الرائع المحايد.

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

      أرجو أن تراسلني على الموقع بخصوص تجربتك، و أنا متحمس حقًا لذلك.

      شكرًا.

  • سوداني الهوى

    صراحه حسيت بالفرح و الحزن بنفس الوقت!!!!!!!!!!
    يعني الراجل ماشاء الله عليه باذل جهد وهكذا يكافأ , ألا تعلمون أن الـphp بدأت بشابين يهود!! نعم لاتهم الديانه و لا الإنتماء في التقنيه و لاكن إن فرضنا أنهما سلما بوجود الـasp أو أي لغه غيرها و أكتفيا بالقول “لافائده من لغه أخرى” أكنا رأينا هذه اللغه الرائعه الـphp الله يهديكم و يهدينا أجمعين

    أما أخي عمر فبارك الله فيك و في مسعاك , إعمل و سوف يرى الله عملك و دع محبي الدعه و الإنتقاد الهدام , بالتوفيق إن شاء الله

تعليقات عبر الفيسبوك