Сегодня я опубликовал вопрос о том, какой язык C # или Java будет лучше изучать. У меня были отличные ответы. Одна вещь, которая подошла, была то, что, возможно, Java теперь отстает от C # с новыми функциями. Я видел некоторые веб-ссылки и большинство указывало на то, что было в C #, а что нет на java.
Так что мой вопрос ко всем вам: снова догонит Java C #? И если бы вы догадались, где он будет стоять через 5 лет. Будет ли в нем все то, чего сейчас не хватает? Как насчет Java 7?
)
's', большое спасибо.Ответы:
Языковые возможности - очень малая часть того, что делает Java и C # галочкой. В конечном итоге это части более крупных экосистем J2EE и .NET.
Оба имеют свои сильные стороны и должны вырасти в следующие 5 лет.
источник
Я бы сказал да, пока Oracle не вошел в картину. Что печально, потому что я действительно наслаждался скачком в функциях, которые были в Java и C # в течение последних шести лет или около того.
источник
Как язык, я не расширяю Java, чтобы добавлять инновации со значительной скоростью, прежде всего потому, что те в сообществе открытого исходного кода, которые находятся на переднем крае, с большей вероятностью сосредоточатся на более новых языках JVM, таких как Scala, Clojure, Groovy, JRuby и JPython.
Кроме того, приверженность Java обратной совместимости означает, что добавление языковых функций по своей природе сложнее, чем в более ранние дни языка.
источник
Большой знак вопроса здесь - Oracle. За последние пол десятилетия Sun действительно замедлила работу Java. Многие в сообществе Java надеялись, что Sun раскрутит Java или продаст его кому-то, кто вложит много ресурсов и усилий. Хотя Oracle, безусловно, мог бы сделать это, это крупная компания с большим количеством групп со своими собственными интересами. Я думаю, и это только то, что Oracle позволит Java стагнировать и использовать его в основном как инструмент для патентных исков.
Возможно, они продадут его Google за большую сумму, и все будут счастливы. Это в руках советов директоров и юристов, а не инженеров и разработчиков программного обеспечения.
С другой стороны, даже без улучшений Java является хорошим языком и имеет прекрасную экосистему. Хотя я лично предпочитаю C # и мир .net, Java по-прежнему отличный выбор. В будущем время покажет, но на данный момент Java совсем не плохая. (Библиотеки даты и времени исключены ... вау, они когда-нибудь страшные и грязные)
источник
Нечего догонять, поэтому вопрос не имеет смысла.
Тот факт, что Java точно не копирует C #, не означает, что он каким-то образом «уступает», он просто другой. Можно также спросить, когда C # «догонит» Cobol.
источник
Вопрос о том, стоит ли C # или Java впереди другого, остается спорным, но вместо того, чтобы сосредоточиться на языковых особенностях того или другого, я бы предпочел сосредоточиться на том, что связано с развитием языка. Единственный факт, с которым, я думаю, никто не поспорит: Java старше C #.
Проблемы с изменением работы языка:
Итак, имеет ли C # больше возможностей языка, чем Java? Я думаю так. Они полезны? Я думаю так. Значит ли это, что C # лучше или более зрелый, чем Java? С этим я не согласен. Они разные, простые и понятные. Java никогда не будет иметь всех функций C #, так как C # никогда не будет иметь всех функций Java.
Одна из особенностей Java, возможность написать программу для Windows и развернуть ее на Unix или Mac, никогда не будет реализована напрямую при поддержке Microsoft. Почему ты спрашиваешь? Это не потому, что Microsoft зла (правда это или нет, мне все равно). Это потому, что они усвоили урок, которого Sun никогда не делала: пишите один раз, где бы вы ни работали, коммодифицируя операционные системы и оборудование. Если вы заботитесь о том, чтобы заработать на продажах вашей операционной системы, вы не хотите делать простой замену и при этом работать с приложением. Если вы это сделали, вы не сможете получить прибыль от операционной системы, потому что всегда есть более дешевые варианты.
источник
Java действительно не нуждается в новых «функциях» больше, чем C или C ++. Это хорошо разработанный язык для объектно-ориентированной разработки. Дополнения могут быть сделаны в создании библиотек для выполнения широкого спектра задач. То же самое относится и к C # - большинство функций добавляются, чтобы заставить язык делать больше вещей. Лично я думаю, что большинство из этих функций не являются необходимыми - указатели в ОО на самом деле слишком бесполезны, если вы не работаете на аппаратном уровне (в этот момент, вероятно, лучше использовать что-то вроде C). Кроме того, работа на виртуальной машине должна затруднить прямой доступ к оборудованию, если не сделать невозможным.
Unix начал тенденцию создания модулей, которые делают хорошо одну вещь. Я думаю, что и Java, и C # постепенно выходят из-под контроля функциональности. Лучше создать легко расширяемое ядро, чем гигантский многоцелевой «язык», который больше похож на фреймворк. Для меня Java соответствует этому требованию лучше, чем C #.
источник
Нет ничего плохого во многих функциях, которые добавляет C #, но, учитывая скорость, с которой они меняют язык, они сознательно затрудняют, если не делают невозможным, чтобы Mono не отставал. Если так, то я говорю, что мы ожидаем, что C # догонит Java с точки зрения диапазона систем, на которые он может быть развернут. Недостаточно просто запустить на Windows.
источник
Я не собираюсь начинать дискуссионный форум, но я думаю, что Java была здесь задолго до C #, и в этом отношении C # больше похож на репликацию, чем на Java.
Что касается ответа на ваш вопрос: Java и C # - это разные языки, поэтому вы не можете сравнить их только по их возможностям. То, что вы можете делать в Java, вы можете не делать в C # и наоборот.
Итак, наконец, это похоже на начало темы Windows против Linux.
источник