الإعلان عن WebCeph - مدوّنة فوّاز
تجربة عظيمة ومشروع رائع فواز، قرأتُ المقالَ كله ربما في وقتٍ قياسي، لدي بعض الأسئلة من واقع تجربتك:
في البداية قرأتُ الموضوع إلى نهايته أين جائزتي :)؟
عندما أعمل على مشروعٍ كبير شخصي، دائمًا أحاول الوصول إلى الكمال؛ -تنظيم العمليات في البرنامج وهيكله، التصميم، أو حتى أسماء الدوال والنطاقات إلى تصميم الشيفرة!- لأني لا أملك الكثير من الوقت؛ يؤجل هذا أغلب مشاريعي أو يلغها في النهاية، هل واجهتَ هذه المشكلة؟
هذا يعرضني لمشكلة، أقتبسها من موضوعك:
إذا كنت بالفعل مبرمجًا ماهرًا، فلماذا لم تُنجز شيئًا مُفيدًا حتّى الآن؟
لماذا يستغرق إعداد برنامج سهل كهذا كلّ هذا الوقت؟ كنت أظنّك مُبرمجًا مُحترفًا!
- لماذا الويب؟ في العادة تكون مثل هذه المشاريع مبنية على سطح المكتب وبلغة C++؛ ألم تخش من البطء مثلًا؟ إن تعقد المشروع في المستقبل ربما الويب لن يناسبه؟؛ -على أي حال لو حتى صفحة بيضاء فإنها تكون بطيئة في المتصفح-.
على الهامش:
كنت أظنُ أنك أخر شخصٍ ستستخدم لغة تترجم إلى جافاسكريبت فما بالك بـTypeScript من ميكروسوفت! :)
سؤال غير مهم -فقط من أجل توحيد المصطلحات-: أكتبُ مقالًا عن الـWeb Workers لفت إنتباهي أنك استخدمت مسالك لترجمة Threads؛ هل هذه الترجمة ترى أنها أفضل من خيوط؟ وكذا معيار لـSpecification بدلًا من مواصفة؟
بما أنك صبور جدًّا، فعليك أن تصبر كثيرًا حتى تصلك الجائزة :)
الكمال عدو الإنجاز كما يقولون، الأمر نفسي أكثر منه "تقني"، تعرضت لنفس الموقف عندما أردت الالتزام بالذّهاب إلى النادي الرياضي، قلت لنفسي: "لماذا سأذهب إن كنت لا أستطيع الالتزام كل يوم؟ بالتأكيد سأعود من الجامعة متعبًا ولن أرى تحسنًا"، ما أفعله عندما أبدأ بطرح هذه الأسئلة، هو أن أجمع ثيابي وأخرج من البيت دون تفكير، فقط ابدأ just get started، استمتع بالعملية وليس بالنتيجة enjoy the process، ولا تنسَ أنّ الخبرة لا يمكن اكتسابها دون أن تمرّ بمراحل تكون فيها "قليل الخبرة". تصالح مع نفسك.
الويب لأنّني أستعمل Linux وكل البرامج المتاحة لهذه المهمة مدفوعة بمبالغ طائلة، ومتوفرة لـWindows فقط، وغالبًا لإصدارات قديمة من Windows. الويب يستطيع فعل الكثير، لكنّ عليك أن تحسن التفكير فيما تفعله، كما أنّه سيكون في جعبتنا قريبًا WebAssembly الّتي ستجعل فكرة التطوير للويب أكثر قبولًا بين المطوّرين. ليس هذا فحسب، مع Service Workers أستطيع تمامًا أن أقنع أي شخص باستخدام تطبيقي، ليس عليه تثبيت أي شيء أو التّفكير في دعم نظامه للتّطبيق، أو "هل يدعم 64 بت"، كيف أحدث التطبيق؟... كل هذا تحصل عليه مجّانًا! المتصفّح برنامج ذو تقنيات شديدة الفائدة والتعقيد، وهو موجود في جهاز المستخدم على كل حال، فلماذا لا نستخدمه؟
بالنسبة لـthreads، كنت أترجمها "خيوط"، لكنّني تعرّفت على هذه الترجمة الجميلة من منهاج الهندسة المعلوماتيّة في جامعات سوريا :)
مبارك عليك هذا الإنجاز الرائع
يعجبني كثيرًا الاطلاع على تجارب كبيرة وعميقة كهذه، إذ تتضمن عادة الكثير من المعلومات المفيدة التي تزيد من خبرة القارئ واطلاعه، وبالمناسبة فقد قرأت المقال كاملاً وأعتقد أني أستحق الجائزة أيضًا. :)
ما رأيك في إطار العمل Electron من Github، ألا ترى أنّه بإمكانك أن تحول تطبيقك هذا من المتصفح إلى برنامج يعمل على سطح المكتب Native بنفس التقنيات المستخدمة في بناء مواقع الويب HTML, CSS, JavaScript.
إحدى الأمور التي سيوفّرها عليك Electron هو التخلص من مشكلة التوافق مع المتصفحات، إذ أنه يستخدم Chromium في بناء التطبيق، وهكذا يكون عملك موجّهاً إلى هذا المتصفح فقط.
أشكرك من أعماق قلبي على هذا الكمّ الهائل من المعلومات، لقد استفدت من هذا المقال بشكل لا يصدّق.
بالطبع يمكنني استخدام Electron، لكنّني أرى أنّه خطوة للوراء، فهو يُعيدك إلى تعقيد تنزيل البرامج وتثبيتها وتعاملها مع النظام والحاجة لبناء نسخة لكل نظام، هذا بالإضافة إلى أنّه لن يقدم أي تغيير في الأداء أو الوظائف، ربّما يعطيني وصولًا لنظام الملفّات مثلًا، لكنّني لا أرى الآن مبرّرًا. على العكس، أرغب في دعم وتغطية أكبر قدر من المتصفّحات.
مشروع رائع حقاً وفريد من نوعه اكاد اجزم انني لم ارى اي مشروع عربي بهذا الشكل وعلى نظام تشغيل مفتوح المصدر..
اختلف معك في نقطة المحرر VS Code حيث انني من انصار Atom واراه بيئة تطوير متكامله بالاضافة الي انه يحتوي على كم كبير من الاضافات وكما انه قابل للتعديل وتغير شكله وبنيته وكل شيء تقريباً به رغم بطئه قليلاً إلا ان Github تعمل على تحسين سرعة المتصفح وجعله خفيفاً وتحسين اداءه بشكل عام مازال في البداية لكنه يتطور بسرعة كبيرة.
اضحكني ما تشعر به مع CSS
اعتقد ان الويب بشكل عام يحتاج بدائل لـ html,css كلغات للواجهة او خيارات اخرى.. رغم وجود خيارات كثيرة للـbackend
وربما لفعل ذلك نحتاج لتطوير متصفحات الويب اولاً لتقرأ اللغات الجديدة وتتعامل معها. عكس لغات الـ backend والذي يتعامل معه الخادم.
التعليقات