Вопрос

Я опытный Java-программист, который в течение последних двух лет программировал по необходимости на C # и Javascript.Теперь с этими двумя языками Я использовал некоторые интересные функции, такие как замыкания и анонимные функции (по сути, в c / c ++ я уже использовал функции-указатели), и я высоко оценил то, что код стал понятнее, а мой стиль - продуктивнее.На самом деле также управление событиями (шаблон делегирования событий) более четкое, чем то, которое используется Java...

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

C # развивается (с большим количеством новых функций), C ++ 0x развивается (он будет поддерживать лямбда-выражения, замыкания и множество новых функций) и Я разочарован тем, что, потратив много времени на программирование на Java, оно приходит в упадок без каких-либо хороших объяснений, и в JDK 7 не будет ничего инновационного в функциях языка (да, это оптимизирует GC, компилятор и т.д.), Но сам язык будет иметь несколько важных эволюционных изменений.

Итак, каким же будет будущее?Как мы можем все еще верить в Java?Гослинг, где ты???

Это было полезно?

Решение

Я, вероятно, и вполовину не так хорош, как некоторые программисты, которые оставили свои комментарии, но с моим нынешним уровнем интеллекта это то, что я думаю -

Если язык делает программирование проще / выразительнее / лаконичнее, то разве это не хорошо?Разве эволюция языков - это не хорошо?

Если C, C ++ - отличные языки, потому что они используются десятилетиями, то почему Java стала такой популярной?Я предполагаю, это потому, что Java помогла избавиться от некоторых досадных проблем и снизила затраты на обслуживание.Сколько крупномасштабных приложений сейчас написано на C ++ и сколько на Java?

Я сомневаюсь, что аргумент о том, чтобы ничего не менять, лучше, чем менять что-то по уважительной причине.

Другие советы

Си не сильно изменился за прошедшие годы, по-прежнему оставаясь одним из самых популярных языков.Я не верю, что Java должна добавлять синтаксический сахар, чтобы оставаться актуальной.Поверьте мне, Java существует еще очень долго.Гораздо лучше для Java были бы овеществленные дженерики.

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

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

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

Я думаю, что по крайней мере часть инноваций касается других скриптоподобных языков, которые также работают на той же JVM, тогда у вас есть Java в качестве основы и другие интересные новые функции на разных языках, чтобы сделать все навороты.

Кроме того, язык на самом деле не может оставить заметного следа, если он постоянно меняется - сколько радикальных изменений и как часто было внесено в C и C ++?

Зрелый язык - это еще и стабильный язык.

Взгляните на Предложения Java 7, и , в частности , Проектная монета работа (язык меняется).Последнее включает в себя такие вещи, как улучшенная инициализация коллекции, вывод типов для дженериков и т.д.

Конечно, важно учитывать Платформа Java, а также язык Java.Больший прогресс достигается с такими языками, как Scala / Groovy / Clojure, и (конечно же) они могут использовать доступные библиотеки Java.

Я слышал, как Гослинг говорил по этому поводу, и (надеюсь, я не слишком исказил его сообщение) он сказал что-то вроде...существует предел тому, сколько вы можете и должны вложить в язык, будущее программирования заключается в инструментах, которые мы будем использовать.

Я склонен согласиться с ним, многие запрошенные функции для java отвлекают его от принципа ООП, но если вы обнаружите, что они работают для вас, тогда есть и другие языки, которые также могут быть развернуты на платформе Java, поэтому ваши языковые предпочтения должны сосуществовать с вашими знаниями стека java.

Java, похоже, какое-то время стояла на месте, но было много инноваций в других языках, работающих на JVM, таких как Scala и Clojure, и я подозреваю, что за ними будущее.Важен не язык Java, а виртуальная машина...

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

Сам язык должен быть практически заморожен, так как это позволяет прогрессу быть доступным и для более старых версий Java.У нас есть клиенты, работающие на Java 1.4 (которая поддерживается поставщиком).Помещая прогресс и разработки в библиотеки, они становятся доступными и для этих сценариев.

Подумай о Коболе!

Java никогда не была "инновационной".Он начинался как урезанная, "удобная для программистов" версия C ++, а затем начал медленно восстанавливать недостающие функции, которые существовали в других языках программирования в течение длительного времени.Только то, что эти "новинки" десятилетней давности были искажены для того, чтобы они вписывались в ограничения JVM.

Но, возможно, я неправильно понимаю ваше понятие "инновационный".

Java по-прежнему остается языком № 1 в настоящее время :-)

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top