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

لغة منشئ المواقع – الاصدار 0.2

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

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

أطلق أول أمس الاصدار التجريبي SMPL 0.2 من لغة منشئ المواقع. و أطلق معه في نفس الوقت موقع اللغة الرسمي – أو بشكل أدق التحديث "الكامل" للموقع. و قد كنت منذ أسابيع قليلة – إن لم أخطئ التقدير – تحدثت عن النسخة السابقة و الأولى SMPL 0.1، و نلت عددًا من الردود ليس بالكثير، لكني وجدت فيهم الفائدة الكبيرة حقًا – فشكرًا جزيلًا لأصحابها!

لمن لم يتابع الموضوع القديم، لغة منشئ المواقع – حسب التعريف الموجود في الموقع الرسمي هي: "لغة مجانية و مفتوحة المصدر موجهة نحو برمجيات الويب. تقدم الامكانيات التفاعلية لصفحات الويب، من اجراء عمليات حسابية و تعامل مع نصوص، و ملفات و قواعد بيانات، و غير ذلك، بأبسط و أسهل الطرق المباشرة."

جيد جدًا. لكن ما الجديد في هذه اللغة إذن؟ الفكرة الأساسية هي التطوير و البرمجة "ببساطة" أكثر للويب و بطرق "مباشرة" و واضحة. غير هذه النقطة الأساسية، هناك تقديم الشرح بالشكل الذي يناسب – حقًا – غير المبرمجين – و الذي في رأيي يتطلب "لغة" جديدة تناسب مفاهيم جديدة أبسط! و من المميزات الكبيرة حتى الآن، دعم Unicode دون امتدادات إضافية للغة*، و النظام في تسميات الدوال و ترتيب المدخلات، و السهولة الفائقة في تعديل و تطوير اللغة، و تغييرات بسيطة في القواعد النحوية عن PHP، قد يراها الكثيرون أفضل قليلًا.

*دعم Unicode يعني: دعم التعامل مع مختلف اللغات البشرية بالشكل الصحيح، و من تلك اللغات اللغة العربية. إذا تم استعمال ترميز Unicode - UTF-8 الشهير ستعتبر العديد من لغات البرمجة، أن الحرف الواحد الغير لاتيني، يمثل أكثر من من حرف واحد، أي حرفين أو ثلاثة أحرف أو حتى أربعة. و بالتالي يخرج رقم خاطئ عند حساب طول نص عربي مثلًا، و تحدث مشاكل "هائلة" عند تقسيم نص غير لاتيني، أو يحوي حروف من لغات أخرى أو علامات، عند تقسيم ذلك النص إلى مصفوفة، كل عنصر يحوي حرفًا واحدًا، في هذه الحالة سيكون هناك عناصر تحوي أجزاءً من حروف، و ليست حروفًا كاملة!

يمكن للجميع القراءة أكثر، عن سبب إنشاء اللغة و ما تقدمه، عبر الموقع الرسمي: http://smpl-lang.com/ ، ويمكن بالطبع من الموقع ذاته، تحميل اللغة، و قراءة شرح و مرجع اللغة و غير ذلك.

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

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

واحدة من المشاكل كذلك هي أن منشئ المواقع، كلغة برمجة للويب، ليس على مرجعها أن يحتوي كيفية البحث عن استضافة بل وربما التسجيل فيها و تحميل برنامج FTP! لكن هذا ما يقلقني. حاولت أن أبسط الأمر، و كتبت تحت متطلبات تشغيل اللغة مثالًا على استضافة مجانية – أراها جيدة – تقدم هذه المتطلبات، لكن هذا قد يعتبر اعلانًا، و هو ليس في محله! عند التطوير للويب – و أرى هذه مشكلة – تحتاج لتعلم لغات عديدة، فلكتابة هيكل الصفحة لدينا xHTML، و لتنسيق تلك الصفحة لدينا CSS، و للتفاعل Client-side لدينا Javascript، و للتفاعل Server-side لدينا خيارات عديدة. المشكلة تكمن في أن من سيريد استخدام لغة Server-side سيكون بالتأكيد يستطيع استخدام و لو HTML فقط. لكن هل يمثل هؤلاء نسبة كبيرة في العالم العربي؟ أم سيكون على اللغة، توفير حل كذلك لهذه النقطة! أم سيكون علينا استهداف المبرمجين Server-side الجدد.

