الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

وجهة نظر بعد دراسة أولية ل ++C !

مغلق
بدأه الاحتراف في 15 نوفمبر 2004 · 11 رد · 2,123 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بعد ان قمت بدراسة اولية للغة ++VC وجدت التالي :

اللغة مركبة جدا ، يعني تصلح لبرامج مميزة ، برامجي تتعلق بالهاردوير ، برامج تتعلق بالاتصالات .. أما بالنسبة للبرنامج التجارية فهي كباقي اللغات .. يعني البرنامج الي بقدر اعمله في الفيجوال بيسك بـ اسبوع ، أحتاج ضعفه لاعمله في ++VC .. ومع ذلك لا تجد به قوة اضافية في ++VC ، حيث أنني استطعت تصميم برامج اتصالات ، برامج تحكم عن بعد من خلال المنافذ ، برامج انظمة الرد الالي ، ... أي ان لغة الفيجوال بيسك بها قوة وليست ضعيفة كما يشاع .. ولكنها ضعيفة في MultiThreading و Pointers و ....

حتى في لغة ++VC يجب ان تزود البرنامج بملفات تشغيلية MFC42*.DLLL يعني مثل الفيجوال بيسك ..

الان .. لدي وجهة نظر للانتقال الي الدلفي بحكم انها قوية كما انها بسهولة الفيجوال بيسك ولا تحتاج ملفات تشغيلية ..

أو الانتقال الى #C ...

أما بخصوص الانتقال الى VB.NET فهذا لا أحبذه لانها بحاجة الى بيئة .NET وهذه حجمها كبير يعني صعب التسويق من خلال الانترنت !!

الرجاء متابعة النقاش في هذا الموضوع وتصحيحي اذا كانت استنتاجاتي خاطئة !!

#2

يا هلا بالإحتراف :)

إنشغلت بشكل كبير اليومين السابقين لظروف خاصة بإذن الله لن تتكرر ,,

المهم كلامك صحيح ولي بعض التعقيب .

بالنسبة للفترة الزمنية التي يجب قضاءها في البرمجة بال VC ستكون تقريبا ضعف ال VB فهذا الكلام ليس صحيح كليا بل نسبيا ,,

يعني نسبي لمن لم يحترف MFC ,, من إحترف ال MFC سيفعل كل شيء بسرعة كبيرة جدا كمحترفي ال VB ,,

الآن MFC تعطيك الفرصة لكتابة البرامج والقوالب أفضل بكثير من VB ,, نظرا لأنها تعتمد على الفئات ,,

يمكنك أن تكتب فئتك الخاصة مثلا لواجهة Forum وتطبقها بحذافيرها في برنامجك الجديد ,, وبكل العمليات الموجودة فيها ,, وإذا لم تعجبك دالة معينة موجودة في هذه الفئة ,, بكل بساطة يمكنك أن ترث منها وتعمل OverLoading لهذه الدالة أو لعدة دوال موجودة ,,

دعك من التطوير الجماعي ,, قسم لتطوير الفئات وقسم لتركيبها في البرنامج ,, الآن قسم التطوير يريد من قسم التركيب التقيد بلوائح وطرق معينة في إستخدام المتغيرات في هذه الفئة ,, ولايردك أن تشطح في إستخدامات تضر بالبرنامج ككل في النهاية ,, طبعا سيجعل لك المتغيرات التي لايردك أن تغير فيها Private والتي يمكنك أن تعبث بها مباشرة قليلة جدا أو معدومة ,, والتي يعطيك فرصة التطوير منها protected ,, الآن منحى الوراثة والفئات الموجود في C++ سيريحك من عناء أمور كثيرة للغاية ,, ال VB فيها فئات لكن ليست بهذا المستوى أبدا .

بالنسبة للمكونات يمكن للبرنامج ال MFC أن يعمل ولايحتاج لأي مكتبة إضافية وذلك بطلب عمل ربط ساكن فقط ,, وسيزيد حجم الملف التنفيذي قليلا ,, ويصبح بمتوسط 300 كيلوبايت ,, لكن لن يصل لحجم ال VB في حال الربط الساكن والتي أعرف أنها حوالي أكثر من ميجابايت .

