Разве Java только что не поддержал на высоком уровне? [закрытый]

Теперь с выпуском библиотеки поддержки дизайна 23.1.1 вы можете использовать

NavigationView navigationView = (NavigationView) findViewById(R.id.your_nav_view_id);
View header = navigationView.getHeaderView(0)
TextView text = (TextView) header.findViewById(R.id.textView);
19
задан AngryHacker 14 March 2009 в 06:35
поделиться

7 ответов

Я думаю, что Вы правы, Java не имеет большого количества удобных новых возможностей, которые представил C#. Большим количеством новых функций C# являются просто приемы компилятора к (свойства, возразите intitializers, дополнительным методам), что можно выполнить вручную в C# или Java.

люди Java, вероятно, не представили эти новые возможности, потому что они, вероятно, предпочитают сохранять язык максимально простым и назад совместимым.

я действительно должен сказать, что предпочитаю писать C# в эти дни.

10
ответ дан 30 November 2019 в 03:16
поделиться

Я сказал бы, да, Java не поддержал на высоком уровне. Microsoft хорошо изучила Java (и C++) и выяснила, какие раздражения они имели, и что функции пропускали и зафиксировали многих из тех, которые в последующих версиях C#.

кроме того, разработчики Java, кажется, пытаются сохранить свой язык и синтаксические анализаторы максимально простыми, тогда как разработчики C# не боятся синтаксического сахара: свойства, делегаты, лямбды и LINQ являются всеми примерами этого. И поскольку Вы уже заметили, ложка синтаксического сахара заставляет язык понизиться намного легче.

8
ответ дан 30 November 2019 в 03:16
поделиться

Java, конечно, отстал, хотя я сказал бы, что это ближе к C# 2.0, чем C# 1.1 - это имеет дженерики, например, даже при том, что они несколько отличаются от дженериков в C#.

я был разочарован услышать, что многие предложенные функции языка были отброшены для Java 7 (особенно закрытия), но тогда Монета Проекта пришла - так, по крайней мере, мы могли бы иметь приблизительно маленькие функции для нетерпеливого ожидания.

я не вижу, что Java ловит до C# в терминах языка в ближайшее время - у них есть больше багажа языка, который мешает изменять язык, с одной стороны. Тривиальный, хотя это может звучать, контролируемые исключительные ситуации добавляют дополнительную "ось" к сигнатурам методов, которые делают некоторые вещи (как закрытия) более хитрыми, чем они были бы иначе.

(И конечно C# 4.0 является распуханием в представление также...)

7
ответ дан 30 November 2019 в 03:16
поделиться

Чем более старый популярный язык, тем больше его кодовая база становится и изменяется на языки, сделаны более консервативным способом, для не повреждения существующей кодовой базы, которая была бы дорогой для фиксации.

Java является одним из более старых языков. C# является относительно новым и может позволить себе быть измененным более радикально. Сравните с C и C++, который не изменился в течение десятилетия.

, Если Вы действительно хотите новые функции языка своего нового кода, попробуйте другой основанный на JVM язык, который взаимодействует с Java (Groovy, Scala, Clojure).

6
ответ дан 30 November 2019 в 03:16
поделиться

Я думаю, что часть проблемы является экономической. Это не случайно, что Java пришел, когда Sun был ведущим игроком на рынке. Их запас был на рекордно высоком уровне в марте 2000, питается всеми серверами, которые покупали компании доткома.

, Когда пузырьковый пакет и все те серверы поступают в продажу, требовалось много времени, чтобы избыток работался через. Sun не восстановился с него. Увеличение мощности товарных серверов разрушило край, который однажды имели специализированные микросхемы с сокращенным набором команд и Солярис. Вы не можете быть большой военной мощью, если Вы не экономическая мощь; быть новатором в этом масштабе требует наличных денег, также.

Они потеряли большой талант (например, Bill Joy), который раньше питал компанию.

Sun, в его нижней части, компании-производителе оборудования. Стратегия с Java, особенно на стороне сервера, состояла в том, что это поможет управлять аппаратными продажами.

я думаю, что темп изменения для Java пострадал из-за всего этого.

Microsoft продолжает разрабатывать C#, потому что доход продолжает вливать, Anders все еще с ними, и они - компания-разработчик программного обеспечения, которая в конечном счете делает деньги от продукта. Вот почему они вперед теперь.

5
ответ дан 30 November 2019 в 03:16
поделиться

И это не к Swing по сравнению с WPF, которые похожи на мел по сравнению с икрой.

1
ответ дан 30 November 2019 в 03:16
поделиться

Действительно Вы правы. Но, я думаю, что акцент улучшений языка в значительной степени перенесся на новые языки JVM, такой как Groovy и Scala.

И возможно это - хорошая вещь, поскольку Java имеет значительную базу пользователей, которая, к сожалению, едва может согласиться, о которых функциях, если таковые имеются, и в какой форма должна быть добавлена к языку. Например, бросьте взгляд на этот опрос . С другой стороны, Sun обещал улучшения JVM, которая упростила бы разработку и выполнение динамических языков JVM, такой как инструкция invokedynamic , JSR 292.

мне это - достойный компромисс.

4
ответ дан 30 November 2019 в 03:16
поделиться