لحل نقطة الاستضافة، أفكر عمل شيء شبيه بـSafeMode و لكن في SMPL، و عبر لوحة تحكم (دون FTP) أتيح التسجيل في الموقع و إنشاء الصفحات، لكن لن تكفي هذه أكثر من التعريف باللغة..

يبدو أن المشاكل كثيرة، و أكثرها لا يتعلق بتطوير اللغة نفسها! بالنسبة لما يتعلق بالناحية التقنية أكثر في اللغة، هناك البطء في عملية التفسير (Parsing) عند استخراج الـtokens، كما ذكرت سابقًا أنها تعمل بقراءة حرف فالتالي في حلقة تكرارية حتى تصل إلى نهاية الكود. هل هناك طرق أخرى أكثر سرعة – وبنفس الكفاءة - من قراءة الحرف فالتالي؟

أخيرًا، أعود و أذكر موقع اللغة: http://smpl-lang.com/ ، يمكن منه قراءة مميزات لغة منشئ المواقع حتى الآن، و تحميل اللغة لمن أراد تجربتها و تطويرها، و بالتأكيد هذا الموقع مبرمج باستخدام لغة منشئ المواقع، و قواعد بيانات SMDB (الغيرعلائقية و التي تعمل دون كتابة SQL)، المذكورة أيضًا بشكل أكثر تفصيلًا في الموقع، و إن كانت غير مشروحة حتى الآن لضيق الوقت.

شكرًا لكم.

4
#2

السلام عليكم

string_random("مرحبًا" :then: "أهلًا");

لم افهم لم استخدمت ستة محارف في حين يمكنك الاستغناء عنها بمحرف واحد

string_random("مرحبًا" , "أهلًا");

بالاضافة الى مشكلة الحلقة التكرارية يعني انت تقوم بتفسير محرف محرف وضمن حلقة ستصبح العملبة من قوة للتربيع

لا ارى انه يمكنك استخدام صفوف بلغتك

ايضا ماذا لو اردت ان اكتب كود php ضمنها ام انك اعتمدت الفرز الكامل

نقطة هامة ان تضع html و كود مع بعض امر غير منطقي وكل اللغات تبتعد عن ذلك بغض النظر عن بعض الشواذ

برأيي ابحث عن فعالية حقيقية للمشروع الخاص بك

لفت انتباهي امر

string_random

math_random

هل هو ضعف أم قوة :S

وفقت

تم تعديل هذه المشاركة بواسطة X-File في 7 أغسطس 2011 في 15:05

In bad state

#3
X-File كتب:

السلام عليكم

string_random("مرحبًا" :then: "أهلًا");

لم افهم لم استخدمت ستة محارف في حين يمكنك الاستغناء عنها بمحرف واحد

string_random("مرحبًا" , "أهلًا");

بالاضافة الى مشكلة الحلقة التكرارية يعني انت تقوم بتفسير محرف محرف وضمن حلقة ستصبح العملبة من قوة للتربيع

لا ارى انه يمكنك استخدام صفوف بلغتك

ايضا ماذا لو اردت ان اكتب كود php ضمنها ام انك اعتمدت الفرز الكامل

نقطة هامة ان تضع html و كود مع بعض امر غير منطقي وكل اللغات تبتعد عن ذلك بغض النظر عن بعض الشواذ

برأيي ابحث عن فعالية حقيقية للمشروع الخاص بك

لفت انتباهي امر

string_random

math_random

هل هو ضعف أم قوة confused_smile.gif

وفقت

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

بالنسبة لقراءة حرف فالتالي، هذه الطريقة هي التي تتبعها أغلب اللغات التي أعرفها، و هذا - حسب علمي البسيط - هو الطبيعي!! قراءة حرف فالتالي لفهم لتفسير الكود. هل لديك حل آخر؟

لو أردت أن تكتب كود PHP، اكتبه خارج SMPL، داخلها لن يعمل!

الـHTML يوضع خارج <?smpl> و <!smpl?> مثل PHP بالضبط، من قال أنه يمكن كتابته وسط الكود!!!

بالنسبة، لـstring_random و math_random، واحدة تخرج أرقام من و إلى، و الثانية تخرج نص من بين المحددين. ما المشكلة فيهما؟

الفعالية إن شاء الله موجودة، قل لي - إذا كنت استخدمت PHP - كم مرة لاحظت الفرق بين substr و str_replace و strpos، و explode، و الكثير، كلهم دوال للنصوص، لماذا يكتبون بطرق مختلف إلى حد غير طبيعي؟

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

