Закапывать Java пора с того самого момента как Oracle начал судиться с теми, кто использует Java как-то иначе, чем этого хотелось-бы Oracle.
MS, в отличии от Oracle, гарантирует что не будет предъявлять никаких патентных претензий к альтернативным реализациям языка C#, плюс сами спецификации языка C# - полностью свободны. С этой точки зрения C# - это свободный язык, а Java - проприетарная и опасная поделка.
И то и то говно. Но интерпрайз любит говно. Так что им предстоит долгая... долгая, долгая... долгая, долгая, долгая жизнь, если это так можно назвать.
Интерпрайз любит быструю разработку за разумные деньги.
Если сравнивать с unmanaged C++, то разработка на C# реально раза в 4-5 быстрее, т.к. куда меньше времени требуется на отладку.
Если сравнивать с языками более высокого уровня - то разработка на C# обходится дешевле, т.к. не требует сверх-высокой квалификации от разработчика, в отличии от скажем какого-нибудь Ocaml, и такие разработчики стоят в итоге дешевле.
Вот и получается что C# - это такая золотая середина - быстро и относительно не дорого. При этом если не нанимать индусов - то вполне себе качественно. А то, что приложению требуется раза в 2-3 больше памяти и переодически подвисает, когда полный GC запускается - в 99.9% случаев не так важно. А там где важно - там не будут использовать C#/.NET.
разработка на C# реально раза в 4-5 быстрее, т.к. куда меньше времени требуется на отладку.
А чего это отладка C# быстрее?
И да: пишется один раз, работает мильён раз. Поэтому скорость работы в мильён раз существеннее. Но эту тему ты ловко обошёл.
разработка на C# обходится дешевле, т.к. не требует сверх-высокой квалификации от разработчика При этом если не нанимать индусов - то вполне себе качественно
Противоречие налицо, и язык тут не важен. Либо качественно, либо быстро.
И да: пишется один раз, работает мильён раз. Поэтому скорость работы в мильён раз существеннее.
все относительно. Если мы говорим о критическом приложении где учитываются микросекунды или используем критические ресурсы - то да, С++ предпочтительнее.
Но представим проект разрабатываемый год коммандой из 10 человек на C# При годовой зарплате $90k только на программистов уйдёт $900k
Если разработка проекта на C++ потребует на 50% больше времени, то проект будет дороже на $450k
Очевидно в данной ситуации проще потратить лишние $10k или даже лишние $100k на железо и запустить проект на пол года раньше.
Не факт что разработка на С++ потребует больше времени, особенно при квалифицированной команде, но это уже устоявшаяся пролема - востребованность к количеству разработок растёт а количество людей со способностями к программированию нет.
Поэтому и изобрели ту-же Java и так возлюбили в энтерпрайзе, что появилась возможность утилизировать человеческую массу не способную нормально писать на С++
С другой стороны возможности C# особенно linq, Async и plinq реально ускоряют разработку.
Простой пример: Нужно написать программу сравнивающую два ~150mb XML файла
Я решил писать на C#, на что коллега - Java фанатик посмеялся и сказал что он напишет быстрее меня и боле быструю программу на Java а пока запустит професиональную тулзу - XmlSpy
Сделал на С# linq2xml за пол дня, программа сравнивала примерно за 10 мин.
XMLSpy продолжал считать а колега колдырить на Java.
После небольшой оптимизации время сравнения уменьшилось до 20 секунд.
Через 2 дня коллега пристрелил XmlSpy а через 3 дня перестал отвечать на вопросы, когда же я увижу его шуструю программу.
Только вот ботлнеки часто не в языке, на котором написано приложение. Нужно правильно расставлять приоритеты. И если внезапно оказывается (а оказывается часто), что скорость твоего абстрактного фабричного энтерпрайзного решения зависит на 90% от базы данных или от сети и упирается в них, то на передней план выходит скорость разработки и простота поддержки.
Аргумент типа «Скорость работы» вне контекста это какой-то популизм, мне кажется.
Интересно, что вот заопеншорсенные сегодня netcore и coreclr это уже прямая угроза моно, т.к. они собираются портировать основную реализацию платформы на линукс сами :) (основной аргумент - мона слишком другая, и замерджить какие-то отдельные моменты слишком сложно)
Тебе объяснить, что такое Apache License? Я понимаю, что столлманофанатики не разбираются в лицензиях и инстиктивно ненавидят M$, но они же в теории умеют читать.
А смысл? Конечно, это хорошо, для тех, кто изначально на c# писал, но если человек изначально на джаве писал, то на c# и .net переходить вообще нет смысла. И, да, джава и вправду не тормозит. Памяти жрёт побольше - это да, но это проблема всех managed языков.
Они же сервачную часть открывают, так что скорее всего дотнет на серваках практически мёртв.
Ну объективно C# смотрится поинтересней джавы, как язык. ASP.NET вроде обещают, что будет работать. .NET на серваках совсем не мёртв, те, кто на Windows-стеке сидит, часто используют .NET. Java выруливала за счёт свой кроссплатформенности, но сейчас ситуация будет спорная.
Интересно, что вот заопеншорсенные сегодня netcore и coreclr это уже прямая угроза моно, т.к. они собираются портировать основную реализацию платформы на линукс сами :) (основной аргумент - мона слишком другая, и замерджить какие-то отдельные моменты слишком сложно)
Mono уже сказал, что утянет у микрософта все куски, которые стоит утянуть. Я думаю для Mono это будет только полезно, как и для пользователей, которые получат выбор.
А смысл? Конечно, это хорошо, для тех, кто изначально на c# писал, но если человек изначально на джаве писал, то на c# и .net переходить вообще нет смысла.
C#, как язык, поинтересней джавы. И многие вещи сделаны правильней. Джава лет 10 топталась на месте.
Не знаю как именно, но сокращает. Я на С# пишу только последние 11 месяцев, до этого языка этого не знал, прежний опыт - 9 лет С++ рразработчиом. Так вот, разница сразу заметна, там где на плюсах накодишь а потом еще пару дней мелкие баги ловишь, код на С# просто компилируешь и он сразу работает (конечно не всегда, но очень часто).
Ну объективно C# смотрится поинтересней джавы, как язык.
Не объективно, а субъективно. Объективно C# - сборная солянка, но это не означает, что у него от этого есть какие-то неоспоримые практические преимущества.