الدلفي ماأعرفه عنها أنها تحقن مكتبتها في الملف التنفيذي لهذا حجم الملف الناتج كبير دائما ,,

قارن بين حجم ملف ال exe من الدلفي والناتج من MFC لم يتم حقن MFC فيه لأن المستخدم قد يكون لديه MFC Library ,,, ملف ال MFC حجمه سيصبح حوالي 50 -100 كيلوبايت فقط ! كم سيصبح حجم ملف الديلفي ؟

الإنتقال للسي# خيار جيد أيضا والسبب أنها ستنتشر الفترة القادمة وفي كل الوندوزات ,, يعني بعد ال Longhorn أي وندوز سيكون فيه .NET ,, حجم ملفات exe من الدوت نت 10 كيلوبايت !! تخيل ! هلاك ,,

بالنسبة لل VB.NET تعمل بالدوت نت كما السي# تماما ,, كلاهما يحتاج لمنصة الدوت نت وإلا لن يعمل أبدا ,, لكن كما قلت البرامج التجارية لايضر أصلا أن تسوق منتجك بأي لغة لأنك غالبا ماستضم مكتبات اللغة مع المنتج ,, أما المستقبل فهو للدوت نت بلاشك ,,

وحاليا كما فهمت من تلميح أحد مطوري ال VC++ 2005 ,, أنه سيتم تصدير MFC.NET مستقبلا ,, وهذا مجرد تكهن فهمته من كلامه ,, حيث قال أن ال MFC يمكن تحويلها لتشتغل مع الدوت نت بطريقة ما لم أفهمها ول يوضح فيها وكان كلام سطرين فقط !!

المهم سأقرأ الموضوع مرة أخرى ,, وأفيدكم هنا ,,

أخير اال Visual Studio.NET 2005 نسخة بيتا 1 ستصدر كحد أقصى كما قرأت من فريق التطوير حتى شهر 2 غالبا من 2005,, والنسخة الكاملة ستصدر قبل نهاية النصف الأول من 2005 القادم ,, يعني 6 أشهر فقط .

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

أهلا بيك أخي :) ..

أول خبر سار في هذا الرد ان غيابك لن يتكرر ( بإذن الله ) ;)

مما لا شك فيه أنك تابعت مشاركتي والتي كانت تتمحور حول الانتقال الى لغات برمجة اكثر قوة .. ولكنني بصراحة صعب عليّ ان اتعامل مع لغة بتعقيد لغة ++VC لتصميم برامجي بينما كنت اصممها بكفاءة عالية من خلال - لغة الهواة كما يقولون - الفيجوال بيسك ..

ولكن بصراحة ، جلست مع نفسي لأقيّم قدرتي في البرمجة باستخدام الفيجوال بيسك فوجد التالي :

1. بالنسبة للبرامج التجارية ( المحاسبية ، الادارية ، التعليمية ، .. ) فلم أجد اي عقبة .

2. برامج TAPI .. صممت برامج ايضا تتعامل مع الموديم حتى أنني لم استخدم فيها ادوات جاهزة وكانت فعالة جدا .

3. برامج ASPI .. صممت برنامجا ولكني استعنت بأداة ActiveX ولكنها أدت الغرض .

أما المشاكل التي واجهتني في :

1. عدم قدرة الفيجوال بيسك على دعم Multi Threading .

2. عدم قدرة الفيجوال بيسك على التعامل مع المؤشرات مع وجود بعض الملفات التي قد تسد قليلا من العجز في هذا المجال .

3. الملفات التشغيلية RunTime Files .

4. عدم القدرة على اضافة كود اسمبلي في الفيجوال بيسك ، لذا قمت ببنائها باستخدام الدلفي واعدت طلبها من خلال الفيجوال بيسك .

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

هنالك من يقول أن VB.Net قد تحل العديد من هذه المشاكل ، صراحة أنا لم انتقل اليها ولم أجربها ...

شكرا لاهتمامك أخي ، ولا تطيل الغيبة

#4
اقتباس
برامجي تتعلق بالهاردوير ..

همهم السي# جيدة هنا .. ولكن برأيي أن C++ ستكون أنسب , لقد صممت السي# لتكون أكثر إنتاجية وأكثر مناسبة لمشاريع E-Buisnes في حين أن التحكم بالمنافذ والعتاد وما إلى هنالك (أي مايعرف بـ Low-Level access) لابديل عن C++ .