لماذا لا تفهم اللغة أن الحرف العربي هو حرف واحد، و ليس 2 أو 3 أو 4؟ لماذا يسبب لي الترميز مشاكلًا طوال المشاريع، بينما من السهل التغلب على هذه المشاكل؟

الخ.. في رأيك ألا يحتاج "كل" هذا و غيره لما يحله؟

أشكرك مرة أخرى..

تم تعديل هذه المشاركة بواسطة sitesmaker في 7 أغسطس 2011 في 15:17

#4

لاجظت شىء جميل اود الاشارة اليه

اسلوبك فى الشرح باللغة العربية ماشاء الله اكثر من رائع

عندما فتحت الموقع http://smpl-lang.com/ شعرت بجاذبية نحو قراءة كل كلمة فيه وكلما قرات كلما عجبنى اكثر :)

ملاحظة بسيطة بالنسبة لصفحة التحميل

http://smpl-lang.com/download.smpl

ملف التحميل مكتوب SMPL 0.1.3 فى حين ان الاصدار هو الاصدار 0.2،

امر اخر بالنسبة للمصطلحات والاختلاف بينك وبين الاخوة

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

من خلال الاطلاع السريع حاليا على الشفيرة المصدرية

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

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

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

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

مطور لغة ال python و ال ruby قاموا باستخدام لغة ال C ... لكن قدموا لغات تختلف تماما عن لغة C من حيث الشكل والمهام والخصائص

ان البناء فوق PHP يجعلك امام تحدى كبير وهو ان SMPL يجب ان تختلف عن PHP وتكون افضل منها بمراحل مما يجعل المطور يختار SMPL

ان المنافسة فى عالم لغات البرمجة ليست كما كان الحال عليه فى السبعينات والثمانينات بل والتسعينات

نحن الان امام لغات تستند على التقنية اكثر من العلم

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

وهذه المسالة اما تكون مهمة شركات ... او افراد فى المصادر المفتوحة

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

بين الامور الاخر مثل الاداء والاستقرار والدقة.

انا ابارك لك على فكرة المشروع والخص لك الاقتراحات التالية

1 - دراسة ال Compilers وبناءها بالطرق المتعارف عليها دوليا من المراجع العلمية

2 - عمل design واعطاءه الوقت الكافى جدا قبل التطبيق حتى تصمم لغة متميزة وقادرة لى المنافسة

3 - اغلب المساهمات العربية التى يمكن ان تحصل عليها ستكون فى الدعاية والامثلة والتوثيق .... فكر فى استقطاب مطورين اجانب

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

5 - استخدم اساليب متطورة فى الشرح (مثل شروحات الفيديو)

6 - فى البداية لاتفكر فى الانتشار والدعاية وانما فكر جيدا فى جوهر العمل الذى تقدمه

7 - لاتشغل بالك كثيرا بالاختلافات التى تستند عل وجهة نظر شخصية وركز على المضمون والجوهر العلمى فقط

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

والله الموفق

3
#5

بالنسبة للغة العربية اتوقع arphp مكتة خالد الشعمة تحل المشكلة وبكفائة وبها عدة ميزات اتوقع وصلت لحد 27 ميزة ويجني منها مال مع انها مجانية

بالنسبة لتبسيط اللغة ( عندما نحتاج الى تطبيق قوي انا متاكد ستعود لل php )

سؤال هل استكملت كافة الدوال من string to date to math to network to to.....

بالنسبة لما تتحدث عنه من

string_random("مرحبًا" , "أهلًا");

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

بالنهاية انا كمطور يهمني سهولة اللغة وهذا أمر مفروغ منه ولكنني كما قلت لك لا اراها تدعم الصفوف

رايي انه ينقص الكثير

تم تعديل هذه المشاركة بواسطة X-File في 7 أغسطس 2011 في 15:35

In bad state

#6
PWCT Maker كتب:

لاجظت شىء جميل اود الاشارة اليه

اسلوبك فى الشرح باللغة العربية ماشاء الله اكثر من رائع

عندما فتحت الموقع http://smpl-lang.com/ شعرت بجاذبية نحو قراءة كل كلمة فيه وكلما قرات كلما عجبنى اكثر :)

ملاحظة بسيطة بالنسبة لصفحة التحميل

http://smpl-lang.com/download.smpl

ملف التحميل مكتوب SMPL 0.1.3 فى حين ان الاصدار هو الاصدار 0.2،

