2008/07/23

New technology but old style...

كانا ياما كان في قديم الزمان (مش زمان هلبة)، كان في حطاب في الغابة وارث الخدمة أب عن جد، وكان يستخدم في الفأس والمنشار اليدوي، وخدمته ماشية لكن بمجهود عضلي كبير ومردود مالي قليل، في يوم من الأيام مر تاجر بهذا الحطاب وأستغرب لما لقاه يقوم بالعمل بطريقة يدوية تقليدية، وقام بتسليمه منشاراً كهربائياً حديثاً وعلمه كيف يستخدمه بحيث سهل المنشار الكهربائي من عمل الحطاب، وقلل المجهود عليه وزاد من إنتاجيته وبالتالي من مردوده المالي، بعد ذلك سافر التاجر وترك الحطاب، بعد مدة نسى الحطاب كيفية تشغيل المنشار الكهربائي ولم يتمكن من الوصول للتاجر لسؤاله عن ذلك، فما كان منه إلا أن أستخدم المنشار الكهربائي الحديث بطريقة يدوية (بنفس أسلوب إستخدمه للمنشار اليدوي سابقاً)، أي أستخدمه كفأس لتقطيع الحطب يدوياً وقطع به الأشجار يدوياً بنفس الطريقة التي كان يقطع بها الأشجار عندما كان يستخدم المنشار اليدوي (كل ذلك والمنشار الكهربائي مقفل)، فماذا كانت النتيجة؟ زاد المجهود العضلي عليه أضعاف مضاعفة، وقل مردود العمل وبالتالي نقص مردوده المالي إلى أقل من إستخدامه للمنشار اليدوي.

مالحكمة من هذه القصة؟

هناك عدة حكم (كل حسب وجة نظره) لكن الحكمة الرئيسية التي وصلتني (بطبيعة عملي) هي أنه إذا غير االإنسان (أو المبرمج) من الأدوات التي يستخدمها في مجال عمله فيجب عليه أن يغير طريقة تفكيره أولاً ليتلائم تفكيره مع طريقة التعامل مع هذه الأدوات الحديثة.

ففي البداية كنت أتعامل مع لغة البرمجة Visual Basic 6.0 وأعرف كل عيوبها ومميزاتها وخفاياها، لكن كما هو معروف فهي لغة بسيطة من ناحية البناء البرمجي ولا تستخجم تقنية (لغة البرمجة بالكائنات - OOP)، ومنذ حوالي السنة قمت بتعلم لغة (C# 2.0) وهي إحدى لغات (Microsoft Framework.NET) المصممة بالكامل بتقنية (OOP)، وبالرغم من قرائتي لكتب عديدة عنها والتحادث والإحتكاك مع مبرمجين جيدين يعملون أساساً بها وحصولي على أمثلة برمجية كثيرة أغلبها من موقع Microsoft، إلا أن تفكيري الرئيسي عند برمجة أي حل يذهب مباشرة نحو التفكير البرمجي الخاص بلغة Visual Basic وأنسى تطبيق تقنيات OOP في حلولي البرمجية أغلب الوقت.

لعل أبرز الأمثلة عندما أريد الحصول على بيانات من قاعدة البيانات وحفظ هذه البيانات في الذاكرة (لتقليل وقت جلبها من قاعدة البيانات) وتطبيق بعض جمل الإستعلام عليها لتشكيلها حسب رغبتي، فلا زلت أجد التعامل مع ADO 2.8 وكائن البيانات Recordset الخاص بها أسهل بكثير جداً من التعامل مع ADO.NET وماتحمله من Dataset و Datareader السريعة والمخصصة للعديد من الإحتمالات والقابلة للتخصيص بطريقة غريبة، لكنني بحكم أنني تعلمت تقنية ADO في شبابي (هنا يأتي عامل السن) فإنني الأن أجد صعوبة في التعامل بسهولة مع تقنية ADO.NET الأحدث برمجياً

فلا يكفي المبرمج الحصول على أحدث التقنيات وأمثلة الإستخدام (وهو أمر سهل عن طريق الإنترنت) لكي يكون عبقرياً بها، بل يجب عليه تغيير تفكيره جذرياً (وهو الأمر الأصعب) ليكون متمكناً من هذه التقنيات.

4 comments:

alfasla said...

السلام عليكم

اهلاً سيد طارق..

دعني في البداية ابدي اعجابي بمنظر فنجان النسكافيه الموضوع في مقالك حتى انني عزمت وقررت ان اصنع واحداً فور رجوعي للمنزل ان شاء الله ..

ثانياً جميل جدا عرض المثال الذي ذكرته عن الحطاب ومقارنتك إياه بما يدور في العالم البرمجي ..أجل للأسف مع تطور لغات البرمجه بسرعه وهذا شئ محبذ ولكن مع ذاك نجد انفسنا لاأرادياً مسحوبون لما كنا قد عهدنا انفسنا عليه .. على فكره انا من مناصري
vb 6
ممكن ايماناً مني بالمثل المصري (من فات قديمه تاه )

موضوع مميز عرفنا على جوانب قد نكون غفلنا عليها

تحيتي

Tarek Siala said...

انا أيضاً من مناصري الفيجوال بيسك 6 ولا يزال تفكيري يدور حول إستنباط الحلول البرمجية بها، لكن الزمن ليس كالزمن
لذلك لازلت أحاول جاهداً تغيير طريقة تفكيري لكي أحاول استنباط الحلول البرمجية بإستخدام التفكير بالبرمجة الكائنية المستوى
من ناحية أخرى أحمد الله أن تفكيري متوقف عند البرمجة بالفيجوال بيسك وليس قبلها، فخلال عملي أواجه العديد من المبرمجين الذين توقف التفكير عندهم عند حد البرمجة بالفوكس برو والكوبول، ومنهم من وقف به الزمن عند الأسمبلي
صحيح انها لغات تعلمك المبادئ البرمجية الأساسية لكن تم إضافة العديد من الميزات الخاصة بالبرمجة كائنية التوجيه
الإسم غريب لكن المهم المعنى

Anonymous said...

Sometimes using a highly technological tool primitively is the first step towards understanding the tool and inevitably utilizing it to the limit as time passes by …
M.B

Anonymous said...

السلام عليكم ورحمة الله وبركاته ,,
زيارتي الأولى لمدونتك احببت ان اشارك بها هنا .
أنا أيضا من مبرمجي الفيجول بيسك وتحديدا منذ الاصدار 4 ، اذكر أول مره استعملت فيها هذه اللغة على ويندوز 3.11 وكم كنت مذهولا عندها !!
احببتها وبدأت الاكتشافات عندها ، في ذلك الوقت لم تكن الإنترنت بعد في ليبيا !
فالمرجع الوحيد كان التجربة والخطأ .
حاولت ومنذ سنوات مضت الإنضمام لمنصة .Net
بصراحة لم استوعبها ، لم افهمها حاولت وحاولت ، المراجع موجودة وبكثرة باللغتين العربية والانجليزية مع هذا لم استوعب !!
للاسف ليس بمقدوري تغيير تفكيري لذا تركت البرمجه حاليا اتجاهي ينصب على php فقط لاغير