سوف أحكى لكم القصة منذ بدايتها.

كان لدينا برنامج قديم بعض الشىء,  علينا ان نعطيه مجالا للولوج الى معلوماته على الشبكة العنكبوتية و الوقت ضيق للغاية. البرنامج قمت انا بكتابته بالسى++ منذ فترة.

لم أكن اعرف الكثير عن الويب وقتها, كل خبرتى في ال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 للعمل, لذا فعليك اما اختيار خدمة توفر لك ماكينة افتراضية مخصصة لك, و هذا أغلى ثمنا, أو ان تقوم باستضافة الموقع على الخادم الخاص بك, صدقنى مع سى++ لن تحتاج الا الى خادم بسيط للغاية.

هل أنصح ببرمجة الويب بالسى++؟

ليس في المطلق, هذا لا يناسب أي شخص, خاصة اذا لم يكن لديك خادم خاص بك او بالمؤسسة التي تعمل بها, لكن التجربة كانت مفيدة و النتائج في المجمل رائعة.