امر اخر بالنسبة للمصطلحات والاختلاف بينك وبين الاخوة

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

من خلال الاطلاع السريع حاليا على الشفيرة المصدرية

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

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

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

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

مطور لغة ال python و ال ruby قاموا باستخدام لغة ال C ... لكن قدموا لغات تختلف تماما عن لغة C من حيث الشكل والمهام والخصائص

ان البناء فوق PHP يجعلك امام تحدى كبير وهو ان SMPL يجب ان تختلف عن PHP وتكون افضل منها بمراحل مما يجعل المطور يختار SMPL

ان المنافسة فى عالم لغات البرمجة ليست كما كان الحال عليه فى السبعينات والثمانينات بل والتسعينات

نحن الان امام لغات تستند على التقنية اكثر من العلم

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

وهذه المسالة اما تكون مهمة شركات ... او افراد فى المصادر المفتوحة

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

بين الامور الاخر مثل الاداء والاستقرار والدقة.

انا ابارك لك على فكرة المشروع والخص لك الاقتراحات التالية

1 - دراسة ال Compilers وبناءها بالطرق المتعارف عليها دوليا من المراجع العلمية

2 - عمل design واعطاءه الوقت الكافى جدا قبل التطبيق حتى تصمم لغة متميزة وقادرة لى المنافسة

3 - اغلب المساهمات العربية التى يمكن ان تحصل عليها ستكون فى الدعاية والامثلة والتوثيق .... فكر فى استقطاب مطورين اجانب

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

5 - استخدم اساليب متطورة فى الشرح (مثل شروحات الفيديو)

6 - فى البداية لاتفكر فى الانتشار والدعاية وانما فكر جيدا فى جوهر العمل الذى تقدمه

7 - لاتشغل بالك كثيرا بالاختلافات التى تستند عل وجهة نظر شخصية وركز على المضمون والجوهر العلمى فقط

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

والله الموفق

السلام عليكم، أشكرك كل الشكر أخي محمود. تم إصلاح نقطة التحميل! بالنسبة للـCompilers حقًا سأحاول أن أطبق ما قلت، و أبحث عن كتب و مراجع.

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

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

لا أفكر بشكل كبير في "الانتشار" فقط أفكر في وجود مستخدمين حقيقيين - ولو قليلين - للغة!

X-File كتب:

بالنسبة للغة العربية اتوقع arphp مكتة خالد الشعمة تحل المشكلة وبكفائة وبها عدة ميزات اتوقع وصلت لحد 27 ميزة ويجني منها مال مع انها مجانية

بالنسبة لتبسيط اللغة ( عندما نحتاج الى تطبيق قوي انا متاكد ستعود لل php )

سؤال هل استكملت كافة الدوال من string to date to math to network to to.....

بالنسبة لما تتحدث عنه من

string_random("مرحبًا" , "أهلًا");

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

بالنهاية انا كمطور يهمني سهولة اللغة وهذا أمر مفروغ منه ولكنني كما قلت لك لا اراها تدعم الصفوف

رايي انه ينقص الكثير

أشكرك جزيل الشكر على الاهتمام و الرد يا أخي.

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

بالنسبة لكلمة "الصفوف"، صراحةً لا أفهمها. هل تقصد المصفوفات؟

ما الذي ينقصها في اللغة؟ هل تقصد المفاتيح النصية؟ هي ممكنة دون استخدام array() بالطريقة العادية، و طريقة array() سهلة إن شاء الله، فقط لا أريد إضافة إمكانيات أكثر من التي أستطيع شرحها و توثيقها بالشكل المناسب في إصدار "تجريبي" يحمل رقم 0.2!!!! و سيتم كذلك إن شاء الله إضافة بديل لـforeach، ربما يسمى array_loop أو فقط نفس foreach.

بالنسبة للسهولة، هل ترى :then: تجعل اللغة صعبة فعلًا، هل أحولها إلى then فقط؟ أم إلى فاصلة و مشاكلها؟ إذا كنت تقصد كون :then: ذات شكل غريب فلا أجد مشكلة، لغة مثل Ruby مليئة بأشياء أغرب!

شكرًا.

#7

سؤال قبل المراجعة من جديد للكود والامثلة وان اطبق عملي

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

GoodBye

#8
MohamedIBrahim كتب:

سؤال قبل المراجعة من جديد للكود والامثلة وان اطبق عملي

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

