أهم أقسام المدونة
▼
الصفحات
▼
الثلاثاء، 31 مارس 2020
الأحد، 29 مارس 2020
فيجوال بيزيك: لغة الحلول الجاهزة!
فيجوال بيزيك دوت نت: لغة
الحلول الجاهزة!
أكبر مشكلة واجهتني في Vazor و ZML هي عدم وجود إكمال تلقائي عند كتابة عناصر HTML5
داخل XML Literals في فيجوال بيزيك.. والمفروض كما تزعم وثائق اللغة، أنني أستطيع
الحصول على إكمال تلقائي باستخدام ملف xsd يحتوي على المخطط
Schema
الخاص بكود XML.. ولحسن الحظ هناك ملف من هذا النوع يحتوي على مخطط HTML5
تستخدمه ميكروسوفت في محرر كود HTML5 في دوت نت، لكن حينما حاولت استخدامه بالطريقة المشروحة في
الوثائق، لم أحصل على أي نتيجة!
وقد اشتكيت بهذا الخصوص لفريق Roslyn
المسئول عن لغتي فيجوال بيزيك وسي شارب ودعمها في VS.NET،
فاتضح أنهم لم يضيفوا هذه الميزة إلى روزلين عند إنشائه عام 2015!
وقد مر عام منذ قدمت الشكوى ولم يفعلوا شيئا بهذا الخصوص، وبعد
إعلان ميكروسوفت عن خطتها لإهمال فيجوال بيزيك، وعودتي لإكمال مشروع Vazor
لتصميم صفحات الويب في مشاريع ASP.NET
Core بلغة فيجوال
بيزيك، قررت أن أحل مشكلة مخططات xsd بنفسي، بكتابة مزود إكمال تلقائي CompletionProvider
يؤدي هذه الوظيفة.. ونظرا لأني ما زلت أستكشف طريقي في الكود المصدري لروزلين
وفيجوال بيزيك، فقد قررت أن أعتمد على أي مزود إكمال تلقائي سابق لأفهم كيف يعمل،
ومن ثم أعدل الكود لأحصل على المزود الجديد الخاص بي.
هنا خطرت في ذهني فكرة، هي أن أنظر في مزود الإكمال التلقائي
الخاص بتعليقات الوثيقة XML
Document Comments، وهي تعليقات
تكتب في فيجوال بيزيك وسي شارب في شكل كود XML لشرح وظائف
الخصائص والدوال، ومحرر الكود يدعم الإكمال التلقائي لعناصر XML
المستخدمة في هذه التعليقات.
وبالفعل، أخذت نسخة من مزود الإكمال الخاص بهذه التعليقات،
وأجريت فيها تعديلات طفيفة سريعة، جعلتني أحصل على إكمال تلقائي في XML Literals،
كما ترون في الصورة!
طبعا اقتراحات الإكمال هي نفسها الخاصة بتعليقات وثقية XML،
وهذا ليس مفيدا، لكن الخطوة التالية هي أن أعدل المزود ليأخذ اقتراحات الإكمال من
مخطط xsd
الخاص بـ HTML5، وهذا ما سأشرع فيه غدا بإذن الله.. بعد هذا إن شاء الله سأكتب
ملف xsd
يحتوي على تعريف عناصر ZML، لأقترحها في الإكمال التلقائي أيضا.
ما يهمني أن أركز عليه هنا، هو كم الظلم والإهمال الذي تعرضت
له فيجوال بيزيك.. لقد استطعت في دقائق وبمعرفة سطحية عن روزلين، أن أعرض اقتراحات
تكملة لـعناصر XML، لأن معظم الكود مكتوب مسبقا بالفعل، ولو أن هناك من يهتم بفيجوال
بيزيك في ميكروسوفت، لكانت هذه المشكلة حلت في يوم واحد منذ شكوت بسببها!
نفس الأمر ينطبق على Vazor.. فيجوال بيزيك
تحتوي على XML literals منذ 2008، ولم تكن بحاجة إلى إنشاء Razor
لتصميم صفحات ASP.NET Core، فهي بالفعل تحتوي على آلية خاصة بها لمزج كود HTML
بكود فيجوال بيزيك، وهذا أسهل بكثير في تعلمه وكتابته من كود Razor،
بل أنه أسهل وأرخص بالنسبة لفريق التصميم الذي يعاني صعوبات جمة لترجمة كود سي
شارب الممزوج بكود HTML في صفحات Razor!.. كود XML
literals هو أسهل وأرخص
آلية ممكنة، وكان يجب عليهم إضافتها إلى C# بدلا من إهدار
المال والوقت والجهد في كود Razor! (هناك مبرمجون كثر يطالبون منذ سنوات بإضافة XML Literals
إلى سي شارب لأنها تسهل تصميم وثائق XML، لكن هذا الطلب دائما يقابل بالرفض من فريق سي شارب!).
فيجوال بيزيك أكبر بكثير من صياغتها السهلة والمريحة للكود،
فهذه اللغة تحمل روح بيل جيتس المغامرة، التي جعلت فيجوال بيزيك تفكر دائما في
الحلول الأذكى والأكثر إراحة للمستخدم، لدرجة أننا ما زلنا نفاجأ إلى اليوم أن كل
الحلول موجودة بها، لكن البعض عصبوا أعينهم عنها!
ليست صدفة أن تزامن رحيل بيل جيتس عن عضوية مجلس إدارة
ميكروسوفت مع إعلانها عن تجميد تطوير فيجوال بيزيك، فقد بدآ معا، ورحلا معا.
I_love_VB_NET
الجمعة، 27 مارس 2020
الأربعاء، 25 مارس 2020
مشروع المتجر الالكتروني
نسخة
VB.NET من مشروع المتجر
الالكتروني eShopOnWeb
سبق
أن نشرت هذا المشروع كنموذج عملي لاستخدام Vazor وZML في تصميم صفحات
الويب، وها أنا أعيد نشره مع اختلافين هامين:
1-
هذه نسخة أحدث تستهدف ASP.NET Core 3.1.
2-
في المرة السابقة تركت المشروعين ApplicationCore و InfraStructure مكتوبة بلغة C#، لكن في هذه المرة حولتهما إلى كود فيجوال بيزيك، وبهذا صارت كل
أجزاء المشروع مكتوبة بلغة VB.NET.
هذا
هو مستودع المشروع على GitHub..
يمكنكم تنزيل المشروع إلى أجهزتكم بضغط الزر الأخضر الموجود على يمين الصفحة
ومكتوب عليه Clone or download.
أرجو
أن يفيدكم.
#I_love_VB_NET
الثلاثاء، 24 مارس 2020
الأحد، 22 مارس 2020
مشاريع ASP.NET Core 3.1 بفيجوال بيزيك
إنشاء مشاريع ASP.NET Core 3.1
بلغة VB.NET
طورت مشروع Vazor ليعمل على .NET
Core 3.1.. يمكنكم تحميل قالب
المشاريع الخاص بـ Vazor واتبعوا الخطوات التالية:
1.انقر مرتين على الملف VazorTemplateSetup.vsix
لتشغيل برنامج الإعداد، وأكمل خطوات الإعداد.
2. أنشئ مشروعا جديدا في فيجوال ستديو.. في نافذة اختيار نوع
المشروع اكتب Vazor في مربع البحث.. سيظهر لك نوعان من مشاريع Varor
في القائمة، أحدهما لإنشاء مشروع MVC والآخر لإنشاء مشروع Razor
Pages (أسميه هنا Vazor Pages)..
اختر النوع الذي تريده.. واصل خطوات إنشاء المشروع.
3. لديك الآن مشروع ASP.NET Core
مكتوب بلغة فيجوال بيزيك دوت نت، ويحتوي على مثال لإنشاء الصفحات باستخدام Vazor..
جرب تشغيل المشروع.
4. إذا حدثت أي أخطاء، فلا تقلق، فهي بسبب عدم وجود بعض الحزم
البرمجية NuGets على جهازك.. لاستعادة هذه الحزم، اضغط اسم مجموعة المشاريع في Solution Explorer
ومن القائمة الموضعية اضغط Restore Nugets..
أو يمكنك استخدام القائمة الرئيسية:
Tools\NuGet Package manager Console\Package manager
Console
لفتح نافذة الأوامر، واكتب فيها:
dotnet restore
واضغط زر الإدخال وانتظر إلى حين انتهاء العملية.. جرب تشغيل
البرنامج الآن وسيعمل على ما يرام.
5. إذا أردت إضافة صفحات Vazor
جديدة إلى المشروع، اضغط القائمة الرئيسية Project ومنها اضغط Add New Item..
سترى أعلى نافذة اختيار العناصر عنصرين جديدين يخصان Vazor،
أحدهما لإضافة صفحة إلى مشاريع MVC والآخر لإضافة صفحة لمشاريع Razor Pages..
اختر العنصر المناسب لنوع المشروع وغير اسمه الافتراضي إلى ما تريد، واضغط زر
الإضافة.
استمتع بإنشاء مشاريع الويب بلغة فيجوال بيزيك دوت نت بهذه
الطريقة كما تشاء.
ملحوظة:
هناك مشروع كامل هو eShopOnWeb مكتوب بلغة سي شارب ترجمته إلى VB.NET
وعدلت صفحاته لتصير مكتوبة بـ Vazor و ZML وهو يعمل حاليا لكن على إصدار Vazor المكتوب بدوت نت كور 2.2.. أعمل حاليا
على تعديله إلى دوت نت كور 3.1.. وسأنشره قريبا على GitHub
قريبا بإذن الله.
ستجدون تفاصيل أكثر عن استخدام Vazor
في المستودع لكنها بالإنجليزية.. لكن هناك شرح بالعربية على مدونتي.
ولا تنسوني من دعائكم.
#I_love_VB_NET
السبت، 21 مارس 2020
أنا أحب فيجوال بيزيك
أدعو عشاق
فيجوال بيزيك دوت نت
إلى التغريد على هذا الهاشتاج في فيسبوك وتويتر
#I_love_VB_NET
الجمعة، 20 مارس 2020
قل وقل وقل
أناقش واياكم أمورا بسيطة من أجل لغة أفضل لا أعتذر عنها بل
أستحق عنها جائزة :D
دردشة عن الاستخدام المعاصر لبعض كلمات اللغة والانزياح
الدلالي ورد على متعصبي قل ولا تقل.
من يقف وراء كورونا
هناك عدة احتمالات وراء كورونا، أناقشها في هذا التسجيل الصوتي:
1- هل تحاول الصين التخلص من العواجيز؟.. 11% من الصينيين فوق 65
سنة (حوالي 140 مليون مواطن!)، ومعظم وفيات كورونا من العواجيز فوق السبعين!
2- هل هي حرب بيولوجية؟
3- هل تنشر شركات الأدوية الذعر لبيع اللقاحات والأمصال
والأدوية بالمليارات؟.. وهل يمكن أن يكون كورونا مجرد فيروس عادي موجود منذ آلاف
السنين دون أن يقلق منه أحد؟
الثلاثاء، 17 مارس 2020
السبت، 14 مارس 2020
فيجوال بيزيك تموت!
خبر صادم: ميكروسوفت
تضع فيجوال بيزيك دوت نت في الثلاجة!
شعرت بالأمس أنني فقدت عزيزا، أو هذا ما حدث بالفعل فهذه اللغة كانت أجمل رفقائي طوال ربع قرن خضنا معا مغامرات مدهشة وأمضينا معا أمتع الأوقات!
فقد أعلنت ميكروسوفت فجأة أن فيجوال بيزيك دوت نت ستعمل على منصة .NET 5 لكن في المجالات التالية فقط:
- Class Library
- Console Apps
-
Windows Forms
- WPF
- Worker Services
- ASP .NET Core Web API
وهي المجالات التقليدية التي كانت فيجوال بيزيك تعمل عليها
سابقا.. هذا يسمح للتطبيقات الحالية بالانتقال من منصة .NET Framework إلى منصة .NET Core
التي ستسمى في الإصدار القادم في شهر نوفمبر .NET 5.
كان هذا سيبدو مبشرا، لولا أن ميكروسوفت أعلنت خبرين صادمين:1- أنها ستتوقف عن
تطوير لغة فيجوال بيزيك دوت نت بعد هذا.2- أن فيجوال بيزيك
ستعمل على منصة .NET Core
لكنها لن تدعم أي تطورات مستقبلية في هذه المنصة تحتاج إلى تغييرات في لغة
البرمجة!
وهذا يقول لك باختصار: واصل تشغيل برامجك القديمة المكتوبة بفيجوال بيزيك دوت نت، لكن لا تنشئ أي برامج جديدة بهذه اللغة لأنها لن تواكب المستقبل!
طبعا هذا الخبر أثار استياء شديدا وسط أوساط مبرمجي فيجوال بيزيك دوت نت وعشاقها المخلصين وأنا منهم.. لقد تعاملت مع لغات كثرة مثل:Assembly, Pascal, C, C++, C#, JavaScriptلكني لم أر أروع ولا أرقى من لغة فيجوال بيزيك التي تجعل كتابة الكود متعة، لأنك تكتب تقريبا باللغة الإنجليزية العادية، لهذا يتركز تركيزك على الوظيفة البرمجية بدون أن تشغل بالك بالأقواس والنقاط والرموز التي تجعل أكواد باقي اللغات تبدو كالشفرة الملغزة وتضيع الكثير من الوقت والجهد بسبب نسيان قوس هنا أو علامة منقوطة هناك!والأسوأ من هذا أنني أشعر بالاشمئزاز من بعض التطويرات الجديدة في شي شارب التي ضاعفت الرموز في الكود فزاد تعقيدا، وبعض الإضافات الجيدة تم تقديمها بأسوأ صياغة يمكن تصورها مثل switch expression، لدرجة أنني لا أنوي استخدام كثير من هذه الإضافات في أكوادي!طبعا لم يكن خبر تجميد VB .NET مفاجئا بالنسبة لي، فقد كان واضحا منذ 2017 حينما أعلنت ميكروسوفت أنها ستقصر فيجوال بيزيك دوت نت على تطبيقات سطح المكتب على الويندوز فقط، ولهذا قلت حينها إنني لن أسمح لهم بقتل هذه اللغة المذهلة بهذه البساطة وعرضت عليهم التطوع لكتابة مترجم Razor خاص بفيجوال بيزيك وهو أمر كان سيستغرق مني 6 شهور كنت سأتبرع بها لهم مجانا، لكنهم رفضوا بمنتهى البساطة، وهو ما أكد شكوكي أن النية مبيتة لقتل فيجوال بيزيك، لهذا كتبت Vazor و ZML كبديل لحل هذه المشكلة، وقد طور أنتوني جرين (مدير مشروع فيجوال بيزيك) فكرة Vazor ليأخذها إلى مستويات مدهشة بحيث لا تشغل Razor فقط بل WPF و Xamarin وغيرها أيضا.. وكنا ننتظر أن تعتمد ميكروسوفت هذه النقلة الرائعة التي ستضع فيجوال بيزيك في الصدارة مرة أخرى، لكنها فوجئنا بمغادرة أنتوني جرين لمنصبه كمدير لفيجوال بيزيك بل مغادرته لميكروسوفت كلها، بل والأنكى أن بعض أفكاره التي طورها لفيجوال بيزيك دوت نت أخذوها لسي شارب مثل Top Level Code!!
بعد إعلان ميكروسوفت عن تجميد فيجوال بيزيك، كتب أنتوني جرين على تويتر: انتظروا ردا قريبا!.. في نفس الوقت، هناك بالفعل مشروعان حتى الآن لتطوير نسخ أخرى من فيجوال بيزيك دوت نت خارج ميكروسوفت.. وقد اقترحت أن نبحث عن طريقة لجعل مترجم فيجوال بيزيك قابلا للامتداد Extensible بحيث يمكن لكل من يريد أن يضيف إليه صياغات جديدة في صورة ملف Syntax.xml وملف Parser.dll يوضعان في مجلد معين، ويستخدمهما المترجم لتحويل الصياغات الجديدة إلى الصياغات المعروفة لمترجم فيجوال بيزيك (يسمى هذا بتخفيض الكود Lowering) ثم يواصل عمله كالمعتاد.. هذا سيسمح لكل من أراد بإنشاء العديد من الصياغات المستقلة وإضافتها إلى موقع ميعن بحيث نستطيع أن نضيف نحن ما يعجبنا من الصياغات إلى فيجوال بيزيك، وبهذا تتحد الجهود في لغة برمجة واحدة تتطور باستمرار، بدلا من أن نجد أنفسنا أمام عشرات النسخ المختلفة من لغة فيجوال بيزيك دوت نت يتشتت بينها المبرمجون وتعجز عن الاستمرار بدون دعم.سأتابع ما يحدث في هذا الأمر وأخبركم علام سيستقر الاختيار.. وكما قلت سابقا، أنا لن أسمح بموت لغتي المفضلة، والتي تعتبر أعلى لغة برمجية موجودة على الساحة لأنها الأقرب للغات الطبيعية، التي يحلم مطورو الذكاء الصناعي بالوصول إليها يوما، بحيث يستطيع كل منا البرمجة باللغة التي يتكلم بها كأنه يتحدث مع صديقه!.. لقد أنفقت وقتا طويلا في العام الماضي لدراسة مترجمات الكود، وأنا مستعد لتولي مسئولية مترجم فيجوال بيزيك دوت نت إذا تطلب الأمر، لكن لو كان لأنتوني جرين كلمة فهو أكفأ في هذا الأمر، والأفضل أن أنتظر إلى أين سيتجه مجتمع فيجوال بيزيك دوت نت.
وهذا يقول لك باختصار: واصل تشغيل برامجك القديمة المكتوبة بفيجوال بيزيك دوت نت، لكن لا تنشئ أي برامج جديدة بهذه اللغة لأنها لن تواكب المستقبل!
طبعا هذا الخبر أثار استياء شديدا وسط أوساط مبرمجي فيجوال بيزيك دوت نت وعشاقها المخلصين وأنا منهم.. لقد تعاملت مع لغات كثرة مثل:Assembly, Pascal, C, C++, C#, JavaScriptلكني لم أر أروع ولا أرقى من لغة فيجوال بيزيك التي تجعل كتابة الكود متعة، لأنك تكتب تقريبا باللغة الإنجليزية العادية، لهذا يتركز تركيزك على الوظيفة البرمجية بدون أن تشغل بالك بالأقواس والنقاط والرموز التي تجعل أكواد باقي اللغات تبدو كالشفرة الملغزة وتضيع الكثير من الوقت والجهد بسبب نسيان قوس هنا أو علامة منقوطة هناك!والأسوأ من هذا أنني أشعر بالاشمئزاز من بعض التطويرات الجديدة في شي شارب التي ضاعفت الرموز في الكود فزاد تعقيدا، وبعض الإضافات الجيدة تم تقديمها بأسوأ صياغة يمكن تصورها مثل switch expression، لدرجة أنني لا أنوي استخدام كثير من هذه الإضافات في أكوادي!طبعا لم يكن خبر تجميد VB .NET مفاجئا بالنسبة لي، فقد كان واضحا منذ 2017 حينما أعلنت ميكروسوفت أنها ستقصر فيجوال بيزيك دوت نت على تطبيقات سطح المكتب على الويندوز فقط، ولهذا قلت حينها إنني لن أسمح لهم بقتل هذه اللغة المذهلة بهذه البساطة وعرضت عليهم التطوع لكتابة مترجم Razor خاص بفيجوال بيزيك وهو أمر كان سيستغرق مني 6 شهور كنت سأتبرع بها لهم مجانا، لكنهم رفضوا بمنتهى البساطة، وهو ما أكد شكوكي أن النية مبيتة لقتل فيجوال بيزيك، لهذا كتبت Vazor و ZML كبديل لحل هذه المشكلة، وقد طور أنتوني جرين (مدير مشروع فيجوال بيزيك) فكرة Vazor ليأخذها إلى مستويات مدهشة بحيث لا تشغل Razor فقط بل WPF و Xamarin وغيرها أيضا.. وكنا ننتظر أن تعتمد ميكروسوفت هذه النقلة الرائعة التي ستضع فيجوال بيزيك في الصدارة مرة أخرى، لكنها فوجئنا بمغادرة أنتوني جرين لمنصبه كمدير لفيجوال بيزيك بل مغادرته لميكروسوفت كلها، بل والأنكى أن بعض أفكاره التي طورها لفيجوال بيزيك دوت نت أخذوها لسي شارب مثل Top Level Code!!
بعد إعلان ميكروسوفت عن تجميد فيجوال بيزيك، كتب أنتوني جرين على تويتر: انتظروا ردا قريبا!.. في نفس الوقت، هناك بالفعل مشروعان حتى الآن لتطوير نسخ أخرى من فيجوال بيزيك دوت نت خارج ميكروسوفت.. وقد اقترحت أن نبحث عن طريقة لجعل مترجم فيجوال بيزيك قابلا للامتداد Extensible بحيث يمكن لكل من يريد أن يضيف إليه صياغات جديدة في صورة ملف Syntax.xml وملف Parser.dll يوضعان في مجلد معين، ويستخدمهما المترجم لتحويل الصياغات الجديدة إلى الصياغات المعروفة لمترجم فيجوال بيزيك (يسمى هذا بتخفيض الكود Lowering) ثم يواصل عمله كالمعتاد.. هذا سيسمح لكل من أراد بإنشاء العديد من الصياغات المستقلة وإضافتها إلى موقع ميعن بحيث نستطيع أن نضيف نحن ما يعجبنا من الصياغات إلى فيجوال بيزيك، وبهذا تتحد الجهود في لغة برمجة واحدة تتطور باستمرار، بدلا من أن نجد أنفسنا أمام عشرات النسخ المختلفة من لغة فيجوال بيزيك دوت نت يتشتت بينها المبرمجون وتعجز عن الاستمرار بدون دعم.سأتابع ما يحدث في هذا الأمر وأخبركم علام سيستقر الاختيار.. وكما قلت سابقا، أنا لن أسمح بموت لغتي المفضلة، والتي تعتبر أعلى لغة برمجية موجودة على الساحة لأنها الأقرب للغات الطبيعية، التي يحلم مطورو الذكاء الصناعي بالوصول إليها يوما، بحيث يستطيع كل منا البرمجة باللغة التي يتكلم بها كأنه يتحدث مع صديقه!.. لقد أنفقت وقتا طويلا في العام الماضي لدراسة مترجمات الكود، وأنا مستعد لتولي مسئولية مترجم فيجوال بيزيك دوت نت إذا تطلب الأمر، لكن لو كان لأنتوني جرين كلمة فهو أكفأ في هذا الأمر، والأفضل أن أنتظر إلى أين سيتجه مجتمع فيجوال بيزيك دوت نت.
الجمعة، 13 مارس 2020
الخميس، 12 مارس 2020
هل سيدخل غير المسلمين الجنة؟
نعم هناك بعض النصارى سيدخلون الجنة.. لكن من هم؟.. وهل مجدي
يعقوب منهم؟
اسمعوا هذا التسجيل الصوتي لتعرفوا الإجابة.
الاثنين، 9 مارس 2020
ديوان أجمل أشعارك
أجمل أشعارك: ديوان في
قصيدة!
في قصيدة "أجمل أشعارك"
أشير إلى أسماء 30 قصيدة ومقطوعة سابقة لي بالإضافة إلى روايتي "حب في
القطار"، وهو تحدّ لم يكن سهلا لأنه تطلب صياغة أسماء القصائد المكتوبة على
أوزان مختلفة داخل هذه القصيدة دون كسر وزنها، وقد نجحت في هذا في معظم القصيدة مع
اضطراري في مقطع صغير واحد إلى استخدام التفعيلة فاعلن في موضع القافية وليس من
المعتاد دخول هذه التفعيلة في صيغة الخبب من البحر المتدارك مع أنها التفعيلة
الأصلية للبحر المتدارك.. بالنسبة لي، أنا مستسيغ للموسيقى الناتجة وأرى جوازها هنا
بحكم الضرورة، وقد جمعت كل أسماء القصائد التي ألجأتني إلى هذه الضرورة في عدة
سطور متلاحقة في مقطع واحد حتى يكون متسقا موسيقيا بدلا من بعثرتها عبر القصيدة ما
قد يسبب نتوءات موسيقية بلا داعٍ.
وقد وجدت أن الطريقة الوحيدة المناسبة لنشر قصيدة "أجمل
أشعارك" بكل إشاراتها المرجعية، هي وضعها هي والقصائد المشار إليها في ديوان
واحد يحمل نفس الاسم.. أرجو أن يعجبكم.
أجمل أشعارك
أجمل أشعارك
يا أنثى غاضبةً منّي:
أضنْنتِ عليَّ بأزهارِكْ؟
أنا أحلى أحلامِ مُراهِقَةٍ عشقَتْني
وبكارةُ أسرارِكْ
أنا أولُ حبٍّ رئتاكِ استنـشقـتا
وسذاجةُ أفكارِكْ!
أنا أولُ خفقةِ قلبٍ أَنْسَتْ جَفنيكَ النومَ
ولذّةُ أسمارِكْ
أنا زهرةٌ عشقٍ بكتابِكِ خَجْلَى
أناْ كلُّ مُغامَرةٍ أُولى جرّبها قلبُكِ وَجِلاً
لا يدري أَيَسيرُ إلى الجنّاتِ بعشقي
أم يَهوي في نارِكْ
وحياؤكِ منّي حينَ هَزمتِ حياءَكِ منّي!
وحوارٌ ما زلتُ كَدُرٍّ أَحفظُهُ عندي
مُتّشحًا بوقارِكْ
والغيرةُ حينَ يُغازلُ غيرَكِ شِعري
فتكادُ تُمزّقُها وتُمزّقُني
نَهشَةُ أَظفارِكْ
وتَرنُّمُ أوتارِكْ
واللهفةُ حينَ يَمَسُّ شعورَكِ غَزَلي
فَتَهُمّينَ بِسُؤلِي وأَهمُّ بإخبارِكْ!
هو ذاكِ أنا
أنا شمسُ نهارِكْ
أو أكثرُ مِن ذاكِ أنا!
أناْ بدرُ مَدارِكْ
أنا رجلٌ شكّلَ مِن صلصالِكِ أنثى
تَعرفُ كيفَ تُثيرُ الشاعرَ في أعماقي
كي يُبدعَ أجملَ أشعارِكْ!
وأنا مَن زِدْتِ لأجلي عَبَقا
فازددتُ لأجلِكِ أَلَقا
فسقطتِ بناري كفراشةِ(3)
نورٍ
وفؤادي بهواكِ احترقا
ورسمتُكِ في حُلمي أمنيتي
وجعلتُكِ في فني مُلهمتي
مع أنّكِ كنتِ مُشاغِبَتي(4)
أحببتُكِ حينَ رأيتُكِ صُدفةْ(5)
ووجدتُ البحرَ الساحرَ
في عينيكِ يُخبئُ سرَّ الكونِ(6)
فَرُحتُ أُوشوشُ صَدَفَهْ!
ومنحتُكِ مِن قلبي زهرةَ حبي(7)
وبشِعري سَمّيتُكِ "باربي"(8)
وجعلتُكِ فصلا من لغةِ
العاشقِ(9)
يا شِعري يا دُرّةَ أدبي(10)
ما أحلى الأسرَ
لِمَن نَهوى(11)
تَغدو الدنيا مدهشةً(12)
كالحلمِ الذهبي
لَمْ أَبلُغْ مِن حبِّكِ أَرَبي
سأظلُّ أُحبُّكِ يا فاتنتي حتى تَتهاوَى
الأجرامْ(15)
لكني أطلقتُ سراحَكِ رَغْما عنّي
يا عبقَ القهوةِ في فنّي ومَذاقَ الشكولاطةْ
أَمْ عيناكِ بطعمِ النَّعناعْ(18)
في الغربةِ عن أحضانِكِ
ما زالتْ تَعصرُني الأوجاعْ
يا ملكةَ بابلْ:(20)
ما أفعلُ بالتوتِ الذابلْ؟ (21)
مَن يُحرَمْ قطفَ ثمارِ الرَّوضِ
فقد يَكفيه جمالُ
الرُّوحْ(22)
لو رمزًا باستحياءٍ للمُتلهِّفِ بالأشواقِ يَبوحْ(23)
وأنا دومًا سوفَ أظلُّ أحبُّكِ مِن
بَعيدْ(24)
وسيبقى شوقي لكِ يَسري نَبضًا في الوريدْ
يا أُغنيتي، يا ملهمتي، يا بكرَ القوافي(25)
في شَغَفٍ يتماوجُ عطرُكِ في ضفافي
لكنَّ غرامَكِ يا مُنيَةَ قلبي لا يَجوزْ
فأنا يا ساحرتي صيادٌ عجوزْ(26)
أناْ طفلٌ كبيرْ(27)
ما زالتْ تلميذةَ عشقٍ في
السنةِ الأولى(29)
لكنْ سحرتْني فَتَحَيَّرَ عقلي مذهولا
ولهذا يا غايةَ أملي
قررتُ فراقَكِ فاحتملي
ناديتُكِ: لُوذي مِن حبّي(30)،
إلاّ أعدمتُكِ بالقبلِ!(31)
جاهدتُ كثيرًا أشواقي
حتّى ما مَسَّكِ مِن قِبَلي
ضُرٌّ أو سوطٌ مِن خَجَلِ
وبهذا تَدرينَ بأني
مكرًا منكِ ورغمًا عني
أحببتُكِ منذُ أَردتِ لنفسِكِ حبي
مع أني عاندتُ وقاومَ عقلي قلبي
حتى أغرقَني شلالُكِ في أنهارِكْ!
وهُزمتُ على أسوارِ جمالِكِ دونَ معارِكْ!
فأجيبي يا بارعةَ العينينْ
مِن دونِ غموضِ الأنثى أو مَينْ:
هل إنّي وكذلكِ أنتِ ضحايا استهتارِكْ؟
أم أنّكِ أنتِ ضحيّةُ عشقي؟
أم أني أجملُ أقدارِكْ؟
5/3/2020
_____________________________
* الإشارة رقم 1 هي لروايتي الرومانسية "حب في القطار".
*
الإشارات من 2 إلى 31 هي للقصائد المنشورة في ديوان "أجمل أشعارك" بنفس الترتيب، وقد وضعت
على كل قصيدة رقمها، مع ملاحظة أن القصيدة الحالية هي القصيدة رقم 1 لهذا لم تتسبب
الإشارة إلى رواية حب في القطار في إزاحة الترقيم.