اقتباس
أحتاج ضعفه لاعمله في ++VC 

وربما أكثر .... أحيانا 5 أضعاف

ومع أني أحترم رأي الصديق العزيز HGB :

اقتباس
يعني نسبي لمن لم يحترف MFC ,, من إحترف ال MFC سيفعل كل شيء بسرعة كبيرة جدا كمحترفي ال VB ,,

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

اقتباس
ومع ذلك لا تجد به قوة اضافية في ++VC

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

اقتباس
أي ان لغة الفيجوال بيسك بها قوة وليست ضعيفة كما يشاع

نفس الموضوع , حسب تعريفك للقوة , لكني بشكل عام أخالفك الرأي ... إنها جيدة من أجل المشاريع التي تناسبها , ولكن مصطلح القوة يعني أشياء أخرى .....

مارأيك أن لغة الفيجوال بيزك لاتدعم الوراثة ؟؟؟؟؟؟؟ (لا أستطيع الإستغناء عن هذة الميزة يوم واحد في حياتي )

اقتباس
الان .. لدي وجهة نظر للانتقال الي الدلفي بحكم انها قوية كما انها بسهولة الفيجوال بيسك ولا تحتاج ملفات تشغيلية ..

يوجد العديد من المزايا الجيدة في دلفي , ولكني سأختصر لك الموضوع بميزة أم تعتمد عليها فلسفة الدلفي .... "الإنتاجية Productivity" وهي القدرة على بناء تطبيقات جيدة ((قوية و مستقرة وسريعة ...)) في وقت قياسي

اقتباس
الآن MFC تعطيك الفرصة لكتابة البرامج والقوالب أفضل بكثير من VB ,, نظرا لأنها تعتمد على الفئات ,,

ال VB فيها فئات لكن ليست بهذا المستوى أبدا .

طبعا .... دعمت VB ذلك في الإنتقال من الإصدار 4-إلى 5 على ما أظن , وبقي هذا الدعم قاصرا في نواحي متعددة (مثال الدعم الضعيف للوراثة )

اقتباس
قارن بين حجم ملف ال exe من الدلفي والناتج من MFC لم يتم حقن MFC فيه لأن المستخدم قد يكون لديه MFC Library ,,, ملف ال MFC حجمه سيصبح حوالي 50 -100 كيلوبايت فقط ! كم سيصبح حجم ملف الديلفي ؟

سيكون حوالي 360 Kb بوجود فورم لوحدة .. مثلا بعد إضافة أول زر يزداد الحجم قليلا , ثم لن يزداد بشكل ملحوظ مهما أضفنا أزرار , ما قصدته من ذلك أنه عندما يكبر مشروعنا قليلا لن نشعر بعدها أن الملف كبير الحجم , لإن الحجم الأول (قبل إضافة شيء) هو فقط المشكلة وهذا الحجم ثابت أي أن حجم ملفنا النهائي هو الحجم0 +360 , ولا تتناسب الزيادة مع حجم مشروعنا , لذلك دلفي غير مناسبة لكتابه تطبيقات مشغلات أو تطبيقات غاية في الصغر لإنجاز مهام Dos مثلا .. وتعتبر معنية بالدرجة الأساسية بجعل برمجة تطبيقات الويندوز أكثر إنتاجية , وتعتبر تطبيقات الأعمال وتطبيقات التجارة الإلكترونية أكثر تطبيقات دلفي إنتشارا مثلا تجدها في الشركات والمؤسسات وبرامج قواعد البيانات وClient Server وتطبيقات الويب , الخ ...

في حين تجد C في النظم والبرامج التي تأتي مع ويندوز ومشغلات الأجهزة وما إلى هنالك وهذا يتطلب الإقتصاد بالحجم , ربما يكون الحجم الصغير من أهم أولويات C++ لكنة ليس كذلك بالنسبة لDelphi .. وهذا رأيي وربما يخالفني البعض

اقتباس
صعب عليّ ان اتعامل مع لغة بتعقيد لغة ++VC لتصميم برامجي

صح ..

اقتباس
لغة الهواة كما يقولون - الفيجوال بيسك