بالنسبة للبطء، كما ذكرت تم رفع السرعة - و لله الحمد - لأكثر من الضعف! صفحة عادية صغيرة، فيها مصفوفة من 10 عناصر و متغيرين و حلقة تكرارية، تكون أبطأ من PHP بحوالي من 5 إلى 10 مرات. صفحة متوسطة فيها تعريف لدالتين و كود HTML، و بضع جمل شرطية و هذه الأشياء تكون تقريبًا أبطأ حوالي 18 إلى 25 مرة، و الرقم قد يزيد عند 500 سطر إلى 50 مرة!! بالنسبة للموقع، هذا البطأ آت من الجافاسكريبت الخاص بالإعلان و الخاص بالاحصائيات، لا أكثر! موضوع البطأ من الصعب أن تشعر به في موقع عادي، يفرق في محرك بحث مثلًا، أو منتدى كهذا.

بالنسبة لكلام أخي محمود، بالطبع أفادني لدرجة أني بدأت البحث، بل ووجدت 3 كتب جيدة. لكني متأكد أن جعل المفسر أكثر واقعية، لن يفيد إلا في جعل اللغة أبطأ، أو بالأكثر لن تصبح أسرع بشكل ملحوظ! في رأسي العديد من الأشياء التي يمكن أن تحسن من السرعة، إلا أنها - بالطبع - لن تجعل اللغة أبطأ من PHP بمرتين أو حتى 5 في الملفات الطويلة!

قارن أنت الفرق بين تفسير و تشغيل برنامج بـC و آخر بـPHP!

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

شكرًا.

#9
sitesmaker كتب:

بالنسبة للبطء، كما ذكرت تم رفع السرعة - و لله الحمد - لأكثر من الضعف! صفحة عادية صغيرة، فيها مصفوفة من 10 عناصر و متغيرين و حلقة تكرارية، تكون أبطأ من PHP بحوالي من 5 إلى 10 مرات. صفحة متوسطة فيها تعريف لدالتين و كود HTML، و بضع جمل شرطية و هذه الأشياء تكون تقريبًا أبطأ حوالي 18 إلى 25 مرة، و الرقم قد يزيد عند 500 سطر إلى 50 مرة!! بالنسبة للموقع، هذا البطأ آت من الجافاسكريبت الخاص بالإعلان و الخاص بالاحصائيات، لا أكثر! موضوع البطأ من الصعب أن تشعر به في موقع عادي، يفرق في محرك بحث مثلًا، أو منتدى كهذا.

بالنسبة لكلام أخي محمود، بالطبع أفادني لدرجة أني بدأت البحث، بل ووجدت 3 كتب جيدة. لكني متأكد أن جعل المفسر أكثر واقعية، لن يفيد إلا في جعل اللغة أبطأ، أو بالأكثر لن تصبح أسرع بشكل ملحوظ! في رأسي العديد من الأشياء التي يمكن أن تحسن من السرعة، إلا أنها - بالطبع - لن تجعل اللغة أبطأ من PHP بمرتين أو حتى 5 في الملفات الطويلة!

قارن أنت الفرق بين تفسير و تشغيل برنامج بـC و آخر بـPHP!

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

شكرًا.

انصحك بكتاب

compiler design in C

وكتاب

Compiler Design Algorithms

وخاصة الكتاب الثاني مفيد جدا

بخصوص التجربة ان شاء الله انا اقوم بهذا الامر حاليا بقراءة الامثلة وغيرها

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

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

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

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

1

GoodBye

#10

أموت واعرف عندما استدعي التأكد من عمل اللغة يأتي هذا

http://ar-systems.tk/smpl_translator.php

اقتباس

إذا كنت تستعرض هذا الصفحة من متصفح ويب، و ظهر لك ثلاثة أسطر في الأسفل، فإن لغة منشئ المواقع تعمل لديك الآن!

إذا ظهرت لك علامتي // فهذا يعني أن اللغة لا تعمل لديك!

أهلًا بالعالم!

إذا ظهر لك هذا النص في الصفحة، فلغة منشئ المواقع ستكون تعمل!!

يمكنك إذن البدأ بتحرير محتوى الصفحة index.smpl، و قراءة شرح اللغة من الموقع الرسمي للغة

هذه يعني النجاح فى تشغيل اللغة

عندما أستدعي ملف index.smbl كتجربة لا يعمل ويعطيني

http://ar-systems.tk/index.smpl

