| حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى | |
|
|
كاتب الموضوع | رسالة |
---|
YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الأربعاء 25 مارس - 16:47 | |
| | |
|
| |
PRINCESS مشرف عام على الأقسام ومشرفة قسم إسلاميــات وكورسات هندسيه
عدد المساهمات : 2385 تاريخ التسجيل : 28/06/2007 العمر : 36 الموقع : جامعة أسوان رقم العضوية : 19 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الأربعاء 25 مارس - 20:59 | |
| | |
|
| |
Terminator مشرف قسم هندسة القوى والآلات وحول العالم
عدد المساهمات : 1168 تاريخ التسجيل : 22/02/2008 العمر : 36 الموقع : In a Transformer رقم العضوية : 614 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الأربعاء 25 مارس - 22:07 | |
| موضوع جميل جدا يا يحيى باشا
انا شخصيا بحب الفيجوال بيزك جدا لانه سهل
و عشان هوه اول لغة برمجة اتعاملت معاها
لكن مشكلته انه تطبيقاته بره قليلة جدا و مبيستخدمش فى GUI كتير
لكن انا نفسى احترف ++C لانها بتشتغل على جميع انظمة التشغيل الموجودة
سواء Linux او windows و ده اللى مخلينى احبها اكتر
لانى بحب انتقل بين انظمة التشغيل كتير و بحب Linux اكثر
بس مشكلة التعامل مع Linux انه محتاج حد محترف ++C
اما عن تطبيقاتها فى الشغل بره و خصوصا فى مجال باور كتيرة
و ده ميمنعش ان فى مجال باور بتحتاج للجافا كثير عشان GUI
بس انا برضه بحب ++C
| |
|
| |
eng_ghost مراقب عام المنتديات والحوار العام ومنتدى الهندسة المدنية
عدد المساهمات : 4632 تاريخ التسجيل : 16/04/2008 العمر : 38 الموقع : just in my dreams ,, i can reach any place رقم العضوية : 1036 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الجمعة 27 مارس - 18:26 | |
| موضوع بجد رائع ,,,, وممتاز وأنا عن نفسي ,,,, وبالنسبه لخبرتي المتواضعه أبتدت حكايتي مع البرمجه من أيااااااااااااام كمبيوتر الصخر ... كان ساعتها الكمبيوتر لوحه مفاتيح وبتتركب علي التلفزيون ,,, وكان فيها شريط لبرنامج الفيجوال بيزك وكان معاه كتاب ,,, و كانت بجد عمليه تعليميه رااااااااااااائعه الكتاب مكتور فيه عده برامج ,,, منها أنك لوكتبت جملة البرنامج دي ,,,, هيطلعلك صوت معين وهكذا ,,,,, فكنت بقعد قدام البرنامج بالساعات .... ومابزهقش وكان بجد ممتع .... لغايه ماكبرنا ودخلت الكليه وأتعلما في اعدادي جزء من البرمجه بالبيزك وكانت برمجه مش لعب عيال ,,,, وبرضوا كانت حلاوتها في أننا كنا بنعمل برنامج مثلا ونحطله قانون من قوانين الفيزيا ..... بحيث أننا ندخل الارقام وهوه يطلعلنا الناتج النهائي ,,,, وكانت برضو ممتعه وهكذا ..... وكان ليا شويه علي قدي في السي .... وكان أحلي حاجه في موضوع البرمجه أنك لما تعمل حاجه بأيدك ,,,, وتسخرها لمصلحتك .... بجد بتبقي أكتر من مجرد ماده بتتعلمها ,,,, وبتبقي حاجه ممتعه جداااااااااااااااااااا عموما أنا لسه ماخلصتش الكلام , وفي كلام تاني وأستفسارات بما أن الموضوع مفتوح لعمالقه البرمجه عندنا في المنتدي وأتمني ,,, أني أسمع صوت لموسوعة المنتدي .... في الموضوع ده وأتمني برضوا ............ أنكم تستحملوني ويارب ماكونش طولت عليكم وبالمناسبه ولأن الموضوع بجد هايل ,,,, ليك مني أحلي تقييم لأجدع مشرف في المنتدي | |
|
| |
YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى السبت 28 مارس - 7:07 | |
| | |
|
| |
YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى السبت 28 مارس - 7:31 | |
| | |
|
| |
Terminator مشرف قسم هندسة القوى والآلات وحول العالم
عدد المساهمات : 1168 تاريخ التسجيل : 22/02/2008 العمر : 36 الموقع : In a Transformer رقم العضوية : 614 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى السبت 28 مارس - 19:22 | |
| معلومات ممتازة يا يحيى
بس سؤال صغير
دلوقتى Linux فى الاول مكنش فيه واجهات رسومية و كان زى DOS كده
طيب الواجهات الرسومية اللى عملوها دلوقتى بيستخدموا فيها الجافا
ولا بيعملوها بلغات برمجة تانية ؟؟؟
ولا دى بتبقى حاجات موجودة فى Kernel بتاع نظام التشغيل
خصوصا انى شفت انهم بيستخدموا فى firefox اكثر من لغة برمجة منها C بس ملقتش الجافا
| |
|
| |
YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الأحد 29 مارس - 16:14 | |
| - Terminator كتب:
- معلومات ممتازة يا يحيى
بس سؤال صغير
دلوقتى Linux فى الاول مكنش فيه واجهات رسومية و كان زى DOS كده
طيب الواجهات الرسومية اللى عملوها دلوقتى بيستخدموا فيها الجافا
ولا بيعملوها بلغات برمجة تانية ؟؟؟
ولا دى بتبقى حاجات موجودة فى Kernel بتاع نظام التشغيل
خصوصا انى شفت انهم بيستخدموا فى firefox اكثر من لغة برمجة منها C بس ملقتش الجافا
أى خدمة يا ترميناتور _ انا بعتذر كتييييير ع التأخير في الرد _ و حرد ع لاشين في الاول عشان مايفضحنيش في الكلية جميل جدااا انك تشتغل لينكس يا لاشين _ وللأسف انا ماشتغلش لينكس لحد دلوقتى لكن من الدراسة لنظم التشغيل العامة _ أقدر أفيدك ببعض المفاهيم ان شاء الله تمام يا باشا اللبنكس زمان كان ال user interface لها هو ما يسمى ال CLI او ال Command Line Interfaceيعنى انك تدخل الأوامر بالاكواد _ ودة مكانش في اللينكس بس _ ولكن MSDosاللى هو نظام التشغيل السابق لمايكروسوفت قبل Windowsكان برده بيستخدم ال CLI interface ودة كان شكله في اللينكس مع التطور لكل نظم التشغيل ظهرت معانا انترفيس جديد للتسهيل ع اليوزر وهو اللى ساعد كل الشعب انه يستخدم الكمبيوتر وهو GUI او Graphical user Interface ودة الواجهة الرسومية اللى كلنا شغالين عليها ع الكمبيوتر حالياً وفيه أنواع كتييير من الإنترفيس الرسومى دة _ بمزايا مختلف وبينزل مع نظم تشغيل مختلفة وكلهم بيسموا Desktop interface - اقتباس :
طيب الواجهات الرسومية اللى عملوها دلوقتى بيستخدموا فيها الجافا
ولا بيعملوها بلغات برمجة تانية ؟؟؟
ولا دى بتبقى حاجات موجودة فى Kernel بتاع نظام التشغيل من ناحية اللغة البرمجية اللى مكتوبة بها الواجهة الرسومية اولاً انا عايز أفهمك ان الكيرنل بتاع نظام التشغيل هو عبارة عن جزء صغير من ال OSأو موديول من ال OS بيشتغل في الميمورى دائماً طالما ان نظام التشغيل شغال فلازم يبقى حجمه صغيير جدااا عشان ما يأصرش على كفاء الجهاز وماياخدش مساحة من الميمورى فدة بيبقى فيه أساس الأساسيات اللى نظام التشغيل محتاجهااا دائماً ولما انت بتطلب تشغل أى برنامج تانى مثلااا _ وليكن انك فتحت Run وكتبت CMD ففتح لك موديول كتابة الأوامر أو ال CLIفانت كدة بتحمل موديول ال CLI في الميمورى مؤقتاً لحد ما تقفله انما مش بيبقى ضمن الكرنل _ وهكذا ال GUI فهو موديول بيتحمل لفترة وقت تشغيل الجهاز انما مش بيبقى ضمن الكيرنل لنظام التشغيل لاحظ من الصورة ان جزء الكيرنل فيه الأساسيات اللازمة من الدرايفات و ادارة الذاكرة والبروتوكولات وادارة الملفات والسوكيت للشبكات اما بالنسبة للغة البرمجة المكتوبة به _ فانا ماأقدرش أؤكد لك كلامى _ واحاول توثيقه بس اللى أعرفه ان كل نظم التشغيل تقريباً معمولة بلغة ال C++ إن لم تكن بال C ودة بسبب سرعة التنفيذ العالية للغة السي انما الجافا أظن انها مستبعدة لانها محتاجة وقت أطول بما فيها من نظام اوبحكت اورينتد وكمان ال JVM يعنى برده بستبعد لغة الC++.netمن الموضوع دة فأى نظام تشغيل بيبقى معمول بال C/C++ وقليلاً من الأسمبلى في الأجزاء ال Highest criticalواللى بتعمل بطء في التشغيل . وهنا فيه موضوع ناس بتتسائل ليه الكيرنل بتاع اللينكس معمول بال C مش بال C++ودة ممكن يكون توثيق لكلامى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] انا مش فاهمك في حكاية الفاير فوكس دىى يعنى ايه شفتهم بيستخدموا أكتر من لغة برمجة ؟؟ _ بس هى ميزة اللينكس عن باقى نظم التشغيل انهااا open source بمعنى انك ممكن تغير برمجة الكيرنل أو أى موديول في نظام التشغيل وتزود حاجات خاصة بيك في اللينكس _ ودة عن طريق أى لغة برمجة تريدهااا وفيه كوبايلر built in في اللينكس اسمه GCCواسمه ظاهر في الصورة دة انت ممكن تكتب فيه لغات برمجة كتيير جدااا زى ال C,java,Ada,Fortranوأعتقد ان فيه كومبايلر غيرهم في اللينكس يعنى انت مش محتاج تسطب visual studio وتشتغل عليه [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وان شاء الله يبقى لنا حلسة تااانى كبييييرة في حكاية اللينكس _ فعلاً اللينكس نظااام كبيير جداااً وانا بحب التحدى مع ميكروسوفت مع البرامج المضادة لهااا وأعذرنى ان كانت خبرتى قليلة باللينكس وان شاء الله اكون أفدتك ودى كتااااب حلو كتييييير تعليم البرمجة بالسي ++ على اللينكس _ على فكرة هى نفس الكود طبعااابس هو بيعلمك ازاى تتعامل مع الكومبايلر ومزايا أخرىى الكتاب حاطه الحبار في موضوع كتب ال سي ++ تسللللللم يا حباااار - الحبار كتب:
-
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] Jesse Liberty, David B. Horvath , Jonathan Parry-McCulloch, Hal Moroff, Paul Cevoli , "Sams Teach Yourself C++ for Linux in 21 Days" Sams | 2000-05-01 | ISBN: 0672318954 | 1152 pages | PDF | 4,3 MB Sams Teach Yourself C++ Programming for Linux in 21 Days teaches you the C++ programming language using the Linux operating system. You will gain a thorough understanding of the basics of C++ programming from a Linux perspective. The Bonus Week includes topics such as XWindows, KDE with QT toolkit, APE Class Library, and Real -time Middleware. [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] | |
|
| |
Terminator مشرف قسم هندسة القوى والآلات وحول العالم
عدد المساهمات : 1168 تاريخ التسجيل : 22/02/2008 العمر : 36 الموقع : In a Transformer رقم العضوية : 614 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الإثنين 30 مارس - 2:02 | |
| انا بصراحة مش عارف اقولك ايه يا يحيى على المعلومات الرائعة دى
اللى بصراحة اول مرة اعرفها خصوصا الجزء ان GUI هيه موديول فى OS
و ان شاء الله انا اقدر اساعدك لما نفتح موضوع اللينكس لانى فى الفترة الحالية بقرأ عنه كتير
بس اكيد طبعا مش هبقى اقوى منك انت كبيرنا برضه
اما الجزء الخاص Firefox انا لما دخلت على Wikipedia
و ده اللينك [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
هتلاقيهم كاتبين ان لغات البرمجة المستخدمة
C++ , java script , XBL , XUL , CSS
فانا اقصد ان دى نوع من الجافا
ولا ده موديول فى الجافا برضه
و اسف لأسئلتى الكثيرة
و شكرا مرة تانية يا باشا
و متقلقش مش هفضحك فى الكلية تانى
| |
|
| |
PRINCESS مشرف عام على الأقسام ومشرفة قسم إسلاميــات وكورسات هندسيه
عدد المساهمات : 2385 تاريخ التسجيل : 28/06/2007 العمر : 36 الموقع : جامعة أسوان رقم العضوية : 19 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الإثنين 30 مارس - 2:23 | |
| انا هرد رد صغير لأني مش عارفة مصادر اقدر أأكد بيها كلامي بس انا اللي اعرفه ان الفاير فوكس زي اللينكس open source وعشان كده تقدر تضيف عليه اي حاجة ودي اللي بنقول عليها الـ Extensions ودي ناس كتير مبرمجينها وبينزلوها في موقع الفاير فوكس واعتقد هي دي اللي ممكن تستخدم في برمجتها اي لغة برمجة
عموما لو عرفت حاجة جديدة هبقي اضيفها في الموضوع بس كنت عايزة اقول تعليق علي رد يحيي ان انا كنت اقصد ان الناس في العالم بدأوا يتجهوا للجافا من فترة فعشان كده لو دورت علي حاجة في الجافا هتلاقيها بسهولة وعموما ما اعتقدش ان المواقع العربية فيها منتديات كبيرة للبرمجة وحتي لو فيها .. فالأفضل والأسهل والأسرع انك تدور علي اي حاجة في المواقع الاجنبية او في الـ MSDN لو اللغة تخص ميكروسوفت [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
| |
|
| |
YeHi@$MmZ مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
عدد المساهمات : 5020 تاريخ التسجيل : 25/06/2007 العمر : 37 الموقع : سرى رقم العضوية : 10 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الإثنين 30 مارس - 2:40 | |
| أها انا مع برنسيس في كلامها عن الفاير فوكس _ انا مش بتعامل معاه _ أنا من مؤيدى الإكسبلورر بس كنت بشوف أنواع Extensions كتيير ممكن تنضم للفاير فوكس زى ال plug ins كدةة ويمكن بقى هى بتتبرمج باللغات اللى انت حاططهم يا لاشين - اقتباس :
- C++ , java script , XBL , XUL , CSS
أنا مش عارفهم كلهم _ بس هى ال سي ++ معروفة طبعا الجافا سكريبت عبارة عن لغة برمجة اكوادها بتبقى زى سكريبتات بتتضاف مع أكواد ال Html في صفحة الإنترنت بتعطى أكشن حلوو في صفحة النت مثلاً كإن السما بتمططر في الصفحة وهكذاا _ وكمان ال CSS برده سكريبتاات بتبقى ضمن أكواد ال HTmlاعتقد انها بتعطى interaction مع اليوزر اللغتين التانيين ماعرفهمش والله _ بس ندور عليهم _ ونشوف كلام جديييد _ تسلم يا مان - اقتباس :
- بس كنت عايزة اقول تعليق علي رد يحيي
ان انا كنت اقصد ان الناس في العالم بدأوا يتجهوا للجافا من فترة فعشان كده لو دورت علي حاجة في الجافا هتلاقيها بسهولة وعموما ما اعتقدش ان المواقع العربية فيها منتديات كبيرة للبرمجة وحتي لو فيها .. فالأفضل والأسهل والأسرع انك تدور علي اي حاجة في المواقع الاجنبية او في الـ MSDN لو اللغة تخص ميكروسوفت [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] تمااااام يا برنسيس _ فعلاً أى حاجة تبع ميكروسوفت حنلاقيها في ال MSDNبس برده مش حنلاقي لها شرح كويس ممكن يغنى عن كل حاجة _ دة اذا كنتى ضعيفة في اللغة نسبياً _ لان ال MSDN بيتعامل معاكى بال ميثود _ وحتدخلى لها باراميتر ايه وشوية أمثلة بس مش دائماً وممكن كمان الباراميتر مايفسرهااش وتدوخى من تانى عليها _ وهكذا في الجافا من موقع ال [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] اللى بيضم كل مكتبات الجافا _ فهو زى ال MSDN بس برده بيتطلب انك تكونى خبيرة سابقة في الجافا _ وعشان تتذكرى بس الباراميتر والميثود وهكذاا _ وانا كنت بقكر في سنة تالتة لما كنا بناخد الجافا _ انى اعمل موضوع كل يوم Method في الجافا _ ونحط عليها أمثلة ونعمل تمثيل لكل الباراميترات المتاحة _ بس الفكرة اختفت بسررررعة ايه رأيك يبقى في حاجة زى كدةةة ؟؟ | |
|
| |
Terminator مشرف قسم هندسة القوى والآلات وحول العالم
عدد المساهمات : 1168 تاريخ التسجيل : 22/02/2008 العمر : 36 الموقع : In a Transformer رقم العضوية : 614 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الإثنين 30 مارس - 3:26 | |
| انا متفق معاك ان يكون فى كل يوم method
بس يكون فى تعريف الاول عن MSDN
عشان اللى ميعرفوش
و فكرة ممتازة يا يحيى
و شكرا على المعلومات Princess
| |
|
| |
PRINCESS مشرف عام على الأقسام ومشرفة قسم إسلاميــات وكورسات هندسيه
عدد المساهمات : 2385 تاريخ التسجيل : 28/06/2007 العمر : 36 الموقع : جامعة أسوان رقم العضوية : 19 Upload Photos :
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الإثنين 30 مارس - 23:49 | |
| | |
|
| |
eng_ghost مراقب عام المنتديات والحوار العام ومنتدى الهندسة المدنية
عدد المساهمات : 4632 تاريخ التسجيل : 16/04/2008 العمر : 38 الموقع : just in my dreams ,, i can reach any place رقم العضوية : 1036 Upload Photos :
| موضوع: الفرق الجذري بين Java و C#, الخميس 2 أبريل - 13:05 | |
| | |
|
| |
وائل حسن مهندس بيشارك كويس
عدد المساهمات : 104 تاريخ التسجيل : 18/05/2010 العمر : 37 الموقع : أرى بخارى بلادي وهي نائية -- وأستريح إلى ذكرى خراسانِ Upload Photos : أهم مواضيعى : مدونتي الشخصية:
مدونة أفكار (مدونةٌ شخصيةٌ عن: السياسة، و المجتمع، و الأدب، و العلم.)
http://afkar-abo-eyas.blogspot.com
| موضوع: رد: حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى الخميس 16 ديسمبر - 9:49 | |
| السسلام عليكم ورحمة الله و بركاته رغم إن الموضوع قديم جداً لكنه مغر للغاية بالتحدث فيه، و ذلك لأننى أؤمن أن المفاضلة بين لغات البرمجة موضوع رئيس يجب على كل مبرمج أو حتى مطور الإحاطة له و سماع وجهات النظر المختلفة فيه.. و الحق أن المفاضلة بين لغات البرمجة قديمة قدم اللغات كلها، فمنذ أن تعددت اللغات أصبح من ضمن هموم المبرمجين المقارنة بين لغاتهم و اللغات الأخرى للعديد من الأسباب، و أهمها الإجابة عن السؤال القائل: أى اللغات تصلح لأى الأهداف التجارية المختلفة، و أى اللغات تصلح للتعليم، و هل توجد لغات تجمع بين المحاسن البرمجية كلها؟ أم أنه علينا أن نستخدم لكل مجال لغته ؟ و قد وضع المقارنون السابقون عدة معايير للحكم بها على لغات البرمجة (أوجه مقارنة) منها:
- المحمولية Portability
- الأمن Safety
- الاستقرار Stability
- الدعم القوى من المالك
- دعم التقنيات الحديثة
- إنفتاح المصدر
- البساطة و البعد عن التعقيد
- الأداء العالى للمنتجات
و غيرها من الأوجه الأخرى، و بالطبع فإن كل جماعة من هؤلاء المبرمجين كانت لهم الأولويات الخاصة بهم و الترتيب الخاص للعناصر السابقة، فمنهم من كان الدعم القوى من المنتج بالنسبة له يعد الأهم بلا منازع (و نرى معظم هؤلاء من أتباع مايكروسوفت) فى حين تلى ذلك باقى الناصر فى الأهمية، و هناك من يضع إنفتاح المصدر و البساطة فى المرتبة الأولى و..و....و غيرها. أما عما أراه أنا معياراً مناسباً للحكم على لغات البرمجة فألخصه فى العناصر التالية: 1) التخصص3) التهجين4) البساطة5) الأمن6) التجرد7) الشمول1- التخصص:قضية التخصص هنا أحصرها فى المسألة التى تناقش ما يجب على المبرمج البانى للمترجم القيام به و ما يجب أن يترك للمبرمج مستخدم اللغة لكى يفعله، و يمكننى أن أعبر عن رأيى فى هذه القضية بجملة بسيطة و هى "دع الإدارة للمترجم و حل المشاكل الأساسية للمستخدم"، و هو الرأى الذى أظن أنه يمكننى أن أكتفى به فى هذه النقطة كموضح لرأيى كل الوضوح، إلا أننى لن أضن على القارئ ببعض الشرح لعلى أوضح أمراً التبس عليه من مجرد قراءة تلك الجملة المقتضبة.حينما أقول الإدارة فإننى أقصد مجمل الأنشطة التى تختص بإدارة الذاكرة، و التى أفصلها فى البندين التاليين:1) تحديد المكان الذى ستوضع به البيانات فى الذاكرة أى عملية حجز الأماكن لها2) تحديد الوقت المناسب الذى سيتم فيه إرجاع الأماكن التى حجزت لمتغيرات فى الذاكرة ثم لم تعاد هناك حاجة لها إلى حوزة نظام التشغيل مرة أخرى لإعادة استغلالهافهاتين النقطتين تمثلان التعامل الكامل مع الذاكرة من وجهة النظر البرمجية للمستخدم لنظام التشغيل، أما الإدارة التى يقوم بها نظام التشغيل فهى عملية أكثر تعقيداً و تشعباً من هذه بكثير و إن كانت ترتكز عليها بشكل أساسى.و نظرتى إلى هاتين النقطتين على أنهما من نصيب المبرمج البانى للمترجم أو المفسر يوضح نظرتى إلى بنية إدارة الذاكرة و توزيع المسئوليات فيها، حيث أقسمها إلى ثلاث مراحل هى:1) القسم الأدنى: و يختص به نظام التشغيل. و هو الأمور التى تتعلق بكيفية تنظيم العمليات التى يجرى تنفيذها على الحاسوب فى الذاكرة، و كيفية إحلال البرامج الجديدة التى يرغب المستخدم للحاسوب فى العمل عليها محل تلك التى قيد التنفيذ و لكنها متوقفة عن العمل وقتياً. و كذا كيفية التنسيق بين التصور للذاكرة على أنها منطقة متصلة من الأماكن التخزينية مصفوفة فوق بعضها البعض و بين التصور الواقعى لها على أساس البناء العتادى لها أى طريقة بنائها كما صممتها شركة التصنيع لرقاقة الذاكرة.2) القسم الأوسط: و يختص به المترجم و المفسر. و يختص بحجز مكان فى الذاكرة للمتغيرات و مكونات البرنامج المختلفة، و فى النهاية إرجاع أى مساحة فى الذاكرة لم يعد البرنامج فى حاجة إليها إلى نظام التشغيل مرة أخرى لتقليص الفاقد من إمكانيات جهاز الحاسب إلى أدنى المراتب.3) القسم الأعلى: و هو مجرد الإستخدام بدون التقييد بكيفية معينة، و يختص به بطبيعة الحال المبرمج العادى للتطبيقات العليا.و أنا أعتبر أن أى مساس بهذا التقسيم سيحول العملية البرمجية إلى حلبة جودو، حيث تتداخل أقدام و أذرع المتصارعين بشكل لا يدرى معه أحد لمن هذا الذراع و لمن هذه القدم. و بالطبع فإن هذه الحال لا ترضى من يدافع عن الحق الطبعى للمبرمج العادى فى الحصول على الحرية القصوى و الراحة الكاملة فى التركيز على حل مشكلته التى يرغب فى حلها، بدلاً من تفريغ جزء من وقته و جهده لعملية من الواضح أنه لا ناقة له فيها و لا جمل.ثم إننى أتساءل عن الوظيفة التى ندخرها للمترجم إن كانت إدارة الذاكرة من نصيب المبرمج العادى، فهل ستكون مهمة المترجمات الرئيسة التى تركز عليها أغلب التركيز هى عملية التحويل من النص البرمجى عالى المستوى إلى الأصفار و الوحدان على الشكل الذى يفهمه معالج معين لنظام تشغيل معين؟.إننى أظن أنه من اللازم حقاً أن يركز مطوروا اللغات البرمجية على النموذج النظيف منها، و أن يضعوا نصب أعينهم تطوير مترجمات كفؤة تعين المبرمج المستخدم على التركيز على عمله الأساسى و فى نفس الوقت تطبق أفضل الخوارزمات التى تعطى البرنامج كفاءة الإستغلال الأفضل لموارد الجهاز.التهجين:تتفاخر كثير من اللغات البرمجية (أو على الأحرى يتفاخر مصمموها و المستخدمون المتعصبون لها) اليوم بأنها لغات كائنية صرفة أو لغات وظائفية أو إجرائية صرفة، و ذلك من منطلق أن الخير كل الخير فى ذلك النمط البرمجى الذى تخصصت فيه تلك اللغات و لا خير فيما عاداه، و هو القول الذى أود أن أنوه هنا إلى مدى حمقه و بلاهته.فنرى من يتعصب للجافا يقول أن البرمجة الكائنية هى الأفضل و هى النوع الأقوى من الأنماط البرمجية التى وصل إليها الفكر البرمجى البشرى و بالتالى كان من الرائع أن تكون الجافا تامة الكائنية، و هناك من يصر حتى اليوم على أن البرمجة الوظائفية هى الأفضل و الأقدر على القيام بكل المهام بسهولة و بالتالى تكون البرمجة بلغات عتيقة مثل الـ(C) منتهى المتعة بالنسبة له. و الحق أننى لا أرى الحق مع أى منهما، بل أراهما رأيا ما امتلأ من الكوب و لم ينتبها إلى ما فرغ منه، فالمبرمج باللغة الكائنية الصرفة لم ينتبه إلى ما بها من عيوب كان بإمكانه تفاديها عند البرمجة بالنمط الوظائفى أو الإجرائى، و كذا فالمبرمج الوظائفى أو الإجرائى إن صح لى أن أسميه هكذا لم ينتبه إلى أنه كان بإمكانه الإفادة من ميزات البرمجة الكائنية بدلاً من المعاناة التى وضع نفسه فيها حينما استخدم نمط البرمجة الآخر.و قولى هنا يستند إلى أن كل نمط برمجى له ميزاته و عيوبه التى يعلمها كل دارس لعلم هندسة البرمجيات الذى هو للمبرمج بمثابة أصول الفقه للفقيه و أصول الحديث للمحدث بلا زيادة أو نقصان، و مادام الأمر هكذا فإنه من الأفضل لو استطاع المبرمج أن يستخدم كل نمط من هذه الأنماط فى أفضل النواحى التى يتميز فيها ذلك النمط و يكون من الأكفأ استعماله فيه. و مادامت اللغة البرمجية هى الأداة التى يستعملها المبرمج فى عمله فإن هذه الأداة ستكون هى الفيصل فى تحديد الاختيارات التى سيقوم المبرمج باختيار نمط البرمجة المناسب من بينها، فلو كانت اللغة صرفة النمط (سواء أكانت كائنية أم وظائفية أم إجرائية) فإنها تقوم عندئذ بفرض ذلك النمط على المبرمج و تكبله به و تقيده به تماماً فلا يفارقه، أى أنها تعطيه كل ميزات ذلك النمط و لكنها تحمله كل عيوبه، و فى نفس الوقت تحميه من عيوب الأنماط الأخرى و لكنها تحرمه من المميزات التى تتمتع بها و لا توجد فى نمطها المختار.و المجادلة بأنه يمكن ببعض الالتفاف بناء نمط باستخدام نمط آخر هو نوع من الاستجارة بالنار من الرمضاء، فمادام هناك الطريق الأسهل و هو إتاحة الفرصة أمام المبرمج ليختار النمط الذى يرتضيه لتطبيقه فلم تكلف العناء و إثقال عاتق المبرمج بمهمة الإلتفاف و الدوران ليحصل على ما يريد، ثم فى النهاية نجد أن لهذا الأمر أضراره التى لا تخفى على أحد و منها:1- هناك أنماط يكون من الصعب أن تعلمها للمبرمج المبتدئ فى البداية قبل الأنماط الأخرى، مثل البرمجة الكائنية التى لا يمكن لأحد أن يفهمها جيداً قبل أن يفهم اولاً البرمجة الإجرائية و الوظائفية، و ما يحدث عندما يكون أمامه لغة برمجة كائنية صرفة مثل الجافا و يبدأ أول تعليمه بها ببرنامج هو الأبسط فى أى لغة مثل: public class hello}public static void main(String [] args(}System.out.println("hello, world");{{ ثم يتساءل ببراءة عن معنى (public) و (class) و (static) أن المعلم له يبدأ فى قول كلام كثير من عينة (لن نتحدث عن هذا الآن) و (أكتبها كما هى و سأخبرك بالسبب فى وقت لاحق) و (كلا لا تخلط بينهما فهذه موضوع درس اليوم و تلك موضوع الدرس العاشر فلا تتعجل و اكتب كما أقول لك و ستفهم فيما بعد) و غيرها الكثير و الكثير من الكلام الذى لا يجد فى نفس المستمع إلا دور إثارة الحيرة و الإرتباك بشدة. و يكون بعدها من الجلى أنه لا يمكننا تعليم البرمجة بلغة مثلها لأنه تحتاج إلى المرور على اللغات الأخرى أولاً قبل المجئ إليها و بالتالى يضيع الكثير و الكثير من الوقت على المبرمج المبتدئ متخبطاً بين اللغات المختلفة لمجرد تعلم البرمجة بصورة جيدة و هو الأمر الذى لا أجد له داعياً من أى نوع.و خلاف ذلك الوضع مع اللغات التى لا تدعم البرمجة الكائنية مثل الـ(C) حيث يكون على الراغب فى تعلم البرمجة الكائمية الذهاب إلى لغة أخرى، و لعل ما يخفف من عناء ذلك و مشقته فى حالة مبرمجى الـ(C) أنه سيجد لغة الـ(C++) التى يمكنه أن يغمض عينيه بعض الشئ عن الفروقات التى بينها و بين الـ(C) ليقول (بضمير غير مستريح) أنهما ذات اللغة و أنه لم يضطر إلى ترك اللغة الأولى لتكملة مشوار التعلم البرمجى. و لكن الحقيقة تظل هى الحقيقة من حيث أنه حتى فى هذه الحالة فإن الأمر كان مرهقاً بالنسبة له و لم يكن كما يحاول إيهامنا نزهة ريفية جميلة.و حتى فى تلك الحالة يظل القول بأن المبرمج ما زال تحت سيطرة نوع واحد من الأنماط البرمجية حقيقة لها منتهى القوة و العنفوان، و يظل الحصول على ميزات الأنماط البرمجية الأخرى رهناً بمدى البراعة و الدهاء و الوقت و الجهد الذى بإمكان المبرمج إبداءه و بذله للإلتفاف حول النمط المفرد للغة لبناء النمط المطلوب باستخدامه. و هكذا سنرى إهدار الوقت و الجهد و حيل الحواة و المشعوذين فى أكواد المبرمجين من تلك النوعيات المسكينة المقهورة على أمرها.لذلك و بكل بساطة أستطيع أن أقول أن المبدأ الذى يجب على كل لغة برمجية أن تنتهجه عند التعامل مع أنماط البرمجة المختلفة هو التهجين، و أقصد بالتهجين هنا مزج أقصى قدر ممكن من الأنماط البرمجية فى اللغة بحيث يكون المبرمج قادراً على استخدام أيها حينما يريد ذلك، مدفوعاً بالطبع إلى ذلك بقرارات تصميمية للتطبيق المراد بناءه تخبره أن ذلك هو القرار التصميمى الأفضل فى هذه الحالة.************هذا بعض مما يدور فى رأسى و ربما أضيف إليه فيما بعد.. | |
|
| |
| حوار المطورين _ """" شارك """ لغات البرمجة """ برأيك "" _ دعوة الى مبرمجى المنتدى | |
|