ولكنها لغة جميله جدا على كل حال . وفي حال كان مشروعك مناسب لها فلن تجد أفضل منها , وإذا كان لها مشكله فهي أن مجال البرامج المناسبة لها أقل من غيرها (VB is Great For Tiny) , ولكن لاحظ أهميتها في التعامل مع تطبيقات Office مثلا ..

أعلم أن VB مظلومه , ... ؟؟؟ إذا كانت مايكروسوفت نفسها قد ظلمتها , فلماذا علينا أن ننصفها نحن ..

أهم شيء أنه لايوجد إصدارات مستقبلية منها , وبالتالي لامستقبل لها (VB العادية ) وبالنسبة لواحد مثلي يرى أن Vb.Net لغة أخرى مستقلة ومختلفة تماما , لكن ميكروزوفت أحتفظ ب"VB" في حقل الإسم ؟

سواء أخترت C# أو دلفي , كلاهما لغات ممتازة (كنت خائفا على مستقبل دلفي بعد .NET ولكن الآن صدرت Delphi 2005 وأصداء صدورها أكثر من رائعة . ليس فقط على صعيد دعم .NET بل حتى على صعيد ميزات اللغة التقنية , "تخيل يارجل زاد دعمها لميزات OOP التي كانت ممتازة أصلا " . وصرحت بورلاند أن Delphi 2005 الجديدة هي أهم منتج أنتجته وهي رأس هرم منتجاتها على حد تعبيرها . ليس فقط كذلك بل قرأت في العديد من الوثائق التي أصدرتها بورلاند أنها ربما تكون أفضل أداة لتطوير التطبيقات تحت منصة دوت نيت)

أما الخبر الذي سيعجبك تماما ... أن دلفي 2005 الجديدة مضمنة نسخة C# كاملة 100% . وعندما تختار مشروع جديد يسألك إذا كنت تريدة دلفي أو C# . وأنها قادرة على فتح ملفات VS.Net والتعامل معها .

نصيحة , إنتظر دلفي 2005 , وتعلم ماتستطيع من C# ومن دلفي معا ومن ثم إعمل عليهما معا من خلال البيئة Delphi2005 . خاصة وأن العصر يتجه لتطوير تطبيقات في أكثر من لغه برمجة في وقت واحد ,,,(أنا هكذا سأفعل , وأنتظر الفرصة المناسبة للبدء بالتعلم على C# .. ربما سنعتمد على أخوتنا في المنتدى وسنصبح ضيوف عندهم )

وهكذا تكون قد ضربت عصفورين بحجر واحد , القوة وسرعة تطوير التطبيقات من دلفي , والقوة وتسويق مايكروسوفت الهائل من C#

ولإني ذكرت كثيرا اليوم مصطلح إنتاجية , سأدرج هنا أجزاء من مقاله كنت قد ألفتها عن الإنتناجية :

السرعة :

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

السرعة مفهوم أكبر قليلا مما يبدو علية للوهلة الأولى , سأحاول أن أشرح نظرتي لمفهوم السرعة .

تقسم السرعة إلى قسمين :

سرعة تطوير التطبيق ((الإنتاجية))

سرعة تنفيذ التطبيق

سرعة تطوير التطبيق "الإنتاجية" Productivity :

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

- جودة التطبيق (سرعة وثوقية إستقرارية حجم محمولية الخ ... )

- زمن التنفيذ

إذا أردنا سرد العوامل المؤثرة على إنتاجية لغة ما بناء على ماسبق , ربما كانت النتيجة كالتالي :

سهولة اللغة :

لماذا علينا أن نختار لغة برمجة قوية جدا غير قادرة على بناء التطبيق الذي نريدة بسرعة كافية ؟

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

*- زمن تطوير أكبر , مما يخفض الإنتاجية .

*- مزيد من الوقوع في الأخطاء مما يخفض مستوى جودة النتيجة , حيث جرت العادة في اللغات التي تتطلب شفرة طويلة ومعقدة أن المستخدمين يقعون في كمية كبيرة من الأخطاء البرمجية , والتي تطلب سنوات من الخبرة للتغلب عليها , في حين أن اللغة الأسهل و الأكثر إنتاجية تسمح للمبتدئين ببناء تطبيقات أكبر وأكثر إستقرارا بسرعة كأنهم يعملون منذ سنوات ولديهم خبرة جيدة .