اقتباس
Error 404: Page doesn't exist.

فجربت عمل ملف أخر

http://ar-systems.tk/mohamed.smbl

وكتبت بداخله كود وعند استدعائه يظهر التالي

اقتباس
<html dir="rtl">

<head>

<title>صفحة تجريبية بلغة منشئ المواقع</title>

</head>

<body>

<p>

<?smpl>

show "هذا نص مكتوب باستخدام لغة منشئ المواقع.";

<!smpl?>

</p>

</body>

</html>

وهو نفس الكود الذي كتبته وهو من مثالك الاول كتجربة

فما هى المشكلة

GoodBye

#11

هدية لك اخي الكريم

http://www.rohitab.com/discuss/topic/37685-smbl-web-language/

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

ومنهم صاحب هذا الموقع

http://www.gamozo.org

وهو صمم لغة برمجة وصمم نظام تشغيل وصمم CPU وصمم العديد من المشاريع الكبيرة الاخري رغم سنه الصغير 18 عاما فقط

تم تعديل هذه المشاركة بواسطة MohamedIBrahim في 7 أغسطس 2011 في 18:13

1

GoodBye

#12

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

اسم اللغة، و الامتداد هما smpl و ليس smbl، فرق مهم للغاية.

#13
sitesmaker كتب:

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

اسم اللغة، و الامتداد هما smpl و ليس smbl، فرق مهم للغاية.

http://ar-systems.tk/

تم حل المشكلة عفوا للخطأ

GoodBye

#14
MohamedIBrahim كتب:

هدية لك اخي الكريم

http://www.rohitab.c...l-web-language/

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

ومنهم صاحب هذا الموقع

http://www.gamozo.org

وهو صمم لغة برمجة وصمم نظام تشغيل وصمم CPU وصمم العديد من المشاريع الكبيرة الاخري رغم سنه الصغير 18 عاما فقط

ما شاء الله! جاري القراءة إن شاء الله.

أشكرك جزيل الشكر، فعلت ما لم أكن لأجرؤ أن أفعله إطلاقًا!!

أرجو أن تخبرني بآخر تطورات تجربة اللغة، معك.

#15
sitesmaker كتب:

ما شاء الله! جاري القراءة إن شاء الله.

أشكرك جزيل الشكر، فعلت ما لم أكن لأجرؤ أن أفعله إطلاقًا!!

أرجو أن تخبرني بآخر تطورات تجربة اللغة، معك.

لماذا الخجل

http://www.dreamincode.net/forums/topic/242634-smbl-web-language/

GoodBye

#16

كفاية! حرام عليك. واحدة واحدة!

يا أخي أرجوك، يكفي هذا. للمرة الثانية، اسم اللغة SMPL و ليست SMBL!!

أشكرك، حقًا على مجهودك و على المواضيع، و الكتب، و الاقتراحات و غيرهم.

و أرجو أن تخبرني أين وصلت في تجربة اللغة؟ هل عملت معك؟

#17
sitesmaker كتب:

كفاية! حرام عليك. واحدة واحدة!

يا أخي أرجوك، يكفي هذا. للمرة الثانية، اسم اللغة SMPL و ليست SMBL!!

أشكرك، حقًا على مجهودك و على المواضيع، و الكتب، و الاقتراحات و غيرهم.

و أرجو أن تخبرني أين وصلت في تجربة اللغة؟ هل عملت معك؟

العيب من KeyBoard مش مني :) :lol:

حتي الان اجد صعوبة كبيرة فى فهم ميكانيكية عمل اللغة ليس فى كتابة الاكواد

بل فى كيفية تشغيلها

GoodBye

#18
MohamedIBrahim كتب:

العيب من KeyBoard مش مني :) :lol:

حتي الان اجد صعوبة كبيرة فى فهم ميكانيكية عمل اللغة ليس فى كتابة الاكواد

بل فى كيفية تشغيلها

تشغيلها من وجهة نظر من؟ من وجهة نظر مبرمج PHP، أم وجهة نظر "مستخدم" للغة SMPL؟؟؟

إذا كانت الأولى، فهذا خطأي ربما لأني لم أكتب كودًا واضحًا.

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

إذا كانت الثانية، فعليك بكتابة أي ملف .smpl، وضع فيه مؤقتًا HTML فقط حتى نحدد أين المشكلة بالضبط.

لاحظ حرف الـp، للمرة العشرين! بعد كتابة الملف، ارفعه على الموقع، و جرب فتحه، و لا تنسى حرف الـp.

