الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لغة منشئ المواقع - الاصدار 0.3

بدأه sitesmaker في 29 أكتوبر 2011 · 15 رد · 1,725 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله، و السلام عليكم و رحمة الله تعالى و بركاته.

أطلق منذ أيام الاصدار 0.3 من لغة برمجة منشئ المواقع، و قد احتوى هذا الاصدار على تعديلات جذرية عديدة في اللغة.. و قمت بمراسلة مدونة "عالم التقنية" متحدثًا عن الاصدار الجديد و معرفًا باللغة – للمرة الثانية. و قد تم نشر تدوينة "تحديث جديد للغة منشئ المواقع (SMPL)" مع إزالة جزء من التدوينة المضمنة في الرسالة بغرض الاختصار - ربما..

و فيما يلي التدوينة كاملةً قبل القص، و فيها تعريف باللغة ثم بالاصدار الجديد:

اقتباس

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

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

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

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

تعتمد لغة منشئ المواقع من الداخل علىPHP، و بذلك تتمكن من العمل على أي خادم ويب يحتوي على إصدار من إصداراتPHP 5 ، دون إعادة اختراع العجلة من جديد، و بتمكين أي أحد من تنصيب اللغة بسهولة دون الحاجة لخادم ويب بصلاحيات كاملة!

و نظرًا لاختلاف بعض الاخوة معي على كون منشئ المواقع لغة أم لا، قمت بكتابة صفحة ويب كاملة عن هذا الأمر،

