22

إجابة هذا السؤال تختلف كثيراً من مبرمجٍ إلي آخر، تبعاً للعوامل التالية:

  • هل هناك نظام تشغيل معين تستهدفه بتطبيقاتك، أم أنك ترغب في عمل برنامج متعدد المنصات ؟، و إن كنتَ تستهدف نظاماً معيناً فما هو ذلك النظام ؟ و ما هي لغة البرمجة التي تقوم الشركة المنتجة للنظام بالترويج لها و دعم مكتباتها القياسية بقوة و تقوم بإعطائها القدرة علي استغلال كل إمكانيات نظام التشغيل في الكل أو الإمكانيات الخفية ؟، و إن كنت ترغب في عمل برنامج متعدد المنصات فما هي اللغات التي تدعم أكبر عددٍ ممكن من المنصات المشهورة، و يكون دعمها لتلك الأنظمة مستقراً و يتم تحديثه باستمرار ؟،

  • هل هناك طريقة مفضلة لك في شكل البرنامج الناتج: يعني هل ترغب في أن يكون علي هيئة كود مُدار managed code أم علي هيئة كود أصلي native code ؟، أم أن الأمر لا يشكل هذه الأهمية بالنسبة لك ؟، فإن كنت تفضل شكلاً معيناً فما هي اللغات التي تشتهر بذلك الشكل و تكون برامجها عالية الكفاءة فيه ؟، و إن كانت بعض برامجك سيتم توزيعها علي شكلٍ معين و البقية علي شكلٍ آخر: فما هي لغات البرمجة التي تدعم الشكلين و تعطيك قوةً في كلتا الحالتين ؟،

  • ما هي اللغات التي لها مكتبات قوية متخصصة في المجال الذي ترغب في عمل برامج له ؟، و أي اللغات منهن لها مكتبات مجانية أو حرة المصدر بحيث تكون أخف في الميزانية ؟،

  • ما هي قناعاتك الذاتية في الأمور التي تختلف فيها لغات البرمجة من حيث التصميم، يعني مثلاً هل تحب التنويع الثابت static typing أم التنويع المتغير dynamic typing ؟، و هل تحب وجود الخصائص منخفضة المستوي -كالمؤشرات pointers- في كل كود تكتبه أم تحب أن تعمل بعيداً في المستوي الأعلي ؟ ... إلي آخر أمثال هذه الأسئلة التي تجعلك تميل إلي لغات معينة و تنفر من أخريات،

  • ما هي اللغات التي تتوافر لها بيئات برمجةٍ متكاملة IDEs تساعدك علي سرعة إنتاج مهامك البرمجية و التركيز علي الخوارزمات و الأكواد ؟،

  • لو كنتَ ستجعل مشروعك الذي تعمل عليه مفتوح المصدر: فما هي اللغات التي لها الشهرة الأكبر في مجال تخصصك ؟، حيث أن الشهرة و الانتشار سيعطيان إمكانيةً أكبر لمشروعك أن ينضم إليك فيه آخرون يجيدون تلك اللغات المشهورة،

  • هل تميل إلي اللغات المفتوحة المصدر open source (سواءٌ أكانت مفتوحة المصدر من ناحية مُفسِّرها interpreter و/أو مُترجمها compiler أو مكتبتها القياسية) ؟.

باختصار: من المُحال أن تُحدد أن لغة برمجة معينة هي الأفضل إلا إذا حددتَ أصولاً معينة تحكم علي أساسها علي اللغات المختلفات، مع الانتباه إلي أنه من الممكن أن يشترك مبرمجان أو أكثر في ذات الأصول الفكرية ثم يختلفون في تطبيقها علي أرض الواقع، و من ثم يختار كل واحد منهم لغةً مختلفةً عما اختاره الآخرون، ففي النهاية فإن الأمر كله اجتهادٌ بشريٌ صُرف، و بالتالي فإنه لك كل الحق في أن تظن أنك تمتلك الإجابة الصحيحة علي مثل هذا التساؤل، و تقول ذلك بكل حرية و أريحية ما دمتَ تستند إلي أدلةٍ و براهين تجدها مُقنعة، و لكن يجب أن تخضع للقاعدة الأصولية التي تصلح للتطبيق علي كل العلوم التي ليس فيها خطأٌ مُطلَق أو صوابٌ مُطلَق: "رأيي صوابٌ يحتمل الخطأ، و رأي الآخرين خطأٌ يحتمل الصواب".

أولا حدد ما تريد الأفضل أم الاسهل و الاسرع فى الكتابة؟

بالنسبة لويندوز :

الافضل لناحية سرعة التطبيق و كفاءة استهلاك الموارد :

سى++ أو دلفى.

الاسرع فى الكتابة و الاسهل :

سى#, vb.net

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

و كنت دائما اقول, مبرمج جيد و متمكن يعمل على فيجوال بيسك, هو أفضل من مبرمج غير متمكن يعمل على سى++.

هذا السؤال يتعلق بماهية التطبيق نفسه وأي أنظمة التشغيل المستهدفة، وأي اللغات تجيدها...

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

الويندوز : C#.

الماك : Objective C.