تم تعديل هذه المشاركة بواسطة sitesmaker في 7 أغسطس 2011 في 19:44

#19

صفوف جمع لصف اي class

اي اقصد غرضية التوجه

In bad state

#20
X-File كتب:

صفوف جمع لصف اي class

اي اقصد غرضية التوجه

نعم، أنت على حق! اعذرني لم أفهم الكلمة في البداية، بدت غريبة علي، أعرف أن كلاس = صنف/فئة لا صف!

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

مثل:

array_elements_count

array_first_element_remove

و غيرهما.

#21

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

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

لا أستطيع أن أشرح تلك الخاصية باختصار عبر أي شيء غير الكود:

<?smpl>
show 'Hello World! ' * 3; // Hello World! Hello World! Hello World! 
show "<br />";

my_array = array('B' :then: 'D');
show "ABCD" - my_array; // AC
show "<br />";

exploded_string = "W W W!" - "!" / " ";
show exploded_string[0]; // W
show exploded_string[1]; // W
show exploded_string[2]; // W
show "<br />";

my_second_array = array("My First Element!");
my_third_array = array("My Second Element!" :then: "My Third Element!");
show array_show(my_second_array + my_third_array + "My Last Element!");
// Array ([0] => My First Element! [1] => My Second Element! [2] => My Third Element! [3] => My Last Element!)
<!smpl?>

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

التعليقات الموجودة في الكود توضح النتائج!

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

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

علامة * تستخدم بشكل عادٍ مع الأرقام أيضًا، لكن أيضًا مع النصوص يمكنها تكرار نص عدد من المرات!

علامة / تستخدم كذلك بشكل عادٍ مع الأرقام، لكن مع النصوص يمكنها أن تحول نص إلى مصفوفة (explode في PHP، و split في Python).

الفكرة الأساسية لهذه الطريقة، كما قد يكون واضحًا للبعض، هي لغة Ruby، مع عدد من الاختلافات.

ما آراءكم إخواني الكرام؟

1
#22

السلام عليكم،

للعديد من الأسباب، تم إطلاق الاصدار 0.2.3 مبكرًا - وتم التخلي عن إضافة و لو دالة واحدة جديدة للغة (كان من المخطط إضافة عدد غير صغير من الدوال).

ما الجديد إذن إن لم يكن هناك دوال إضافية؟

- الاصدار الجديد - تقريبًا و لله الحمد - يعمل بسرعة PHP!!! كيف؟ الاجابة في كلمة واحدة: Caching! تم إضافة نظام نسخ مخبأة للملفات، بحيث يتم تفسير الكود إلى PHP مرة واحدة فقط (عند طلب الصفحة)، و يتم حفظ الكود الجديد في مكان آمن، ثم عند طلب الصفحة مرة أخرى يتم فقط تنفيذ كود PHP مرة أخرى دون إعادة تفسير الملف!!!

لكن ماذا إذا تم تعديل الملف؟! لا مشكلة، يتم إعادة تفسير الملف مرة أخرى، و حفظ نسخة مخبأة منه. لكن هكذا، إذا تم حذف الملف، ستظل النسخة المخبأة موجود إلى الأبد! لا، يتم حذف النسخ المخبأة كل 24 ساعة آليًا!

لكن أنا لا تهمني السرعة بقدر ما تهمني المساحة! بسيطة، يمكنك منع النسخ المخبأة عبر ملف اعدادات اللغة - هكذا ستعمل اللغة بنفس الطريقة القديمة!

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

هناك أيضًا ميزة أخرى، يرجى مراجعة الرد السابق.

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

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

4
#23
اقتباس

السلام عليكم،

للعديد من الأسباب، تم إطلاق الاصدار 0.2.3 مبكرًا - وتم التخلي عن إضافة و لو دالة واحدة جديدة للغة (كان من المخطط إضافة عدد غير صغير من الدوال).

ما الجديد إذن إن لم يكن هناك دوال إضافية؟

- الاصدار الجديد - تقريبًا و لله الحمد - يعمل بسرعة PHP!!! كيف؟ الاجابة في كلمة واحدة: Caching! تم إضافة نظام نسخ مخبأة للملفات، بحيث يتم تفسير الكود إلى PHP مرة واحدة فقط (عند طلب الصفحة)، و يتم حفظ الكود الجديد في مكان آمن، ثم عند طلب الصفحة مرة أخرى يتم فقط تنفيذ كود PHP مرة أخرى دون إعادة تفسير الملف!!!

