Я маю 10+ років досвіду роботи з Java (з версії 1.1, справді!) Та 7 років досвіду роботи з .NET (переважно C #).
У вас є дуже хоча рішення, але в основному ви повинні спробувати розбитись на кілька сценаріїв:
Настільний додаток
Якщо ви розробляєте додаток для настільних комп’ютерів, вам потрібно пройти з основною платформою, з якою ви будете працювати. Якщо це платформа Microsoft .NET., Немає кращого рішення, ніж платформа, розроблена самим материнським судном. Якщо це сценарій Linux або Multi-платформи, розгляньте Java або перейдіть до веб-рішення.
Веб-додаток
Це дуже важке рішення прийняти, оскільки кожен має свою силу і слабкість. Ось декілька:
C #
Сила: В даний час є більше імпульсу, вбудовуючи нові функції в мову та платформу / рамки. Все походить від одного продавця і, безумовно, це є перевагою. Ви також можете використовувати деякі дуже потужні компоненти, як, наприклад, DevExpress (Java навіть не наближається до того, щоб мати щось на кшталт того, що команда DX склала протягом багатьох років, і це означає величезний приріст продуктивності).
Слабкість: для корпоративного застосування .NET не настільки зрілий, як Java. У вас не так багато постачальників, що будують корпоративне програмне забезпечення в .NET, як у вас є для Java.
Java
Сила: більш зріла (вже пояснено) та має велику спільноту з кількома чудовими проектами з відкритим кодом, які можуть допомогти. Кілька так званих проектів з відкритим кодом .NET - це лише копія котів проектів від Java.
Слабкість: Oracle володіє Java (я знаю, не JCP), і це, безумовно, є ризиком, який слід враховувати. Їх наміри не дуже зрозумілі, і мені особисто не подобається, куди мова йде зараз (я знаю, що багато розробників Java мають подібні проблеми).
Застосування сервера
Це в основному ті ж аргументи, що і веб-додатки, але оскільки вам не доведеться надто турбуватися про користувальницький інтерфейс Java, у цьому випадку стає сильніше Але знову ж таки, якщо платформа здебільшого Windows .NET може бути кращим вибором.
Загальні міркування
В цілому, на мою думку, .NET має перевагу здебільшого через тісну інтеграцію Visual Studio 2010 (передає найкращий IDE там), MS SQL, Entity Framework, IIS тощо. Це все означає величезне підвищення продуктивності праці, і я маю багато досвіду, що підтверджує це. Також я працюю з переважно розробниками Java, які звернулися до .NET, і вони поділяють в основному ту саму думку.
Я думаю, що це також добре, що Microsoft сильніший за будь-який сенс. NET буде там деякий час. Тому, дивлячись на 10-15 років вперед, я відчуваю себе більш захищеним від .NET, ніж Java.