من خلال عملي كمبرمج تواجهني بعض المصاعب التي تعتبر صغيرة من وجهة نظر البعض ولكنها كبيرة من وجهة نظري، أكبر الصعاب هي توافقية بيئة العمل الخاصة بي مع المنظومات التي قمت بتصميمها وبرمجتها وتركيبها لدى الزبائن منذ مدة ليست بالقصيرة.
ففي بداية هذا القرن كان كل عملي على بيئة البرمجة VB6 ونظام قواعد البيانات SQL2000 وفي الأغلب كان نظام التشغيل هو Windows98SE وإذا كان العميل محظوظاً فإنه يعمل على نظام التشغيل WindowsME، لكنني توقفت منذ سنتين عن العمل بلغة البرمجة VB6 وتحولت إلى #C، وهو ماترك لدي الكثير من المنظومات التي أصبحت ميتة وغير قابلة للتطوير وبالتالي توقفت عن بيعها، لكن مشكلتي هي أن هناك الكثير من الزبائن الذين أعجبتهم منظوماتي القديمة ولا يرغبون بتحديثها إلى الأنظمة الجديدة (لعدة أسباب منها الجانب المالي وإستقرارية الأنظمة القديمة وعدم رغبتهم في البدأ من جديد في أي منظومة قديمة)، فما العمل إذا طلب مني زبون قديم تقديم الدعم له؟
وجدت الحل الرخيص والسريع في برنامج VMWare (نفس الفكرة تنطبق على VirtualPC من مايكروسوفت)، فبمجرد وجود جهاز قوي (سرعة معالجة جيدة + ذاكرة أعلى من 1 جيجا + قرص صلب إضافي بتقنية SATA) أمكنني تخليق بيئات عمل إفتراضية على جهازي تحاكي البيئة الموجودة لدى العميل، والتي تكون على الأغلب إحدى بيئات العمل التالية:
- بيئة عمل WindowsME ونظام قواعد البيانات SQL MSDE 2000 ولغة البرمجة VB6 ونظام التقارير Crystal Report 3: وهي البيئة الأقدم، لكن لايزال البعض يعمل بها بسبب رخص الأجهزة وعدم إحتياجها لمواصفات كبيرة، لكنني أعتقد أن هذه البيئة في طريقها للإنقراض.
- بيئة عمل Windows2000 ونظام قواعد البيانات SQL Server 2000 ولغة البرمجة VB6 ونظام التقارير Crystal Report 4: هي أيضاً بيئة قديمة بعض الشئ، لكنها أحدث من البيئة الأولى ويمكن دعمها لكن في حدود معينة.
- بيئة العمل WindowsXP Pro ونظام قواعد البيانات SQL MSDE 2000 ولغة البرمجة VB6 ونظام التقارير Datareport: كانت هذه بيئتي المفضلة، وهي لازالت تعمل حالياً وتؤدي الغرض المطلوب منها بكفاءة تامة، كما يمكنها العيش مستقبلاً لبعض الوقت.
- بيئة العمل WindowsXP Pro ونظام قواعد البيانات SQL MSDE 2000 ولغة البرمجة #C ونظام التقارير المدمج معها: وهي البيئة المفضلة لدي حالياً، ومنها يمكنني التطوير بسهولة أو التحديث منها لأي بيئة عمل مستقبلية، مع رغبتي في التحديث لنظام قواعد البيانات SQL2005 أو SQL2008، ولكن بسبب ذكاء وإستقرارية وكفاءة النظام sQL2000 وتعقيد الأنظمة الجديدة وشراهتها الكبيرة لإلتهام مصادر الأنظمة فلازلت مقتنعاً بأن SQL2000 يؤدي الغرض المطلوب منه بكل سهولة وبأقل التكاليف.
- بيئة العمل Windows Vista ونظام قواعد البيانات SQL Express 2008 ولغة البرمجة C# 2008: أعتبرها الأفضل لكن الأكثر شراهة لإلتهام مصادر النظام ومن الممكن أن تتسبب في بطئه في بعض الأحيان، ولكن بإنتظار Windows7 ولغة البرمج C# 2010 قد تتغير المعطيات، من يدري.
بالطبع هذه بعض نسخ الأجهزة الإفتراضية لدي والتي تعمل في منظومات صغيرة تعتمد على جهاز كمبيوتر واحد أو أثنين على الأكثر ولكن في حال المنظومات الكبيرة تتغير المعطيات بدرجة أكبر، فما بين الرغبة بالتطوير لبيئات عمل أحدث والرغبة في نفس الوقت على تقديم الدعم الفني لمنظومات قديمة قد يحير المبرمج، فالمنظومات القديمة تعمل بثبات ولديها خبرة كبيرة من خلال سنوات عملها، لكن كذلك هناك رغبة كبيرة جداً بإستخدام التقنيات الحديثة في البرمجة بدون التضحية بثبات المنظومات وتضييع الوقت في تجريبها.
أعتقد أن الكثير من المبرمجين واجهتهم هذه المعضلة، فهل واجهتك من قبل وكيف قمت بحلها؟