جنو - لينكس : c/c++ ,python ...

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

بالنسبة للويندوز سى# هى الاسهل و لكن ليست الافضل,

أفضل لغة لبرمجة الويندوز سى++, و دلفى, لأنهم الاكثر كفاءة و يولدون native code بعكس الc# و التى تولد كود وسيط تحتاج الى مكتبات .net لتشغيلها.

و الدليل ان معظم برامج الويندوز تتم كتابتها بالسى++ ثم الدلفى :

مثلا : مايكروسوفت اوفيس : سى++

انترنت اكسبلورر : سى++

سكايبى : دلفى

ياهو مسنجر : دلفى

Winrar : سى++ بيلدر (مترجم سى++ مع مكتبات دلفى).

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

كلامك ليس دقيق أخي فادي

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

إذا كان هذا مقياسك، فستكون سي بلس بلس أو حتى السي ، أو حتى الأسمبلي هي الأفضل.

البرمجيات الكبيرة كانت تكتب بالسي بلس بلس، أما الآن فمثال أنت طرحت الأوفيس والسكايب .. ، مايكروسوفت تستخدم الدوت نت، وهي تعمل بكفاءة عالية في برمجياتها الحديثة، مثلا البليند، والفيجوال ستوديو ، والاكسبريشن ... إلخ كلهم بالدوت نت، مع الاعتماد على مكتبات من السي بلس بلس

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

الدوت نت ثم الجافا ثم الديلفي.

فقط أحببت تصحيح المعلومة

تحياتى لك أخلى خليل,

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

ناهيك عن افتقاد السى# الى المؤشرات و التعامل المباشر مع ذاكرة نظام ويندوز, مثلها مثل الجافا,

و طبعا الgarbage collector الذى يؤثر بشكل كبير على الاداء.

السى# لغة جيدة و قوية و لكنها لا تعطى للمبرمج التحكم الكامل ببرنامجه بعكس السى++.

كلما كانت اللغة أقرب الى الألة كلما كانت أقوى و أصعب فى الوقت نفسه, لذا نعم الاسمبلى أفضل من السى و السى أفضل من السى++ و السى++ أفضل من السى# و الجافا.

مايكروسوفت أوفيس للويندوز مكتوب بشكل كامل على السى++,

أما الفيجوال ستوديو فقد كتب فقط الواجهة باستخدام تقنيات WPF, و التى هى فى الأصل مكتوبة على سى++!

لغة السى# موجهة بشكل أساسى الى كتابة برامج الERP و الحسابات و برامج الbusiness عموما و الشركات الصغيرة (حيث عدد محدود من المبرمجين), و هى ناجحة فى هذا المجال لأنها توفر الوقت و الجهد, لكنها ليست مناسبة للتطبيقات العامة.

ليس هناك شىء بدون تنازلات,

فاما القوة و السرعة (سى++) أو السهولة و سرعة التكويد (سى#).

هلا أخي فادي أعلم ما هو الكود الوسيط

ليس دائما الكود الغير مدار أسرع من الكود المدار ... يمكنك البحث والتأكد

السي شارب بها مؤشرات على عكس ما تقولخ ! ، وسؤال ، من يحتاج للمؤشرات!

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

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

أنت قلتها كلما كانت أقرب للآلة كانت أصعب، أنت تريد صنع برنامج لشركة، أداء السي شارب كافي، لماذا تصنعه بالأسمبلي ، كمن يحفر حفرة بملعقة، استخدم الجرافة يا أخي، فهي تفي بالغرض

الفيجوال ستوديو صحيح أجزاء منه ب WPF التي هي ب C++

وبي أتش بي ب C++ و لغات أخرى بسي بلس بلس، والسي بلس بلس بالأسمبلي ، والأسمبلي بلغة الآلة وهكذا، هل يعني أن لغة الآلة أفضلها ؟

لا تقاس الأمور كما أسلفت بهذا المقياس.

أنا كمبرمج يهمني الانتاجية على إدارة الذاكرة، يهمني سرعة صنع الواجهة والربط بالويب، على سرعة الكود ... إلخ

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

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

أم أن تقوم بعمل نفس البرنامج بالجافا ويستغرق ب1/100 من الوقت والجهد وتجده يعمل على اللينكس والويندوز والماكنتوش، بل وعلى الجوالات بدون أدنى جهد

دمت بود

ما شاء الله الشباب ما قصروا .. خاصة الاخ م . وائل حسن .. ابدع في الطرح

س

وازيدك جملة لعلك تفهمها اخي جيدا .. هل ترغب بصيد السمك ؟؟ ام بمعرفة نوع معدن سنارة السمك ؟؟ فاكيد مهمتك صيد السمك ..

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

إذا كنت ستبرمج لنظام الويندوز فما عليك إلا استخدام الدوت نت سواء سي شارب أو في بي

أما اللينكس فد تكون البايثون هي أفضل اللغات

أما للماك ، أبل باحتكارها المعهود جعلت Objective C هي المسيطرة

تطوير الويب

مجتمع خاص بمناقشة وطرح المواضيع والقضايا العامة المتعلقة بتطوير الويب ولغاتها المختلفة

19.1 ألف متابع