لكن ماذا إذا تم تعديل الملف؟! لا مشكلة، يتم إعادة تفسير الملف مرة أخرى، و حفظ نسخة مخبأة منه. لكن هكذا، إذا تم حذف الملف، ستظل النسخة المخبأة موجود إلى الأبد! لا، يتم حذف النسخ المخبأة كل 24 ساعة آليًا!

لكن أنا لا تهمني السرعة بقدر ما تهمني المساحة! بسيطة، يمكنك منع النسخ المخبأة عبر ملف اعدادات اللغة - هكذا ستعمل اللغة بنفس الطريقة القديمة!

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

كلام جميل :) واسلوب فى الشرح اجمل واجمل :)

الطبيعى ان تطلق تحديث يومى او سريع للشفيرة المصدرية طالما ان العمل مفتوح المصدر

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

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

اما الاصدارات السريعة فان من يستعملها يستعملها على مسئوليته ويفيدك بانه يكون tester ويساعد فى كشف الاخطاء

والله الموفق

#24

اذا كانت SMPL لغة برمجة , فاين استقلاليتها

انواع البيانات - الدوال - الاخطاء - التكرار - الشرط ... الخ

كل هذه الاشياء مطابقة 100% للغة php

واخطاءها اكثر

طيب وين الجديد وايش الي يميز SMPL عن php

اذا كانت SMPL لغة برمجة يعني كذا لما استخدم دالة eval هل يعني هذا اني بنيت مترجم للغة برمجة !!

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#25

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

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

باختصار شديد، لا داع للتعقيد دون فائدة و سبب مقنع! لماذا أغير الأشياء الجيدة في PHP؟ ليست كلها عيوب، بعض الأشياء حافظت عليها و أنوي تعديلها في المستقبل القريب (مثل تعامل if مع القيم و بعض مشاكل الـweak typing الغير موجودة في لغات أخرى). و أشياء أخرى لا داع لتغييرها أبدًا!

لماذا يجب أن أغير كل شيء! أمامك PHP نسخة من C في العديد من الأشياء و منها بعض الدوال! فقط تبسيطات في التعامل مع الويب مثل تجهيز الـPost و الـGet و الدوال المخصصة للويب! لكنها في Syntax قريبة للغاية من C، و بما أني أردت البساطة و صغر الحجم و سهولة تنصيبها على أي خادم ويب دون حاجة لصلاحيات كاملة عليه فقد كتبتها بـPHP لمنع اختراع العجلة من جديد، و بالتالي تركت بعض ما وجدت، و دالة eval لا عيب فيها و لا غنى عنها على الأقل إذا لم أكن أريد إرسال commands للسيرفر ككل دون المرور بمرحلة PHP، و هذا الشيء غير متاح في أغلب خوادم الويب، و حتى إن كانت اللغة مختلفة كل الاختلاف فيجب و تم تنفيذ كل تعليمة وحدها يجب أن أستخدم eval لتنفيذ أي كود PHP، أو include!!

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

لا أريد أن أكرر لماذا لا يصلح كتابة اللغة بـC مثلًا، فقد كررت ذلك مرارًا.

بالنسبة للمطابقة، أما عن الأخطاء، فأنا أؤكد لك أن أخطاء منشئ المواقع أوضح من أخطاء PHP، أخطاء PHP توضح لك اسم الـtoken الذي فيه المشكلة و الذي هو اسم كثيرًا ما لا تستطيع أن تفهم منه شيئًا، بينما أسماء الـtokens في منشئ المواقع أكثر تعبيرًا مثلًا، و الخطأ يظهر أول 20 حرف من القيمة التي سببت الخطأ فبدلًا من أن يقول لك T_STRING، يكتب لك النص و بين قوسين يوضح نوعه!

و أما عن أنواع البيانات، فلغة منشئ المواقع، هههههه ليس فيها Objects! و لكن فيها الأرقام (numbers عمومًا و ليس هناك int و float)، و فيها النصوص، و فيها المصفوفات، و فيها boolean values، هل هذه الأشياء غريبة أو جديدة أو غير موجودة إلا في PHP؟!

و أما عن البقية فقد وضحت أن الاختلاف الكامل 100% ليس المطلوب و لا داع له، فالأمر ليس الاختلاف و انتهى!

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

شكرًا.

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