تصدير

نشره ahnaqsh في الخميس, 10/11/2005 - 4:49ص

تصدير

..بقلم دافيد بيزلي .

كمعلم , و كباحث , و كمؤلف , يسعدني أن أرى اكتمال هذا الكتاب . إن پايثون هي لغة برمجة سهلة الاستعمال و ممتعة للغاية , و قد ازداد عدد مستعمليها و محبيها باضطراد في السنين الماضية . الرجل الذي صمم پايثون هو گيدو فان روسّم , و قد استقى نحوها و تراكيبها السهلة الاستعمال من لغة أ-ب-سي (ABC) , و هي لغة تعليمية تم تطويرها في الثمانينات من القرن الماضي . لكن پايثون هي لغة برمجة حقيقية , و ليست لعبة أو مجرد أداة تعليمية , و هناك الكثير من الخصائص في پايثون التي تم استسقائها من لغات برمجة مثل سي++ , چافا , موديولا , و سكيم (Scheme)! في الحقيقة , إن ميزة پايثون الأهم هي أنها تنفع الجميع ,هي لغة المحترفين و المبتدئين على حد سواء,و المبرمجين ,و العلماء ,و المعلمين ,و الباحثين و الفنانين أيضا !

بالرغم مما ذكرته الآن , قد تجد نفسك تتسائل : "لماذا پايثون ؟" أو "لم أتعلم البرمجة بپايثون؟" و خصوصا أن الآراء تجمع على بعض لغات البرمجة الاخرى ( التي من مزاياها تطفيش المبتدئين !) , مثل سي++ أو چافا . همم , في الحقيقة من الصعب الإجابة على هذا السؤال , لكن جوابي الشخصي هو أن البرمجة بلغة پايثون مسلية , و ممتعة للغاية , و منتجة أكثر من البرمجة باللغات الاخرى .

مهنتي هي التدريس , و عندما أدرس علم الحوسبة لطلابي , أريد أن اوصل المفاهيم المهمة إليهم , و أيضا أن أجعل المادة مشوقة و ممتعة للطلاب . لكن للأسف , عند تدريس البرمجة للطلاب الجدد , يصاب هؤلاء بالإحباط من التركيز الزائد ( أو الذي يبدو لهم زائدا ) على المفاهيم الرياضية و على التفاصيل الدقيقة لنحويات لغة معينة و قواعدها و ترجمتها (compiling) و غير ذلك . مع أن فهم الأفكار الرياضياتية المجردة و التقيد بالقواعد هما أمران مهمان جدا لكل المبرمجين المحترفين , و بالتأكيد لكل الطلاب الذين يودون متابعة دراسة البرمجة , لكن المبتدئين يصابون بالملل بسرعة , و يفقدون اهتمامهم بالبرمجة نهائيا , و هو ما لا أريد أن يحدث . عندما أعطي دروسي , أتمنى أن أرى طلابي مليئين بالحماس و الرغبة في التعلم ..أحب أن أراهم منهمكين في حل بعض المشاكل الممتعة , و أريد فيهم روحا من الإبداع و التمرد على المألوف , أن يصلوا إلى طرق خلاقة لحل المشاكل ..و أن يبذلوا جهدهم و أن يتعلموا من الأخطاء التي يرتكبونها. إذا كان هناك شيء لا أريده , فهو أن أضيع الوقت الذي كان يمكن استثماره بطريقة أفضل في أشياء مثل البحث عن أخطاء في التراكيب النحوية المستعملة , أو تفسير رسائل الخطأ عصية الفهم التي يولدها المترجم (compiler), أو الألف طريقة و طريقة التي يمكن أن يسبب بها برنامج ما خطأ حماية عام (general protection fault).