إذا كانت لغتان قادرتان على بناء تطبيق ما وإحداهما تحتاج زمن أكثر لتحقيق ذلك , فاللغة الثانية هي الأكثر إنتاجية وهي الأفضل لهذا المشروع لإنها توفر الوقت والجهد والمال .

الإنتاجية تعتمد مبدأ أساسي في العمل : (( إتبع أبسط وأسهل طريق يحقق كامل الهدف )) . لاحظ كلمة "كامل الهدف" , لايجب أن نتبع طرق سهلة ولكنها غير قادرة على تحقيق متطلباتنا على أكمل وجة .

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

الخلاصة : لاأريد أن أقول أن القوة والإنتاجية متعاكستين , وهذا فهم خاطىء لكلامي . ولكن ماأريد قولة أن الصعوبة والإنتاجية متعاكستين . إذا كانت لغة البرمجة التي تعتمدها تحقق القوة عن طريق الصعوبة والتعقيد فهي أقل إنتاجية . ومن الطبيعي على كل حال أن تكون اللغات التي تهتم للقوة بشكل أساسي أقل إنتاجية من غيرها ,لإنها بحاجة لتفصيل كافي. ولكن ذلك ليس حالة عامة .

تعتبر كثير من اللغات مثل جافا و C++ ضعيفة الإنتاجية . وهذة اللغات عندما بنيت تم تصميمها لتكون أكثر قوة أو أكثر محمولية مثلاً , وبالتالي أهمل إلى مدى بعيد موضوع إنتاجية اللغة ,.

لغه Visual Basic تعتبر لغة سهله , وهي لغة عالية الإنتاجية نظرا لسهولتها وبساطتها. مشكلتها أنها لاتقدر على التعامل مع المشاريع الكبيرة ولكن في حال كان المشروع مناسبا لها فإنها تعتبر ذات إنتاجية مميزة , وهذا هو سر إنتشارها الواسع , ولاأرى في ذلك عيبا أبدا . اللغة مناسبة لمشاريع دون أخرى ولكنها تخدمك بشكل أنيق في المشاريع التي تناسبها .

قابلية إعادة الإستخدام ReUsibility .

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

التوسعية Extendibility .

وهي القدرة على التخاطب مع نظم وتقنيات مختلفة مما يسمح بالإستفادة من الميزات المتوفرة بكل نظام بدلا من إعادة بنائها , كما يسمح دعم التقنيات المختلفة بتحقيق أعمال معقدة ومتطورة بمستوى أعلى من السرعة والأمن .

سأشرح ذلك :

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

مثلا تملك دلفي دعم خاص في شريط أدواتها لقواعد بيانات Dbase , مما يعطي إمكانية هائلة لإدارة هذا النوع من قواعد البيانات , حيث يستثمر تطبيقنا ميزات Dbase بشكل أمثل ويحقق لنا أفضل أداء تقدر Dbase علية , كما أنة يسمح لنا بالتحكم الكامل بنظام إدارة قواعد البيانات العلائقية هذا , ويضيف إمكانيات الإدارة التي لاتستطيع أدوات أخرى إضافتها دون أطنان من الشفرة .

كل هذة الميزات يمكن تحقيقها يدويا دون الحاجة للتكامل مع نظام Dbase ولكنها ستأخذ شهور من البرمجة وستكلفنا كمية كبيرة من الأخطاء أي وببساطة ستسلب الإنتاجية العالية منا وستصبح خيارا سيئا عندها .

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

والخبير يستطيع تحقيق نتائج تامة من الجودة والموثوقية بزمن قياسي . وبأقل تكلفة ممكنة للجهد والمال .

كذلك يمكن لدلفي التخاطب مع لغات برمجة أخرى . فهي تتشارك مع لغة C_Builder بمكتبة المكونات (VCL) , كما أنها يمكنها إستخدام وبناء مكتبات ActiveX (ملفات OCX) التي تدعمها لغات Visual Studio مثلا . حتى في الإصدارة الحديثة من دلفي Delphi2005 أصبح بإمكانك كتابة مشاريع C# بشكل مناسب .

