البداية من الصفر ام استخدام مكتبة جاهزة؟

مشروعي اللذي افكر فيه حاليا هو محرر نصوص داخل المتصفح يدعم العربية بشكل محترم، و الفكرة خطرت ببالي حين شاهدت مشروع bespin و اللذي هو عبارة عن محرر اكواد يعمل على الويب، و الفيكة في المشروع (الطريف فيه) ان المحرر معمول عن طريق canvas، مما يعني التخلص من مشاكل محررات النصوص التقليدية على الانترنت المعمولة باساليب عقيمة مثل contentEditable او عن طريق سلسلة كبيرة من الـ divs

و لكن المشكلة في استخدام الـ canvas انك يجب ان تطور جميع خصائص محرر النصوص من الصفر!! ما عدا حتة رسم النص بحد ذاته .. هذه يعملها الـ canvas عن طريق fillText و اخواتها

لكن مشكلة bespin انه ليس مجرد محرر اكواد، بل هو اقرب ربما الى محاولة IDE يعني المحرر جزء صغير من المشروع.

الحقيقة تفاجئت حين نزلت الكود و بحثت عن كود المحرر .. لاكتشف ان محرر النصوص مجرد plugin و ليس هو الجزء الرئيسي من المشروع!!

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

و بما انني مبرمج كسول، و لا احب الخوض في تفاصيل bespin … اظن انه سيكون من الاسهل علي ان ابدأ من الصفر .. اي احاول فهم كيفية عمل الـ canvas و محاولة صنع محرر بدائي جدا عن طريقه .. و من ثم تطويره عن طريق سرقة اجزاء من bespin حسب الحاجة!!

اللذي ساكسبه هو الوقت، فتعلم اساسيات الـ canvas و البدء بالتطوير عليه مباشرة و من ثم استعارة اجزاء من bespin لملء الفراغات يمكن ان يتم بشكل اسرع من محاولة فهم و تفكيك هيكل مشروع اخر يعتمد على plugins

كما ان تعلم الـ canvas سيكون اكثر متعة بالتأكيد .. و معه متعة تطوير محرر نصوص على الويب من الصفر (تقريبا)،

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

ابقوا معنا ..

بالمناسبة، رمضان مبارك للجميع :)

Notes