Вопрос о том, стоит ли C # или Java впереди другого, остается спорным, но вместо того, чтобы сосредоточиться на языковых особенностях того или другого, я бы предпочел сосредоточиться на том, что связано с развитием языка. Единственный факт, с которым, я думаю, никто не поспорит: Java старше C #.
Проблемы с изменением работы языка:
- Если вы нарушаете обратную совместимость, вы бесите много разработчиков
- Если вы злитесь на своих разработчиков, они переходят на другой язык, который поддерживает их лучше. Следовательно, нет причин продолжать работать с языком.
- Ява приняла некоторые дизайнерские решения на раннем этапе, когда требовалось вывести язык на рынок. Надежда состояла в том, чтобы вернуться и заполнить некоторые пробелы. Эти решения все еще преследуют язык, потому что сопровождающие не хотят нарушать первый пункт.
- Ява открыла множество новых территорий и раз и навсегда доказала, что язык, на котором собирается мусор, можно воспринимать всерьез - и достаточно хорошо для большинства людей.
- C # появился позже и усвоил много уроков, на которые наткнулся Java, - поэтому они смогли избежать некоторых технических ограничений, которые Java имеет из-за пункта 3.
- Новые возможности языка должны решить реальную проблему разумным способом. Не каждая языковая функция имеет смысл в контексте языка, к которому вы пытаетесь добавить ее. Вот почему, несмотря на их сходство, Java и C # по-прежнему будут разными языками.
Итак, имеет ли C # больше возможностей языка, чем Java? Я думаю так. Они полезны? Я думаю так. Значит ли это, что C # лучше или более зрелый, чем Java? С этим я не согласен. Они разные, простые и понятные. Java никогда не будет иметь всех функций C #, так как C # никогда не будет иметь всех функций Java.
Одна из особенностей Java, возможность написать программу для Windows и развернуть ее на Unix или Mac, никогда не будет реализована напрямую при поддержке Microsoft. Почему ты спрашиваешь? Это не потому, что Microsoft зла (правда это или нет, мне все равно). Это потому, что они усвоили урок, которого Sun никогда не делала: пишите один раз, где бы вы ни работали, коммодифицируя операционные системы и оборудование. Если вы заботитесь о том, чтобы заработать на продажах вашей операционной системы, вы не хотите делать простой замену и при этом работать с приложением. Если вы это сделали, вы не сможете получить прибыль от операционной системы, потому что всегда есть более дешевые варианты.