لاحظ مثلا تكامل لغات الـ .NET . هذا ما أسمية توسعية حقيقية , حيث أن القدرة على التخاطب بين اللغات المختلفة يجعل من السهل تقسيم العمل إلى أجزاء وبناء كل جزء باللغة الأكثر مناسبة له .ومن السهولة بمكان إستخدام كومبونينت من لغة .NET في لغة أخرى منها .

فكلّ لغات VS.Net تستخدم واجهة واحدة، مليئة بالأدواتِ التي تُسهّل بطريقة مدهشة عمليّةَ تصميم البرنامج.. إنّ هذه الميزة تسمح لك بإنشاء تطبيقات تدخل فيها أكثر من لغة برمجة، دون أن تحتاج لفتح أكثر من واجهة.. إنّها واجهة واحدة فقط لكلّ المبرمجين.

لغه Python مثلا تملك حوار خاص مع C++ التي كتبت بها بعض أجزاء الPython , وتسمح Paython بإستخدام شفرات C++ في بعض الأماكن التي تعاني فيها Paython من البطىء من أجل تسريع البرنامج , ممايعطي سرعة كبيرة في تطوير التطبيق (Paython) وسرعة في تنفيذ التطبيق (C++) .وكذلك إمكانية تطوير وتعديل وحدات كتبت بلغات مثل C و C++ و Java و Fortran .

حتى لغة Perl يمكنها أن تترجم إلى ملفات C سريعة التنفيذ أكثر . كما أنها تملك تكامل جيد مع نظام التشغيل . حيث تسهل من عمليات معالجة النصوص والولوج لتوابع نظام التشغيل .

وكل ذلك يندرج في إطار التوسعية , والقدرة على التخاطب مع النظم المختلفة .

دعم تقنيات مختلفة :

دعم لغة برمجة ما لتقنية يعني توفير واجهة جاهزة لإستخدام ميزات هذة التقنية بشكل مريح . مثلا دعم اللغة لتقنيات الويب , تدعم C# تقنيات ASP.Net مما يجعلك تصمم تطبيقات ويب تفاعلية بمنتهى السهولة والمتعة , الدعم الجاهز والمضمن مع اللغة لهذة التقنيات يسمح لك بالعمل مع التقنية من خلال واجهة مريحة جدا تغلف إمكانيات التقنية بشكل سهل , حيث يكفي السحب والإفلات بالفأرة مثلا لتصميم واجهات ويب WYSIWYG متكاملة وضبط خصائصها دون الحاجة لبرمجة ذلك من البدء وكتابة آلاف السطور.

تقنيات مختلفة وكثيرة مثل COM, DCOM, CORBA, XML, SOAP, Web, Databases, الخ ... يمكن أن تكون مدعومة بشكل جيد من لغة البرمجة مما يزيد بشكل كبير القدرة على بناء تطبيقات متطورة , ويخفض الزمن والتكلفة اللازمة لذلك .

توفر مكتبة أدوات واسعة Wide Component Library :

بغض النظر عن دعم التقنيات المختلفة والتكامل مع النظم المختلفة . تحوي لغات البرمجة مكتبة أدوات تسمح لك بإنجاز المهام المتكررة وتصميم برامج مفيدة بسهولة أكبر وبمجموعة أكبر من الخيارات .

أنا أؤمن بالمقولة التي تقول :

" When all you have is a hammer, everything looks like a nail. And when you have a complete tool chest, you can choose the right tool for the job instead of just pounding away "

مكتبة الأدوات هي الترجمه الفعلية للبندين السابقين , حيث يتم دعم نظم وتقنيات مختلفة بتوفير مجموعة أدوات مناسبة في مكتبة أدوات اللغة .

توفر مكتبة أدوات واسعة تغطي مجموعة كبيرة من الإحتياجات يفيد في ثلاث جوانب :

- يوفر الوقت والجهد .

- يقلل من الأخطاء ويزيد من الفاعلية , لإننا نستخدم شفرة قياسية وضعها أخصائيون وجربت حول العالم لوقت كافي .

- يسمح لنا ببناء أنواع جديدة من التطبيقات لم نكن قادرين على بنائها قبل توفر الأدوات بسبب عدم قدرتنا على إنتاج هذة الشفرة المعقدة المكونه لها .

