جالبه که اینجا از هر دری سخن رفته ولی مقایسه ای بین این دو زبان که بحث اصلی بوده انجام نشده!
من خودم با هیچ کدوم از این زبانها به صورت حرفه ای کار نکردم ولی از نزدیک شاهد کار همکارانم بودم که از این زبانها استفاده می کردن یا دوستانی که در شرکتهای دیگه کار می کردن و تجربه شون رو برام تعریف کردن پس تعصبی روی اینها ندارم وگرنه از C++, GO و Python طرفداری می کردم!
به نظرم یک تفاوت مهم در جاوا وجود داره که به JSR معروفه
http://en.wikipedia.org/wiki/Java_Specification_Request (البته نمی دونم سی شارپ هم همچین چیزی داره یا نه) یعنی با توجه نیازهای موجود بحث میشه و استانداردی تعریف میشه که بعد از تصویب شدن یک پیاده سازی اولیه هم از اون ارائه میشه که به reference implementation معروفه.در این استاندارد معمولا اینترفیسها تعریف میشه و همه باید مطابق اون پیاده سازی های مورد نظر رو انجام بدن.بعدها اگه شما از یکی از این پیاده سازیها استفاده کنین و ازش راضی نباشین به راحتی پیاده سازی دیگه ای رو جایگزین می کنین مثلا برای JAX-WS چندین پیاده سازی وجود داره که هر کدوم خصوصیات خودشون رو دارن مثلا یکی سرعتش بیشتره یا اون یکی فیچر دیگه ای داره.وجود همچین چیزی باعث شده که جاوا در این حد گسترش پیدا کنه.یکی از همکارانم که سالها از دات نت استفاده کرده بود بعد از یک سال کار کردن با جاوا می گفت که چقدر بی منطق از دات نت طرفداری می کرده و تبدیل شد به یکی مدافعان سرسخت جاوا فقط به خاطر دیدن وجود همچین چیزی در جاوا! مورد دیگه cross platform بودن جاوا هست که خودش وزنه سنگینی هست مثلا همین همکارم برنامه اش رو روی ویندوز و لینوکس تست کرده بود و میگفت روی لینوکس بدون هر گونه تغییری سرعت اجرا تقریبا دو برابر بوده! مورد آخر هم گسترش فریمورکها و سولوشن هایی هست که نمونه اش در سی شارپ اصلا وجود ندارن یا اگه دارن تقلیدی از جاوا هست مثل hibernate و ... یا مثلا hadoop که فقط در جاوا وجود داره و یک سولوشن برای ایجاد map-reduce هست که مثلا میشه با اون چیزی شبیه به سرچ انجین ایجاد کرد که خیلی شرکتها دارن ازش استفاده می کنن به طوری که حتی مایکروسافت هم مجبور شده در سولوشن هاش اونو ساپورت کنه تا مشتریاش رو رو از دست نده! خب این که شد همش شد مزایای جاوا پس سی شارپ چی واسه گفتن داره؟! خب یکی از مزایای سی شارپ اینه که با توجه به ترکیب قابلیت زبانهای مختلفی مثل جاوا،دلفی، ++c و پایتون به زبانی تبدیل شده که خیلی کامل و پیشرفته محسوب میشه و به نظرم اگه سی شارپ و پلتفرم دات نت به صورت باز گسترش پیدا می کرد احتمالا به تدریج جای اکثر زبانهایی که اشاره کردم رو می گرفت. مزیت دیگه استفاده از سی شارپ و دات نت همراه بودنشون با visual studio هست که محیط توسعه خیلی خوبی رو در اختیار برنامه نویس قرار میده یعنی زبان، پلتفرم و IDE همه به صورت یکپارچه وجود دارن که کار رو خیلی راحت می کنه(البته این سادگی مشکل ساز هم شده چون هر کی visual studio نصب کرده و دو تا دکمه روی فرم گذاشته و دو خط کد نوشته الان ادعای برنامه نویس بودن میکنه!!).
حالا بد نیست از مشکلات این دو زبان هم بگم.اول جاوا:اگه تیم توسعه دهنده در استفاده از جاوا فوق حرفه ای نباشن،استفاده از جاوا یعنی شکست پروژه چون معمولا پروژه چند برابر زمان تخمین زده شده طول میکشه و نهایتا هم محصول تولید شده اون چیزی نمیشه که مشتری انتظارش رو داشته.این رو هم خودم از نزدیک در دو پروژه مشاهده کردم هم دو تا از دوستان در دو شرکت مختلف از نزدیک تجربه کرده بودن. سی شارپ:استفاده از سی شارپ در سمت سرور اگه تعداد کاربرها خیلی زیاد باشه یعنی درگیر شدن با کمبود حافظه، سرعت پایین و از کار افتادن پی در پی سرور مخصوصا که سیستم عامل هم ویندوزه پس همه چی برای ریستارتهای متعدد جوره! برنامه ای که با جاوا نوشته شده و روی لینوکس اجرا میشه به مشکلات کمتری در این زمینه برخورد می کنه.
خب حالا با این اوصاف باید چه کار کرد و از چی استفاده کرد؟ به نظرم جواب یه جواب کلی وجود نداره و درگیری و بحث بر سر زبانها و پلتفرمها تا ابد ادامه خواهد داشت پس از هواداران و سینه چاکان هر کدوم از زبانها دعوت میشه خودشون رو برای راند بعدی مبارزات آماده کنن!!