لغة منشئ المواقع.. لغة حقيقية أم ماذا؟ (http://smpl-lang.com...a_language.smpl)، و تحتوي الصفحة على روابط من ويكيبيديا تؤكده و تشرح بعضه، و تتناول شرح الموضوع من معنى لغة و الفرق بين اللغة، و لغة الحاسب، و لغة البرمجة، وصولًا إلى شرح الـTuring Completeness و غير ذلك. و هذا ما نخرج به من الصفحة:

"تعتبر لغة منشئ المواقع، لغة برمجة حقيقة فعلية، و ليست إطار عمل أو نظام قوالب، فهي Turing Complete، و يمكن استخدامها نظريًا لحل أي مشكلة برمجية ممكنة، و لها قواعدها و تراكيبها النحوية الخاصة، و مميزاتها المختلفة جذريًا عن لغة PHP التي تعتمد عليها. و كون اللغة معتمدة على PHP، و تتحول لها له الكثير من المميزات و لا يؤثر على تسمية منشئ المواقع باللغة، فهناك لغات مثل Dart التي تطورها Google و تتحول إلى JavaScript لتعمل، و كذلك CoffeeScript و Pascal و لغات أخرى عديدة تعتمد على التحويل للغات أخرى لتعمل."

لقراءة أكثر عن اللغة، أو تحميلها أو مشاهدة أمثلة مكتوبة باستخدامها أو حتى قراءة الشرح، زيارة الموقع الرسمي للغة منشئ المواقع (http://smpl-lang.com/).

أتمنى أن أحصل على اقتراحاتكم و انتقاداتكم، و آرائكم الكريمة في اللغة بشكل عام، و في خصائص الاصدار الجديد.

في نهاية الموضوع أتقدم بالشكر لإخواني الكرام جميعًا في المنتدى، و أخص محمد إبراهيم لدعمه الدائم لي في تطوير اللغة، و أخي PWCT Maker لما أبدى من توجيهات في الموضوع السابق، و أخي عبدالله الشمري فقد لفت نظري في الموضوع السابق أو الذي قبله إلى نقطة هامة، جعلتني – و لو بشكل غير مباشر - أغير أشياءً عديدةً جذريةً في اللغة أولها كانت التحول إلى الـStrong-Typing.

و شكرًا..

8
#2

بارك الله فيك اخى الحبيب ... ويارب دائما الى الامام

من خلال التجربة العملية والتطوير فى مجال ادوات البرمجة وجدت ان معظم المبرمجين والمطورين العرب

لايستخدمون الادوات التى من صنع عربى الا اذا استخدمها اجانب اولا !!

و ادوات التطوير ولغات البرمجة العربية قليلة اصلا ... ربما تعد على الاصابع

حينما قمت بتقدم PWCT اول من استخدمها اجانب واول من انضم لفريق العمل اجانب

في حين انشغل اصدقائي المبرمجين (اقصد الذين اعرفهم بشكل شخصي) باسماعى كلمات الاحباط بدون التجربة والاطلاع اساسا !!!

الاقتراح الاول : عمل نسخة من موقع SMPL باللغة الانجليزية ( فكر على المستوي العالمى )

الاقتراح الثانى : كتابة سطر فى الموقع يفيد ان هذا مشروع مفتوح المصدر وانك تشجع الاخرين على المساهمة من خلال الكود - الاختبار - الامثلة - التوثيق - الدعاية

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

قد ينضم لك عضو ذو امكانيات بسيطة لكن انضمامه قد يشجع اخرين اكثر تميزا على الانضمام

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

كما ان هذا العضو ذو الامكانيات البسيطة سيتطور يوما ما باذن الله وارتباطه بالمشروع منذ وقت مبكر يجعل للمشروع مستقبل اى كون كوادر لمستقبل المشروع

الاقتراح الثالث : نحن فى عصر الفيديو .... من المهم ان يكون لديك فيدو او اثنين على الاقل تعرض فيهم اللغة وتنشر هذه الفيديوهات ... اجعل التعرف على اللغة

سهل بدون الحاجة للتحميل والتجربة العملية ... الفيديو يظهر المشروع بشكل مبسط وبدون الحاجة للتحميل

الاقتراح الرابع : الدعم اذا كنت تريد ان تقدم الدعم فانه يتم من خلال منتدى Forum او Group وليس من خلال (راسلنا)

ان القيام بعمل منتدى امر مهم لان مواضيع هذا المنتدي يمكن ان تسترشد بها بعد ذلك فى ردك على الاسئلة المتكررة او المواضيع ذات الصلة

ان المنتدي من اهم العناصر الاساسية لتكوين فريق للعمل ... افضل بكثير من المراسلة الشخصية

حين قام الاخ سامح كامل بعمل منتدى ل PWCT كان لذلك الاثر الكبير فى تكوين فريق العمل الخاص بالمشروع وايضا فى تسهيل تقديم الدعم للمستخدمين

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

التطبيق بدون توثيق وكانه لاقيمة له .... فى البداية يمكن ان تقدم فيديوهات تعليمية لاختصار الوقت لكن عليك بالتوثيق المكتوب الذى يمكن طباعته فهو المرجع فى النهاية

لقد انتبهت لهذه النقطة فى الفترة الاخيرة ... صحيح هناك توثيق ل PWCT لكنه قليل جدا مقارنة بحجم المشروع ولهذا وضعت الكثير من الوقت والمجهود فى الفترة الحالية

حتى اقوم بعمل توثيق شامل (مئات الالاف من الصفحات ) وباذن الله سيكون هذا التوثيق من علامات التميز فى الاصدار القادم من PWCT ولو انى انتبهت لعمل توثيق ضخم وشامل من البداية

لوفر على الكثير من الوقت فى الدعم للاعضاء من خلال المنتدي ولهذا ارشدك لاهمية هذا الامر من الان حتى تحافظ على الوقت وتستغله بالشكل الصحيح

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

فكر فى موقع مثل ال sourceforge.net (هناك مواقع اخري لكنى ارشدك الى sourceforge.net لانى تعاملت معه لمدة 6 سنوات وهو ممتاز جدا عن تجربة عملية فضلا عن شهرته)

الاقتراح السابع : اسم الموقع فيه .com فى حين يفضل ان تستخدم .org طالما انه مشروع free-open source

حينما قمت بحجز موقع ل PWCT اخطأت فى هذا الامر وحجزت programmingwithoutcoding.com وهنا الخطأ ليس فقط فى .com بل الاسم طويل ايضا

لهذا غيرت الى pwct.org فاسم pwct مختصر وسهل مقارنة ب programmingwithoutcoding كما ان .org لمشروع مفتوح المصدر افضل من .com

الاقتراح الثامن : نحن فى عصر الشبكات الاجتماعية ... فكر بجدية بانشاء group على الفيس بوك facebook وان تشير لها فى الموقع الرسمى الخاص باللغة

الاقنراح التاسع : فى البداية التطوير اهم بكثير من الدعاية ... اعطي وقتك للتطوير وكتابة التوثيق وتجهيز بيئة لانطلاق المشروع مستفيدا بالملاحظات السابقة

واجعل الدعاية تحدث كنتيجة طبيعية من اعجاب المستخدمين بالمشروع

انت عليك ان تقوم بالدعاية ولكن الدعاية التى تجلب اعضاء للتعاون معك فى المشروع وليس لمجرد استخدامه

فى البداية المهم ان تكون فريق ... انت تحتاج لفريق عمل قبل ان تحتاج لمستخدمين

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

والله الموفق

تم تعديل هذه المشاركة بواسطة PWCT Maker في 30 أكتوبر 2011 في 02:46

4
#3

عمر طبعا ما لدي لك من اقتراحات انت تعلمه جيدا لكنني ساتكلم كلام اخرا بعيد عن النقد والاقتراح قليلا وسيأخذ طبع الاقتراح طبعا

  • الاستقلالية (Independence) حيث ان هناك قرارات عليك اتخاذها وهي مؤثرة علي المدي البعيد وكذلك القريب وهنا اقصد بالطبع المدي فى التطوير انت تعرف المشكلة الاكبر التي تواجهك (علي الاقل فى الوسط العربي) هو أنك تجد اعتراضات كثيرة بل تشكيك فى اللغة نفسها من حيث انها لغة ام لا وهي ان اللغة تقوم بالتحويل الي PHP وهي اساسا مكتوبة بها وحتي الان القبول والاستيعاب بدأ يصل للعديد من الناس فى نقطة Code Translation اما نقطة كتابة اللغة بالPHP فهناك العديد من المؤثرات التي ستقف حائلا بين اتضاحها بشكل كبير بالنسبة للوسط بشكل عام والحل يمكن هنا من وجهة نظري البسيطة
  1. الاتجاه لوسط اخر من المبرمجين ومجتمع اخر وطبعا انا اقصد هنا المجتمع الاجنبي وحاول استقطاب المبرمجين والمطورين وفريق عمل من هناك (الكفاءة هي الاهم فى فريق العمل) وكذلك حاول ايضاح الامور واللغة وافكارها وما تنوي اللغة ان تقدمه للمبرمجين وما هو التصور المستقبلي للمشروع (ركز علي النقطة دي) وستجد الامور تغيرت كثيرا ولو مثلا وجدت اثنان او ثلاثة يكتبون فى مواقع او مدونات عن اللغة من الاجانب ستجد النظرة تغيرت عند الكثير من الناس هنا ومحمود ذكر هذه النقطة باستفاضة فى الرد السابق لردي
  2. ان تأخذ الطريق الاصعب حيث سيكون الوقت والمجهود والتطوير والامثلة والتوثيق والاضافات هي حلك الوحيد نحو تغيير بسيط متوقف على عامل الوقت والمجهود ودرجة الفعالية لما تقوم بعمله وهنا يجب ان يكون فريق عمل معك وان تحاول استقطاب ليس فريق عمل يقوم بعمل بدلا منك بل ان يكون فريق عمل فعالا يقترح ومختلفون فى القدرات .....الخ وقد وضحها ايضا الاخ محمود فايد فى الرد السابق

  • المشاركة (Sharing) : حتي الان انت لم توضح خطة عمل تشاركها العمل او خطة لما تنوي فعله او لما تطمح اللغة ضع خطة كاملة وواعية وان لم تستطع عملها او اضطررنا الي تغييرها مستقبلا لكن على الاقل ستكون مساهمة بشكل كبير فتغيير خطة وان من جذورها اسهل فى بعض الاحيان من عمل خطة كاملة من الصفر
  • الاستقرار (Stability) انت حتي الان لم تضع اصدارا موحدا يمكن الاعتماد عليه بمعني انك فى الاصدار الجديد قد تغير تغييرات جذرية قد تضيع مهمات عديدة بل وقد تختلف مطلقا عن هذا الاصدار كمثال لذا عليك ان تقضي وقتا كافيا لدراسة جميع المهام والافكار والاقتراحات التي تحتاج الي مدي بعيد لتنفيذها والدائم منها لكي يكون هناك نوعا من الاستقرار ومن ثم يمكن انت وفريق العمل عمل تطبيقات وامثلة كبيرة وصغيرة ومتوسطة .....الخ فيصبح هناك فاعلية اكثر

فى النهاية أتمني لك التوفيق اما باقي الحديث الذي لديه فقد اخبرتك به وانت تعرفه جيدا

بالتوفيق لك عزيزي عمر

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

1

GoodBye

#4
PWCT Maker كتب:

الاقتراح الاول : عمل نسخة من موقع SMPL باللغة الانجليزية ( فكر على المستوي العالمى )

الاقتراح الثانى : كتابة سطر فى الموقع يفيد ان هذا مشروع مفتوح المصدر وانك تشجع الاخرين على المساهمة من خلال الكود - الاختبار - الامثلة - التوثيق - الدعاية

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

قد ينضم لك عضو ذو امكانيات بسيطة لكن انضمامه قد يشجع اخرين اكثر تميزا على الانضمام

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

كما ان هذا العضو ذو الامكانيات البسيطة سيتطور يوما ما باذن الله وارتباطه بالمشروع منذ وقت مبكر يجعل للمشروع مستقبل اى كون كوادر لمستقبل المشروع

الاقتراح الثالث : نحن فى عصر الفيديو .... من المهم ان يكون لديك فيدو او اثنين على الاقل تعرض فيهم اللغة وتنشر هذه الفيديوهات ... اجعل التعرف على اللغة

سهل بدون الحاجة للتحميل والتجربة العملية ... الفيديو يظهر المشروع بشكل مبسط وبدون الحاجة للتحميل

الاقتراح الرابع : الدعم اذا كنت تريد ان تقدم الدعم فانه يتم من خلال منتدى Forum او Group وليس من خلال (راسلنا)

ان القيام بعمل منتدى امر مهم لان مواضيع هذا المنتدي يمكن ان تسترشد بها بعد ذلك فى ردك على الاسئلة المتكررة او المواضيع ذات الصلة

ان المنتدي من اهم العناصر الاساسية لتكوين فريق للعمل ... افضل بكثير من المراسلة الشخصية

حين قام الاخ سامح كامل بعمل منتدى ل PWCT كان لذلك الاثر الكبير فى تكوين فريق العمل الخاص بالمشروع وايضا فى تسهيل تقديم الدعم للمستخدمين

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

التطبيق بدون توثيق وكانه لاقيمة له .... فى البداية يمكن ان تقدم فيديوهات تعليمية لاختصار الوقت لكن عليك بالتوثيق المكتوب الذى يمكن طباعته فهو المرجع فى النهاية

لقد انتبهت لهذه النقطة فى الفترة الاخيرة ... صحيح هناك توثيق ل PWCT لكنه قليل جدا مقارنة بحجم المشروع ولهذا وضعت الكثير من الوقت والمجهود فى الفترة الحالية

حتى اقوم بعمل توثيق شامل (مئات الالاف من الصفحات ) وباذن الله سيكون هذا التوثيق من علامات التميز فى الاصدار القادم من PWCT ولو انى انتبهت لعمل توثيق ضخم وشامل من البداية

لوفر على الكثير من الوقت فى الدعم للاعضاء من خلال المنتدي ولهذا ارشدك لاهمية هذا الامر من الان حتى تحافظ على الوقت وتستغله بالشكل الصحيح

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

فكر فى موقع مثل ال sourceforge.net (هناك مواقع اخري لكنى ارشدك الى sourceforge.net لانى تعاملت معه لمدة 6 سنوات وهو ممتاز جدا عن تجربة عملية فضلا عن شهرته)

الاقتراح السابع : اسم الموقع فيه .com فى حين يفضل ان تستخدم .org طالما انه مشروع free-open source

حينما قمت بحجز موقع ل PWCT اخطأت فى هذا الامر وحجزت programmingwithoutcoding.com وهنا الخطأ ليس فقط فى .com بل الاسم طويل ايضا

لهذا غيرت الى pwct.org فاسم pwct مختصر وسهل مقارنة ب programmingwithoutcoding كما ان .org لمشروع مفتوح المصدر افضل من .com

الاقتراح الثامن : نحن فى عصر الشبكات الاجتماعية ... فكر بجدية بانشاء group على الفيس بوك facebook وان تشير لها فى الموقع الرسمى الخاص باللغة

الاقنراح التاسع : فى البداية التطوير اهم بكثير من الدعاية ... اعطي وقتك للتطوير وكتابة التوثيق وتجهيز بيئة لانطلاق المشروع مستفيدا بالملاحظات السابقة

واجعل الدعاية تحدث كنتيجة طبيعية من اعجاب المستخدمين بالمشروع

انت عليك ان تقوم بالدعاية ولكن الدعاية التى تجلب اعضاء للتعاون معك فى المشروع وليس لمجرد استخدامه

فى البداية المهم ان تكون فريق ... انت تحتاج لفريق عمل قبل ان تحتاج لمستخدمين

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

السلام عليكم أولًا أشكرك أخي و أستاذي الكريم محمود على ردك المميز كعادتك.

أما بالنسبة لاقتراح الأول و الاقتراح الثاني، فبإذن الله تعالى سأحاول تنفيدهم في أقرب وقت..

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

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

بالنسبة للاقتراح الخامس و التوثيق فهذا ما أعمل عليه فعلًا حاليًا..

و أما آخر ثلاثة فهي إقتراحات سأضعها بإذن الله أمامي، لكنها تحتاج لبعض التفكير و التخطيط قبل التنفيذ، خصوصًا فكرة النطاق!

أشكرك جزيل الشكر مرة أخرى.

#5
MohamedIBrahim كتب:

عمر طبعا ما لدي لك من اقتراحات انت تعلمه جيدا لكنني ساتكلم كلام اخرا بعيد عن النقد والاقتراح قليلا وسيأخذ طبع الاقتراح طبعا

  • الاستقلالية (Independence) حيث ان هناك قرارات عليك اتخاذها وهي مؤثرة علي المدي البعيد وكذلك القريب وهنا اقصد بالطبع المدي فى التطوير انت تعرف المشكلة الاكبر التي تواجهك (علي الاقل فى الوسط العربي) هو أنك تجد اعتراضات كثيرة بل تشكيك فى اللغة نفسها من حيث انها لغة ام لا وهي ان اللغة تقوم بالتحويل الي PHP وهي اساسا مكتوبة بها وحتي الان القبول والاستيعاب بدأ يصل للعديد من الناس فى نقطة Code Translation اما نقطة كتابة اللغة بالPHP فهناك العديد من المؤثرات التي ستقف حائلا بين اتضاحها بشكل كبير بالنسبة للوسط بشكل عام والحل يمكن هنا من وجهة نظري البسيطة
  1. الاتجاه لوسط اخر من المبرمجين ومجتمع اخر وطبعا انا اقصد هنا المجتمع الاجنبي وحاول استقطاب المبرمجين والمطورين وفريق عمل من هناك (الكفاءة هي الاهم فى فريق العمل) وكذلك حاول ايضاح الامور واللغة وافكارها وما تنوي اللغة ان تقدمه للمبرمجين وما هو التصور المستقبلي للمشروع (ركز علي النقطة دي) وستجد الامور تغيرت كثيرا ولو مثلا وجدت اثنان او ثلاثة يكتبون فى مواقع او مدونات عن اللغة من الاجانب ستجد النظرة تغيرت عند الكثير من الناس هنا ومحمود ذكر هذه النقطة باستفاضة فى الرد السابق لردي
  2. ان تأخذ الطريق الاصعب حيث سيكون الوقت والمجهود والتطوير والامثلة والتوثيق والاضافات هي حلك الوحيد نحو تغيير بسيط متوقف على عامل الوقت والمجهود ودرجة الفعالية لما تقوم بعمله وهنا يجب ان يكون فريق عمل معك وان تحاول استقطاب ليس فريق عمل يقوم بعمل بدلا منك بل ان يكون فريق عمل فعالا يقترح ومختلفون فى القدرات .....الخ وقد وضحها ايضا الاخ محمود فايد فى الرد السابق

  • المشاركة (Sharing) : حتي الان انت لم توضح خطة عمل تشاركها العمل او خطة لما تنوي فعله او لما تطمح اللغة ضع خطة كاملة وواعية وان لم تستطع عملها او اضطررنا الي تغييرها مستقبلا لكن على الاقل ستكون مساهمة بشكل كبير فتغيير خطة وان من جذورها اسهل فى بعض الاحيان من عمل خطة كاملة من الصفر
  • الاستقرار (Stability) انت حتي الان لم تضع اصدارا موحدا يمكن الاعتماد عليه بمعني انك فى الاصدار الجديد قد تغير تغييرات جذرية قد تضيع مهمات عديدة بل وقد تختلف مطلقا عن هذا الاصدار كمثال لذا عليك ان تقضي وقتا كافيا لدراسة جميع المهام والافكار والاقتراحات التي تحتاج الي مدي بعيد لتنفيذها والدائم منها لكي يكون هناك نوعا من الاستقرار ومن ثم يمكن انت وفريق العمل عمل تطبيقات وامثلة كبيرة وصغيرة ومتوسطة .....الخ فيصبح هناك فاعلية اكثر

فى النهاية أتمني لك التوفيق اما باقي الحديث الذي لديه فقد اخبرتك به وانت تعرفه جيدا

بالتوفيق لك عزيزي عمر

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

السلام عليكم..

طبعًا يا محمد قد نصحتني بالكثير من قبل، و تتابع معي التطوير، و مع ذلك استفدت كثيرًا جدًا من هذا الرد..

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

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

أشعرتني أن ردك "سياسي" كثيرًا، يتحدث عن "الاستقرار" و "الاستقلالية" في مرة واحدة!

شكرًا يا محمد.

#6
sitesmaker كتب:

ا

أشعرتني أن ردك "سياسي" كثيرًا، يتحدث عن "الاستقرار" و "الاستقلالية" في مرة واحدة!

شكرًا يا محمد.

المشكلة ليست فى ذلك

السياسة هي الفكر والقرارات والتخطيط (وليست فقط الحديث عن نظام ادارة الدول والممالك ..... انتخابات ...الخ )

فانت فى بيتك وبين زوجتك وابنائك واهلك (افتراضا) سياسي حيث انك تقوم بتنظيم شئون البيت والاقامة علي استمراره واستقراراه واستقلاله الذاتي والاكتفاء وغيرها من الامور

كذلك Lnaguage Design هي الي حد كبير جدا مجموعة من القرارات والسياسات المتخذة فى البرمجة

لذا التشبيهات والمصطلحات متشابهة الي حد كبير

والله الموفق

1

GoodBye

#7

أهنئك على هذا الإصدار وأعتذر على عدم التمكن من تجربه النسخه حتى الآن ولكن بعد قراءتي للموجز لاحظت ماكنت أفكر فيه وأوقعني في مشاكل وكان حلها صعبا جدا

النقطه هي :

اقتباس
محاولة جمع مختلف الدوال ذات الوظائف المتشابهة في دالة واحدة، لتبسيط عملية البرمجة و تنظيمها..

مثل هذا التفكير قمت به وواجهت الصعاب .. أنت تتحدث عن دوال كثيره متشابهه ! لماذا إذن تم إنشاؤها وهل فعليا لم يتمكن فريق php من جمعها ؟

إن هذه الدوال لها أعمال تعمل على معطيات كثيره ومتغيره فلا يمكن الجمع بينها وعمليه الجمع بينها يعني تجميد اللغه وعدم مقدرتها على التمدد لإستيعاب كل ماهو جديد أو يمكن إنشاؤه

أحد الأسباب التي جعلتني أبتعد عن الفجوال بيسك هي التقييد , لإنشاء نافذه أو إنشاء حقل نصي داخل الفورم لن تحتاج إلى معجزه وإنما فقط لسحب وإفلات , هذا جيد ولكن في حالات متقدمه تحتاج إلى أكثر من مجرد حقل نصي ولعمل ذلك ستضطر إلى الرجوع إلى الأصل وبناء دوال بلغه السي وجعلها ملفات dll وعند هذه المرحله ستقول في نفسك لماذا أضعت من عمري سنوات لتعلم لغه لا تلبي إحتياجات بسيطه !!! , هذا ماسيحدث لمن سيعمل على لغتك الجديده إذا فكرت في تبسيطها فكل من يريد داله غير متوفره سيضطر إلى الphp وبعدها لن يعود إلى smpl

لذلك أنصحك في التفكير مليا بهذا السؤال .. مالذي يجعل لغة smpl أفضل من php الأم ؟

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#8
bastr3 كتب:

أهنئك على هذا الإصدار وأعتذر على عدم التمكن من تجربه النسخه حتى الآن ولكن بعد قراءتي للموجز لاحظت ماكنت أفكر فيه وأوقعني في مشاكل وكان حلها صعبا جدا

النقطه هي :

مثل هذا التفكير قمت به وواجهت الصعاب .. أنت تتحدث عن دوال كثيره متشابهه ! لماذا إذن تم إنشاؤها وهل فعليا لم يتمكن فريق php من جمعها ؟

إن هذه الدوال لها أعمال تعمل على معطيات كثيره ومتغيره فلا يمكن الجمع بينها وعمليه الجمع بينها يعني تجميد اللغه وعدم مقدرتها على التمدد لإستيعاب كل ماهو جديد أو يمكن إنشاؤه

أحد الأسباب التي جعلتني أبتعد عن الفجوال بيسك هي التقييد , لإنشاء نافذه أو إنشاء حقل نصي داخل الفورم لن تحتاج إلى معجزه وإنما فقط لسحب وإفلات , هذا جيد ولكن في حالات متقدمه تحتاج إلى أكثر من مجرد حقل نصي ولعمل ذلك ستضطر إلى الرجوع إلى الأصل وبناء دوال بلغه السي وجعلها ملفات dll وعند هذه المرحله ستقول في نفسك لماذا أضعت من عمري سنوات لتعلم لغه لا تلبي إحتياجات بسيطه !!! , هذا ماسيحدث لمن سيعمل على لغتك الجديده إذا فكرت في تبسيطها فكل من يريد داله غير متوفره سيضطر إلى الphp وبعدها لن يعود إلى smpl

لذلك أنصحك في التفكير مليا بهذا السؤال .. مالذي يجعل لغة smpl أفضل من php الأم ؟

محاولة جمع الدوال هذه المقصود بها هو بدلًا من أن يكون هناك sort و asort و arsort و ksort و krsort و natcasesort و natsort و rsort و uasort و usort و uksort و array_multisort و array_shuffle لترتيب الدوال يكون هناك فقط array_sort و فيها مدخل إضافي يحدد كيفية الترتيب! هل ترى أن PHP أفضل هنا؟ تحتاج على الأقل إلى ربع ساعة لتعرف بالضبط أي هذه الدوال تفيدك! هذا غير الأسماء العجيبة و الغير ثابتة في الطريقة. أن يكون لديك دالتين str_replace و str_ireplace أفضل أم فقط string_replace بمدخل إضافي لتحديد حساسية الأحرف؟ عمومًا نقطة الدوال ليست هي ميزة اللغة الأساسية.

PHP لغة ممتازة من نواح عديدة أولها في رأيي الانتشار. لكنها عشوائية في كل شيء، في الدوال، و في كونها weak-typed أكثر بكثير جدًا من اللازم بحيث تجد نتائجًا عجيبة أحيانًا، في طريقة تحويلها الضمني في المقارنات، و غير ذلك.

كتبت أمس موضوعًا في SitePoint Forums عن اللغة، تضمن الموضوع التالي من عيوب PHP في نظري و أسباب لإنشائي اللغة:

  1. التسميات الغير متناسقة للدوال و التي ليس لها طريقة ثابتة: كالفرق بين الدوال التالية التي كلها دوال نصوص:
    1. دوال مثل: explode و trim.
    2. دوال مثل: strlen و strpos.
    3. دوال مثل: str_replace و str_repeat.
    4. دوال مثل: wordwrap.(لا يقولن لي أحد هذه مجرد دوال في اللغة، يمكن تغيير أسمائها، PHP - كغيرها - تتبع نظام backward compatability يمنعها من فعل أي شيء كهذا، و على المبرمجين التحمل، أو إيجاد لغة أخرى!)
    5. المدخلات (parameters) الغير متناسقة: مثلًا أيهما أولًا المبحوث فيه أم البحوث عنه (Haystack first or Needle)؟
    6. أسماء دوال عجيبة جدًا: مثل strnatcasecmp و vfprintf و strstr.
    7. أسماء دوال خاطئة حتى: مثل addslashes (و شبيهاتها) التي تضيف back slash و ليس slash!
    8. أحيانًا الفعل أولًا و الاسم آخرًا و أحيانًا العكس في أسماء الدوال كذلك.
    9. ليس هناك دعم unicode داخلي في اللغة (from the core)، فقط مجرد دوال Multi-Byte "الملخبطة" الغير مفعلة بشكل أساسي مع اللغة، و التي لا يستعملها إلا قلة!
    10. اللغة weak-typed بشكل عشوائي و أكثر من اللازم بل أكثر من المتحمل، و كذلك التحويل الضمني في المقارنات عشوائي و سيئ للغاية.
    11. أردت لغة أبسط كثيرًا، تتخلص من مفاهيم كثيرة لا داع لها. البساطة، ليست السهولة بل البساطة، هي حذف أي تعقيدات لا داع لها، بحيث يكون لديك ما تحتاجه لا أكثر و لا أقل و يكون كل شيء بسيطًا واضحًا مباشرًا.
    12. أردت لغة تحتوي على طرق debugging أفضل و أوضح، و أقوى.
    13. هناك دوال كثيرة جدًا تؤدي نفس الغرض، و لغة أخرى أقوى مثل Perl مثلًا تجمعهم في دوال أقل بكثير.
    14. أردت بعض المفاهيم الأبسط في قواعد البيانات عرضتها عبر ArraysDB التي تشابه اللغة في مفاهيمها.
    15. إتاحة تعديل و تطوير اللغة و إضافة دوال لها عبر أي مطور PHP.
    16. غير كل ذلك إضافة خصائص و مميزات خاصة للغة، من الـsyntactic sugar إلى الدوال في اللغة...

      هذا باختصار شديد.
      و شكرًا..
1
#9

ماقلته جميل ولكن يحسب عليك لا لك ...

أنت تخبرني أن php لها نمط خاطئ في الدوال وذكرت ماذكرت , ومع ذلك تريد حل المشكله بإستخدام نفس اللغه لإنشاء لغه أخرى !! إذن لغه php يمكنها تفادي المشاكل التي ذكرتها !!

من ناحيه مقارنه وجمع رقم مع حرف هذا يعطي قوه للغه فربما تحتاج لإنشاء داله معقده في لغات أخرى لتؤدي نفس الغرض , في ال php يمكنك إنشاء موقع وعمليه حدوث أخطاء فيه تكون بنسبه صفر % بخلاف لغات أخرى تظهر الأخطاء بشكل غريب وعجيب ويجب عليك كتابه الكثير الكثير من الدوال لتجنب مثل هذه الأخطاء السخيفه ولنضرب مثالا على ذلك

لدي متغير id يتم إرساله عن طريق الget وأقوم من خلال الشيفره بجمع هذا المتغير مع رقم اليوم من 1 -7 لإظهار نتيجه معينه , في لغتنا الأم php فقط تجمع المتغير مع رقم اليوم ولو قام شخص بوضع قيمه الid كلمة error مثلا فلن يحدث شيء وسيتم جمع القيمه وإظهار رقم ولن تحدث مشاكل تذكر أما في لغات أخرى سأضطر إلى التأكد من القيمه المرسله هل هي رقميه, لا تحتوي كسور وهكذا ...

في طبيعه الحال لو أردت أن تكون القيمه رقميه في php عندها أقوم بعمل تحقق من القيمه المدخله دون أي مشاكل .

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

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#10

السلام عليكم..

على العكس أخي الكريم.. أنا قلت أن PHP لغة جيدة، بل ممتازة من نواح عديدة، فقط لها عيوب بعضها جذري يحتاج للغة جديدة، لكن لا أريد أن أخسر مميزاتها الموجودة. بافتراض أن C لها عيوب لا تجعل منها مناسبة لتطوير الويب بشكل جيد، هل يمنع هذا من تطوير PHP بها؟ مثال آخر، لغة الآلة لا تعجبني و لا تريحني، لكي تعمل أي لغة يجب أن تصل بشكل ما لها، و أوائل المترجمات بنيت بها! مثال آخر، Assembly لا تعجبني و أردت تطوير لغة لتصبح هي C، هل كون C مبنية بـAssembly يعني أن Assembly كافية! إذا أعطيتك كرسي له رجل مكسورة يمكنك تفادي مشكلة الرجل المكسورة بصعوبة عبر الميل على الأرجل الغير مكسورة، لكن إذا جلست على هذا الكرسي الذي لا يريحك لتصنع كرسي آخر جيد، فهذا لا يعني أن الكرسي الأول كافي...

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

شكرًا..

تم تعديل هذه المشاركة بواسطة sitesmaker في 5 نوفمبر 2011 في 15:16

#11

بالنسبة لكثرة php functions ، و التي كان يمكن اختصارها أو كتابة أسماءها بشكل أفضل ، فأوافق الأخ site_maker ، لكن لا أعتقد أن مثل هذا الكلام يقال في سياق تبرير ظهور لغة أخرى ، لأنه يمكن أن يرد عليك أحد و يقول " قم بعمل framework مبني على php و خلصنا " ، لذلك أرى أن تركز على الأمور المملة في php ، والجيدة في smpl ، مثل دعم unicode بشكل أفضل ، strong typing ، أدوات debuggings قد تكون أفضل ( لا أعرف كيف أو ماذا تقصد ) . أيضاً ما أتمناه هو أن تكون smpl كائنية المنحنى ، لأنها لو صارت مزيج من functions ، فهذا يعيدنا إلى php بطريقة ما ، ممكن تلقي نظرة على تصميم جافا و JavaEE ، لعلها تعجبك . يعني مثلاً بدلاً من أن أكتب ، string_length ، لماذا لا أكتب String.length ؟ لا أدري .. إن كان هذا مناسب أو لا . بالأخير لابد أن لديك هدف معين تسعى إليه ، لذلك تجاهل الاقتراحات إذا رأيت أنك تحولت عن مسارك الذي تخطط له . يعني لو قال لك أحد ( أنا ) ، نريد لغة مثل جافا تعمل على خادمات تدعم php ، و كان هذا يتعارض مع أهدافك ، فتجاهل هذا :-) .

1

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#12

السلام عليكم..

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

من أكبر عيوب PHP هي أن مطوريها الأوائل حرصوا على تقديم لغة تكون بالنسبة لمبرمجي الـC أو الـPerl نسخة حتى في أسماء الدوال التي هي مختصرة دائمًا بطرق أراها عجيبة في تلك اللغات، هناك دوال لا أرى أنها تفهم من اسمها بأي طريقة مثل stristr()! و أن مصدر PHP المفتوح ترك لكل من أراد لتغيير ما شاء دون قياسات، فكل فعل ما شاء على هواه، فأصبح لدينا 12 دالة أساسية في اللغة لترتيب المصفوفات، و دوال لا يمكن توقع أي شيء عنها. عمومًا لم أر حقيقة أي مرجع للغة برمجة أفضل من مرجع PHP، و هذا يحسب للغة. أفضل طريقة لتجاوز عيوب PHP كتابة "Why PHP sucks" في Google، و قراءة موضوع فالآخر، و هذا ما سأفعله، فإذا كانت كثرة هذه المواضيع تدل على شيء، فهي تدل على أن هناك من يرى PHP جيدة و لكن لها عيوب، فإن تجاوزتها فيمكنني جذب هؤلاء للغة!

أكثر اقتراح وجدته هو أن تكون اللغة كائنة التوجه، كلما كتبت في مكان عربي أو أجنبي، لخبراء أو لمبتدئين، وجدت هذا الاقتراح. الـOOP موضة، و موضة منذ أكثر من 20 عامًا - هذا ليس عيبًا بل ميزة ربما، فيما عدى بعض ما تقدمه اللغات ذات "Everything is an object" لم أر منها فرقًا كبيرًا، لو طورتها قبل أن أقتنع بها، لن يكون أكثر من مجرد محاولة لجذب مستخدمين. أكثر ما يمنعني من تطبيقها هو الكسل، من يريد تغيير شيء جذري كهذا في اللغة، ثم تعديل مرجع اللغة، و شرح المفاهيم العجيبة للـObjects فيه، الخ.. ما لها الدوال؟ ما عيبها لغة تضبط فيها متغيرين و تكتب فيها if و for، ثم تستخدم دالتين يكفونك لسكريبت؟ لا داع لأن أجعل البرنامج كائن، و كل جزء منه كائن، و للحفظ في قاعدة البيانات أتعامل مع كائن...

بالنسبة لتغيير مسار اللغة، هناك من يعرض علي تكوين لغة مشابهة للغة أخرى موجودة فعلًا (و هذا يسهل علي من ناحية أن القياسات موجودة و المستخدمون موجودون) و تطبيقها على PHP المجانية المنتشرة، مما يوجد لدينا نسخة مجانية و مفتوحة المصدر و سهلة الاستخدام من نفس اللغة، دون حاجة للتعلم مرة أخرى، و لا أخفي عليكم أن هذا فيه نوع من الاقناع!

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

و شكرًا.

#13

لدي سؤال وحيد علي تعليقات الاخوة هناك تناقض واضح بين قولنا لغة ‏smpl ‎‏ كتبت لهدف حل بعض العيوب والتعقيدات في ‏PHP ‎‏ وذكر بعض الاخوة مرة اخري علي ان هذه الافكار تصلح للغة جديدة اري هنا تناقض فلو ان كل لغة لحل عيب بها اضطررنا الي بناء لغة جديدة وبالطبع فان في كل لغة مميزات وعيوب ومن هذا المنطلق اذا اردنا مثلا حل 3 مشاكل تختلف في اهميتها باسلوب نبني لغة كاملة اخري نفس الاولي بحل لل3 مشكلات فان هذا الامر سيكون سببا لمشاكل كثيرة اولآ لن تجد استقرارا للمبرمج حيث انا ساضطر الي متابعة واستخدام وتعلم اشياء بشكل متفرق الافضل بكثير جمعها ثانيا اذا كنت مثلآ مديرآ لسيرفر استضافة فاسأضطر لان اوفر دعم وبيئة تشغيل لعشرات اللغات ‏‎....‎‏.. الخ تصميم لغة جديدة يحتاج افكارآ ، قدر من الاستقلال ،حلآ لمشاكل اخري في مجالات استخدام اللغة

GoodBye

#14

أقوم حاليا بإختبار سرعه تنفيذ اللغه , إذا كان التنفيذ سريع نسبيا سأقوم بإستخدام اللغه بدلا من لغه القوالب التي قمت بإنشائها والعمل بها في إطار عمل مدارك

إضافه : هل جربت عمل مقارنه في سرعه تنفيذ اللغه بالنسبه للغة البي أتش بي ؟

لا أعلم ولكن بعد الإطلاع على الكود أعتقد أن الفارق سيكون كبيرا جدا !! ربما يتجاوز ال 8 ثواني لبرنامج يستغرق على php مدة 0.005

أرجو عدم تجربه سكريبت تكرار وإنما سكريبت لموقع يتعامل مع دوال

تم تعديل هذه المشاركة بواسطة bastr3 في 19 نوفمبر 2011 في 07:33

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#15

السلام عليكم..

بالنسبة للسرعة هي العيب رقم 1 حاليًا، قمت بتجربة وضع اللغة كلها في ملف واحد بدون تعليقات أو سطور فارغة، و تم رفع السرعة 770% للغة و مكتباتها، و بتعديل بسيط في حساب رقم السطر الحالي تم رفع سرعة تنفيذ الكود بشكل جيد، هذه التعديلات ستنشر إن شاء الله و غيرها في الاصدار القادم (الذي سيتضمن تغييرًا في شكل الكود، و تخلي عن طريقة PHP: في <?smpl> و <!smpl?> و استعمال طريقة مبتكرة لكتابة HTML، وسيتضمن إن شاء الله إمكانية إجراء عمليات حسابية بين أرقام غير محدودة المدى نظريًا (وهي نقطة مفقودة في PHP)!! بالاضافة إلى مكتبات جديدة، كما قد قمت بالتطوير على محرر CodeMirror لانتاج محرر لغة منشئ المواقع الذي يعمل من المتصفح مباشرة).

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

-----

مثال على كود بالاصدار 0.4، هذا هو الكود المؤقت على خادمي الشخصي الذي يستخدم لاظهار المحرر:

if not(file_exists('code.nopass'))
{
	file_create('code.nopass')
}

if $post['code'] != null
{
	file_write('code.nopass', string($post['code']))
}


:'html', ['xmlns' => 'http://www.w3.org/1999/xhtml', 'dir' => 'ltr', 'style' => 'font-size: 10pt; font-weight: bold']
{
	:'head'
	{
		:'meta', ['http-equiv' => 'Content-Type', 'content' => 'text/html; charset=UTF-8'] {}
		:'title' { show 'Code Highlighter - SMPL' }
		:'link', ['rel' => 'stylesheet', 'type' => 'text/css', 'href' => 'style.css'] {}

		:'link', ['rel' => 'stylesheet', 'type' => 'text/css', 'href' => 'codemirror/style.css'] {}
		:'script', ['type' => 'text/javascript', 'src' => 'codemirror/main.js'] {}
		:'script', ['type' => 'text/javascript', 'src' => 'codemirror/smpl.js'] {}
	}

	:'body'
	{
		:'h1'
		{
			show 'SMPL code highlighter'
		}

		:'form', ['method' => 'post', 'action' => '', 'id' => 'code_form', 'name' => 'code_form']
		{
			:'textarea', ['id' => 'code', 'name' => 'code']
			{
				show file_read('code.nopass')
			}

			:'p', ['style' => 'margin-top: 50px; text-align: center']
			{
				:'input', ['type' => 'submit', 'value' => 'Save', 'style' => '', 'onclick' => 'return confirm("Really save?")'] {}
			}
		}


		:'script', ['type' => 'text/javascript']
		{
			show 'var editor = CodeMirror.fromTextArea(document.getElementById("code"), {lineNumbers: true, matchBrackets: true, mode: "text/x-smpl"});'
			show 'var isCtrl = false;
			document.onkeyup = function(e){ if(e.which == 17) isCtrl = false; };
			document.onkeydown = function(e){ if(e.which == 17) isCtrl=true; if(e.which == 83 && isCtrl == true) { document.forms["code_form"].submit(); return false; } };'
		}
	}
}

ما رأيك في طريقة الكود الجديدة؟

و شكرًا.

#16

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

بالنسبه لطريقة الكود الجديده نوعا ما جميله كفكره وكتنفيذ , أحاول التفكير في سبب لإنتقاد الفكره ولكن حتى الآن ﻻ يوجد سبب :)

أقترح مبدئيا عمل مقبض لكل وسم بحيث يمكنني فيما بعد بإضافه خصائص لأي وسم أريده ,,, توضيح :

       :'body:ID3998'
        {
                :'h1:ID4221'
                {
                        show 'SMPL code highlighter'
                }

                :'form', ['method' => 'post', 'action' => '', 'id' => 'code_form', 'name' => 'code_form']
                {
                        :'textarea', ['id' => 'code', 'name' => 'code']
                        {
                                show file_read('code.nopass')
                        }
       INSERT:'body:ID3998'{
:'a',[...=>{

}

كما أنبهك إلى أن كتابه علامة التنصيص المفرده ' حاول أن تلغيها أو تستخدم بدﻻ منها الأقواس )(

ولو قمت بإستخدام نفس آليه الجي كويري يصبح الأمر روعه أنظر إلى المثال :

$("html).property("{xmlns:http://www.w3.org/1999/xhtml},{dir:ltr}").tag("head").property(function(){
this.tag("meta").property("{http-equiv:Content-Type}")
}).tag("body")....

العمليه ممتعه جدا في كتابه الكود :)

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

مواضيع مشابهة