Perl مثلا تملك مجموعة مكتبات (Module) لفعل أي شيء تريدة كالتعامل مع الرجيستري وتصميم الواجهات , التعامل مع الملفات , وإستخدام Win APIs وإلى ما هنالك .

خلاصه :

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

من اللغات الأكثر إنتاجية لغة البرمجة دلفي (Borland Delphi) التي تدعم الأفكار السابقة بشكل فريد , ربما تكون دلفي اللغة الأشهر التي تتميز بالإنتاجية كصفة أساسية . فهي منتج بورلاند للتطوير السريع للتطبيقات –RAD- (Rapid Application Developiment) وقد صممت دلفي منذ البداية تحت رايه الإنتاجية العالية . فهي رغم أنها لغة قوية جدا , ولغة تملك وصول منخفض المستوى وقدرة ممتنازة على العمل تحت الحطام , أستطاعت إنتزاع السهولة والبساطة عن طريق فلسلفة التغليف بالأدوات . حيث قام مطورو دلفي بتزويدها بكمية ضخمة من الأدوات والمكتبات القادرة على تغليف كمية غير مسبوقة من الإحتياجات البرمجية , مما أخفى التعقيد والصعوبة تحت قناع الأدوات والمكتبات الجاهزة التي تستطيع القيام بالأمور الصعبه بجهد أقل . والأجمل من ذلك أن مكتبة الأدوات هذة كلها مفتوحة المصدر ومبنية بشكل كامل على دلفي نفسها , مما أعطى مستخدمي دلفي القدرة على الإضطلاع على آلية تنفيذ مكون ما وبالتالي الإستفادة منها والتعديل فيها بما يناسبهم . وبنفس الوقت ظلت دلفي قادرة على العمل بالمستوى الأدنى متى لزم الأمر .

لغة VB كذلك تعتبر ذات إنتاجية عالية , ولو أنها تختلف مع دلفي بفلسفة الإنتاجية , حيث حفظت دلفي خط الرجعة وبقيت محتفظة بمخزون كافي من القوة , أما VB أعتمدت على البساطة النحوية والسلاسة في الإستخدام , والتكامل مع ميزات Office ونظام التشغيل .

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

جافا كذلك إنتاجيتها منخفضة , إنها مثل الـ C++ في كثير من الجوانب ولطاما تشابهت معها وهاهي الجافا تفضل البقاء مع صديقتها C++ في الخندق المعادي للإنتاجية , .

ويعتبر الكثيرون أن إنتاجية جافا أفضل من إنتاجية C++ في الكثير من الجوانب وهذا هو رأيي الشخصي كذلك .

SmallTalk تعتبر لغة ذات إنتاجية عالية كذلك , لعدة أسباب منها :

سهولة اللغة نحويا فهي من أقرب اللغات إلى اللغة البشرية المحكية .

سرعة تنقيح الشفرة .

الإستغناء عن Type وبالتالي عدم إهدار الوقت في عليات التعريف للمتحولات والأغراض .

الواجهة التصميمية المساعدة على تصميم واجهات سهلة وسريعة .

لغه Paython ذات إنتاجية جيدة , وتأخذ البرامج المكتوبة بواسطة Paython وقت أقصر بحوالي 3 – 5 مرات من البرامج المكتوبة بواسطة جافا مثلا .

#5

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

#6

السلام عليكم ...

ما شاء الله ، رد رائع أخي .. بارك الله فيك

فعلا أشفيت غليلي :) انت وأخي HGB

ولكن كلما طرح هذا الموضوع كلما زادت الحيرة .. انا يهمني الانتاجية كما ذكرت ، والهدف من تعليمي للغة هو تطوير قدراتي .. ولكن من تعود على انتاجية عالية صعب عليه انه يعود الى لغات أقل انتاجية ..

اليوم القيت نظرة خاطفة على VC#2005 وكانت قمة في الروعة ..

سهولة الفيجوال وقوة السي ...

وكذلك الدلفي 7 ايضاً ...

والآن ... لا مجال لمضيعة الوقت والانتظار

يجب بدء العمل فوراً على اعتماد لغة ..

البعض سيقول :

مللنا من هذا الحديث الطويل حول اللغات ؟؟ واي لغة تختار ؟؟ وميزات كل لغة ؟؟

أقول :

