لو خيرت بين c# و java ماذا تختار ولماذا؟


قبل كل شيء, لست متعصب لاي لغة, وارجو ان لا يؤخذ كلامي على نحو سلبي من اي متعصب, وكلامي من خلال تجربي الشخصية قد تكون منقوصة.في بداية حياتي اخترت C# وكنت انوي ان اكمل فيها ولكن العمل اجبرني على Java .

عموماً رغم اني لي دهر ابرمج بالجافا, فاقول لك اني احياناً اكرهها, مع اعجابي بها ! اي نعم تعمل على اي منصة, لكنها من اسوأ اللغات في التعامل مع مكونات الجهاز كالذاكرة, فهي وحش ملتهم للذاكرة لا يشبع, واضف الى ذلك ان البيئات التطويرية تعاني من فوضى بدون اي قياسات محددة, تستطيع ان تقول "كلٌ يغني على ليلاه"

وفوق هذا تملك اوراكل لهذه اللغة جعل الامور في فوضى اكبر.

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

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

السي شارب رائعة خفيفة, قوية, والتطوير بها ممتع وسريع, وسهل, لكن ستعاني من محدودية السوق في بعض الدول وتوسع كبير في دول اخرى, ودخلها اقل من مطويري الجافا, ولكن لحسن الحظ ان التطوير على السي شارب وادواتها جعل منها لغة تنافس وبقوة الجافا, كمثال انت ان كنت تبرمج بالجافا فيمكنك عمل تطبيق اندرويد لكن ليس بالسهولة عمل تطبيق لـ iOS ينما بالـ C# بضربة واحدة تستطيع عمل تطبيق على اندرويد وiOS .

عموماً, انا بالنسبة لي اخترت واختار Java وفخور بها رغم اني لا احبها :) , ولا استبعد ان ابتعد عنها في مرحلة ما, رغم اني على المدى القريب, اتعمق بها اكثر واكثر.

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

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

-2

هذا ليس عيبا وانما هي اشياء اخرى من الحماية والامان

عموما الامر لا يقتصر على استهلاك الذاكرة وانما توافق الانظمة وسياسة ميكروسوفت في حد ذاتها

وايضا الانظمة المقرصنة تؤثر كثيرا

مثلا برامج الجافا في الماك او لينكس تكون اسرع بكثير منها في وندوز والعكس وهته سياسة بين مايكروسوفت وارواكل وقوقل التي تدعم الجافا

الثقل يعود لاشياء اخرى مثل الحماية

الجافا استهلاك جيد وتقسيم ممتاز للذاكرة بعكس السي شارب

ليس له علاقة بأي "سياسات" وليس الامر متعلق بالحماية, اي حماية وقد عطلت ماك قبل فترة الجافا بسبب ما سمي وقتها Flashback وهي تحديداً عند تفعيل الجافا للمتصفحات, يمكنك البحث عن "jvm architecture" وستجد التعقيد وتعدد المكونات "لمشغل" الجافا الذي يبرر ثقل واحتياج الجافا للمصادر.

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

يمكنك رؤية الرابط : http://dior.ics.muni.cz/~ma... ايضاً .

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

كتبت برامج كثيرة منها مشروع تخرجي ايام الجامعة بالـ C# وفي عملي ما يقارب 6 سنوات مع الجافا , لم اجد يوماً ان الجافا اندرجت تحت كلمة "استهلاك جيد" مقارنة مع السي شارب.

وانا اعمل في الجافا, كان هنالك تحدي لانشاء تطبيق على Pocket PC , فكنت مخير بين عمل تطبيق جافا J2ME او باستخدام .Net CF وبدراسة سريعة اخترت الدوت نت , وخلال شهر واحد فقط, استطعت انا وزميل لي عمل backend بالجافا, وتطبيق كامل متعدد الشاشات ومعقد لـ Desktop بالدوت نت, وعند الانتهاء لم احتج اي جهد اضافي لعمل Tuning كما هو الحال في جافا دائماً !

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


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

24.6 ألف متابع