سوف أحكى لكم القصة منذ بدايتها.
كان لدينا برنامج قديم بعض الشىء, علينا ان نعطيه مجالا للولوج الى معلوماته على الشبكة العنكبوتية و الوقت ضيق للغاية. البرنامج قمت انا بكتابته بالسى++ منذ فترة.
لم أكن اعرف الكثير عن الويب وقتها, كل خبرتى في الdesktop.
أعرف مبادئ عمل الويب, كما أعرف جيدا بروتوكول HTTP لأننى تعاملت معه من قبل, و لدى مبادئ عن الجافا سكريبت, و لكننى لا أعرف شيئا عن لغات الback end.
اخترت البداية المنطقية هي تعلم لغة "مخصصة" للويب, و اتجهت الى اكثرهم شهرة و هي php,
منذ البدايات الأولى, أصابنى الاكتئاب, هذه لغة كئيبة, شكل الstatement كئيب, رموزها مفتعلة.
السى#؟ يالسخافة بيئة تطوير visual studio و الطرق الثابتة التي يفرضها عليك لفعل أي شيء.
هذه الأفكار التي راودتنى في أول يومين, و بعد تفكير قمت بوضع هذه المعطيات:
سوف أضيع أسبوعا كاملا على الأقل لتعلم php او سى#
سوف أضطر الى نقل الكثير من الاكواد التي كتبتها بالفعل من السى++ الى اللغة الأخرى. ثم ماذا عن الأماكن التي استخدمت فيها المؤشرات؟! كيف سوف أترجمها؟!
و هنا لمعت الفكرة في رأسى, لماذا لا تستخدم سى++ نفسها؟
جوجل و ياهو بالفعل يستخدمون سى++ في تطبيقات الويب الخاصة بهم, و أنا واثق ان مايكروسوفت و معظم الشركات الكبيرة الأخرى تفعل الشىء نفسه.
أولا أنا معتاد على السى++, و لن أضطر الى تعلم اى شيء جديد أو سخيف.
ثانيا سوف يمكننى إعادة استعمال الأكواد التي كتبتها.
و هكذا بدأت بتصميم الback end كاملا بالسى++, يتفاعل مع الweb server بواجهة تشبه الcgi, حيث يقوم الweb server بتشغيل برنامج exe مع إعادة توجيه الinput و الoutput و وضع الenvironment variables, و تزويده بالمعلومات اللازمة, ليرد البرنامج بواسطة الstandard output.
اذا أردت يمكنك أيضا التفاعل مع واجهات أخرى غير الcgi, مثل NSAPI, و FastCGI, و غيرهم.
اذن, سريعا ما هي المميزات و العيوب :
المميزات :
الموقع يعمل بسرعة تفوق أي موقع أخر بالphp او السى# أو الجافا أو أي شيء أخر. و هذا منطقى و متوقع من السى++. كما أنه يفتح في لمح البصر, ليس هناك الاف الmodules اللعينة التي يجب تحميلها!
الموقع يعمل على أي جهاز دون تأخير أو تأثر. و يستقبل عدد كبير من الطلبات دونما ابطاء. لا يحتاج الى server خارق للعمل.
لا يمكن لأى شخص تخمين التقنية التي يعمل بها الموقع, ما يعنى المزيد من الأمان و التميز.
العيوب :
الdebugging صعب و يأخد وقتا أكثر من المعتاد, عليك ان تبذل جهدا لوضع برنامجك في الظروف التي حدثت أثناء الخطأ, لأنه لا يوجد رابط بين بيئة التطوير و الصفحة نفسها.
لا يوجد أطر عمل يعتمد عليها, هناك بالطبع بعض أطر العمل لبرمجة الويب بالسى++, لكن لا احد يستخدمها, لذا قد تكون بها الكثير من المشاكل, فكان على الاعتماد على نفسى تماما (و هذا أفضل, ما حك أنفك مثل ظفرك!).
لا أعرف اى خدمة استضافة سوف تقبل بملفات تنفيذية native جاهزة كback end للعمل, لذا فعليك اما اختيار خدمة توفر لك ماكينة افتراضية مخصصة لك, و هذا أغلى ثمنا, أو ان تقوم باستضافة الموقع على الخادم الخاص بك, صدقنى مع سى++ لن تحتاج الا الى خادم بسيط للغاية.
هل أنصح ببرمجة الويب بالسى++؟
ليس في المطلق, هذا لا يناسب أي شخص, خاصة اذا لم يكن لديك خادم خاص بك او بالمؤسسة التي تعمل بها, لكن التجربة كانت مفيدة و النتائج في المجمل رائعة.
التعليقات