صدقت ، ولكن هذا السؤال سيتكرر طالما هناك من يبحث عن الافضل ، وإلا لاختار كل واحد منا لغة وانتهى الموضوع :)

ولكن ما يجول في ذهني هو التالي :

ان من الاسباب التي تجعلني اتوجه الى الدلفي وليس الى سي شارب ، هو ان السي شارت تحتاج الى منصة الدوت نت والتي حجمها 24 ميغا ويجب ان تكون على الجهاز ... بينما الدلفي لا تحتاج لأي شيء !! وان كان حجم ملفها أكبر بقليل !!

وسؤال آخر لو سمحتم :

هل معنى Beta أنه سيحدث عليها تغيرات كثير ويفضل أن انتظر النسخة النهائية ؟؟ أم انه يمكنني استخدامها بشكل طبيعي الى ان تصدر النسخة النهائية ؟؟

وشكرا لكم لحسن استماعكم .. والى لقاء قريب ان شاء الله

#7

يا ريت تكملوا النقاش الممتع و اللي بساعد أي شخص بتكوين فكرة جيدة عن المستقبل و ماذا يريد

#8
cold0zero كتب:
يا ريت تكملوا النقاش الممتع و اللي بساعد أي شخص بتكوين فكرة جيدة عن المستقبل و ماذا يريد

فعلا نقاش جميل ومشوق ..

ننتظر التكملة وحديث اكثر من رائع أخي ORWA ...

بالتوفيق...

#9

السلام عليكم ..

أنا من ناحيتي جاهز .. فالأسئلة كثيرة والحمد لله :)

تحياتي

#10

اسمحو لي ان اشارك في هذا النقاش

من اجل سؤالك الثاني اخ الاحتراف

فحسسب معلوماتي هي نسخة اولية وسيتم الحاقها بعدة اصدارات حتى تصدر

النسخة النهائية profeshinal

اقتباس
كن ما يجول في ذهني هو التالي :

ان من الاسباب التي تجعلني اتوجه الى الدلفي وليس الى سي شارب ، هو ان السي شارت تحتاج الى منصة الدوت نت والتي حجمها 24 ميغا ويجب ان تكون على الجهاز ... بينما الدلفي لا تحتاج لأي شيء !! وان كان حجم ملفها أكبر بقليل !!

بالنسبة لي انا اعمل على النسخة السابعة ورغم انها تحتوي علىالكثير من مكونات الدوت الا ان الاصدار الثامن يحتوي على عدجد هائل من هذه المكونات وكما قال اخي عروة

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

فانا من مؤيدي هذا الراي

اولا لدعمها الكامل للدوت وهذا سوف يضيف على هذه الغة قدرة هائلة فوق القدرة التي تمتلكها

ثانيا وكما نوه اخي عروة ان

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

حيث انه تطرح في الاسواق الاف المكونات والادواتالموسعة تتراوح بين الملحقات المجانية تابسيطة الى مشاريع ضخمة مفتوحة الشيفرة ومن برامج تجريبية الى مكونات العالية الاحترافية واليكم النذر القليل من هذه المواقع

www.atozedosoftware.com

وهذا موقع للمكونinternet Direct ,dleg adtvm ltj,pm hglw]v

www. delphi-jedi.org

www.gexperts.org

www.delphree.clexpert.com

www.sourceforge.net

www.philo.de/aml

,a;vh

اصحيح ان العرب في هذه الحياة.......هذا بالاسم فقط

لالالالابالاحلام ....او..لاكمال العدد؟؟؟؟؟؟

#11

السلام عليم ..

شكرا لاهتمامك أخي زاهر ..

على كل احببت ان اخبركم انه جاري تحميل Delphi 2005 وحجمه 275 ميغا :)

تحياتي

#12

أحب أن نكمل النقاش بالموضوع , ولكن في قريتنا الآن مشاكل بالكهرباء وهذا هو سبب إنقطاعي الجزئي عن الموقع

على كل حال سأضع المقاله التي إقتبست منها كاملة هنا في المنتدى , ربما عند أخي Cold0Zero , ولكني لا أعثر على التنسيق النهائي لها لذلك ربما أضعها مبعثرة .؟؟؟؟؟

هذا الموضوع مغلق.

مواضيع مشابهة