إن أحد الاسباب التي تجعلني أستخدم پايثون هو التوازن الحسن فيها ما بين الجوانب النظرية و الجوانب العملية . بما أن پايثون لغة مفسرة , يمكن للمبتدئين أن يبدئوا تعلمها و يقوموا بكتابة بضعة برامج بسيطة دون الارتباك و التعب الذي تسسبه اللغات المترجمة في العادة , بمشاكل الترجمة و الربط (linking) التي لا يستطيع أي مبتدأ فهمها . بالإضافة إلى ذلك , تأتي پايثون مع مكتبة كبيرة من الوحدات النمطية (modules) التي تستخدم في كثير من المهام , من البرمجة للوب(*) إلى دعم XML(**) إلى التصميم الرسومي و معالجة الرسوميات . هذة الجوانب العملية من پايثون تزيد من اهتمام الطلاب بالبرمجة كما تسمح لهم باتمام بعض البرامج المفيدة و العملية . پايثون أيضا لغة ممتازة لتأسيس الطلاب في علم الحاسب , و بما أنها تدعم الإجرائات التنفيذية (procedures) و الصفوف (classes) بشكل كامل , يمكن تعريف الطلاب تدريجيا على مواضيع يمكن تطبيقها لاحقا في لغات برمجة مثل سي++ و جاڤا , المواضيع التي أتحدث عنها تشمل التجريد الإجرائي (procedural abstraction), و البرمجة غرضية التوجه (object-oriented programming), و طبعاً بنى المعطيات (data structurtes). هناك حتى بعض الخصائص قد استعارتها پايثون من لغات البرمجة التابعية (functional programming ) , و التي قد يستفيد منها المدرس في طرح مواضيع يمكنه تغطيتها لاحقا مع لغات مثل سكيم و لسب .

دهشت عندما قرأت تعليق جفري في مقدمته , كيف أن پايثون مكنته من أن يرى "نسبا أعلى من النجاح و نسبا أقل من الإمتعاض" بين طلابه . و أنه استطاع أن يغطي نسبة أكبر من المنهاج و بنتائج أعلى . مع أن هذة التعليقات تشير إلى منهاج لمبتدئي البرمجة , لكنني أستعمل پايثون أحيانا لنفس هذة الأسباب بالضبط , في دروسي للمتخرجين من طلبة الدبلوم بجامعة شيكاغو . في هذة الدروس , يكون عليَّ تغطية الكثير من المعلومات في فترة ضئيلة , حوالي التسعة أسابيع . و بالرغم أنه من الممكن جدا بالنسبة لي أن ألحق الكثير من المعاناة و الألم بالطلاب إذا استخدمت لغة مثل سي++ , لكن هكذا طريقة ستضر أكثر مما تنفع , خصوصا إذا كان الموضوع لا يتعلق بالبرمجة بشكل مباشر , مثلا إذا كان عن الخوارزميات أو بنى المعطيات . إن پايثون تسمح لي بالتركيز على موضوع الدراسة و تسمح لطلابي باكمال برامج تطبيقية أكثر عليه مما لو استخدمنا سي++ .

مع أن پايثون ما زالت صغيرة في السن , لكن أعتقد أن المستقبل أمامها براق في مجال التعليم , و هذا الكتاب هو خطوة مهمة على ذلك الطريق .

دافيد بيزلي

جامعة شيكاغو

مؤلف "دليلك الأساسي لپايثون"

__________________________________________

(*): كلمة ال"وب" أعلاه تشير إلى مواقع الإنترنت التي يمكنك تصفحها ..الفكرة هنا هي أنه يمكن استخدام شبكة الإنترنت بعدة طرق اخرى غير التصفح , مثلا البريد الإلكتروني , و هناك أشياء اخرى , بعضها ممنوع في بعض الدول العربية مثل الــFTP , و هي طريقة معينة لتحميل الملفات , و بعضها غير متوفر أصلا , مثل الـ USENET , و هي شيء مشابة للبريد الإلكتروني , و النتيجة هي أن الغالبية من الناس تعتقد أن الإنترنت هي فقط الوب , و هو ليس صحيحا ..الوب جزء من الإنترنت , و هي الجزء الأكبر , لكنها ليست كل شيء .

(**): XML هي "لغة تأشير" , مشابهة للغة HTML , و تلك هي اللغة المستعملة على الوب . إذا كنت قد تصفحت موقعا على الانترنت من قبل , فأنت قد رأيت صفحات HTML حتى و لو لم تعرف ذلك .


خيارات عرض التعليق

اختر الطريقة التي تفضلها لعرض التعليقات، ثم اضغط على "احفظ الإعدادات" لتفعل التغيرات.
صورة ahnaqsh

لا بد أن هناك

لا بد أن هناك بعض الأخطاء في المصلحات ..ربما مسئلةfunctional programming خطأ

functional programming لو

functional programming لو قلنا برمجة تابعية أفضل من غرضية
و هالترجمة مو حرفية وبس لأنو فعلاً الـFunctional programming languages بتعتمد على أنو كل شيء هو تابع يعيد قيمة أو مجموعة قيم
أنا رح عدلها و صحح بعض الأخطاء الاملائية.