2. Собственно ниже ответили на счёт var — List list = new ArrayList не аналогично var list = new ArrayList, а если учесть что интерфейс предпочтительно перед реализацией, то это в общем спорная фича.
Интересное сравнение!
1) Да есть этот минус. Под него даже костыли делали в Java 8 в Stream API — были свои stream для примитивов.
2) Насколько я понимаю идеологию Java, это никогда не введут — в Java в почёте строгая типизация. А в var не будет работать, насколько я понимаю.
3) По этому пункту ничего сказать не могу — сам Stream API не много пользовался. Скорее всего это сможет прокомментировать lany
4) Как вы сами сказали, сравнивали без javaRX — с лямбдами это было бы менее многословно.
Добавлю тут erase generic — если нужно знать тип переменной, то приходится помимо неё так же и её класс передавать, что немного увеличивает код. Хотя type safe остаётся :)
А вообще, вы пробовали Kotlin? e.g. habrahabr.ru/post/258683 Насколько я понимаю, это то что вам нужно.
we need to go deeper — в Java 7 были большие изменения в JVM: быстрый гуглёж habrahabr.ru/post/125202 плюс добавление NIO2. А так язык, да, не сильно изменился — try-with-resource, multi-catching и swich-case-string. Вообще JVM с каждой версией сильно меняется, без изменения самого языка. Пруфы — выступления на JPoint разработчиков JVM.
P.S. Спорить не сильно хочется, но, надёюсь, мой комментарий сделай вас лучше, как программиста, и вы будете различать синтаксис и платформу. Собственно, вам уже выше объяснили, но дополню их комментарии.
А Вы на чём её запускаете? EV3, NXT или RCX? Нужно ли было работать при жёстких таймингах? У меня, например, с HaikuVM есть проблема — хочу определённый сигнал послать, с определённым интервалом — порядка нескольких микросекунд — и это нельзя сделать из Java, т.к. там нельзя оперировать такими задержками из за большого overhead'а вносимого Java.
Я слышал о leJOS когда занимался HaikuVM ( haiku-vm.sourceforge.net ) — «JVM» для микроконтроллеров (в том числе и Arduino). Я даже порт под Gradle пилю, чтобы можно было нормально проекты запускать github.com/TimReset/HaikuVMGradle. Но не думал, что для Lego Oracle сделали свою JVM!
А что за железо в Lego, что позволяет запускать JVM? Я так понимаю, там чистая JVM или код преобразуется в C и компилируется под платформу? Хотя если было бы так, то не работал бы JMX.
Специально зашёл посмотреть блог компании на хабре — действительно, не продлили подписку и блог закрыли. Зашёл на chipster.ru (я там покупаю электро детали) — virt2real представлен. Зашёл на их сайт — да, с апреля прошлого года не обновлялись. Но твитер обновлялся в апреле этого года: twitter.com/virt2real Т.ч. не всё так плохо и отсутствие активности на хабре не означает смерть компании :)
И вообще это гораздо лучше чем было (лицензия за каждую версию) т.к. раньше покупалась версия, а версии у них выходили примерно раз в год. И получалось, если не купить версию сразу после выхода, то ранее чем за 12 месяцев, выйдет новая версия, а у тебя на неё нет лицензии (потому что раньше лицензия была на версию). И пришлось бы пользоваться старой версией или покупать новую, раньше чем через год. А сейчас в лицензию входят все обновления — и минорные, и мажорные.
Мне тоже подписка не нравится, но понравилось, как у JetBrains подписка сделана — у них подписка по сути право на обновление в течении года, но после окончания подписки всё равно можно пользоваться продуктом, просто старой версии. Т.е. ты по сути, покупаешь IDE (я IDEA покупал, уже второй год), пользуешься, и если не хочешь продлевать лицензию, ничего страшного, просто обновления (минорные/мажорные) не приходят. Но при этом у тебя никто IDE не отбирает — ты же за неё заплатил :)
А Вы давно на GWT писали? А то тут опции компиляции pretty появились и SuperDevMode с source map. Я сам source map пользовался в 2.6 и 2.7. Отлаживал JS как Java код в IDEA. Т.е. фактически исполнялся JS в Chrome (не как Dev mode с исполнением клиентского Java кода на сервере), а IDEA точки останова переносила в Java код и выглядело как отладка обычного Java кода. Соглашусь, что работает хуже в плане отладки, чем в Dev Mode, но пользоваться можно.
В статье написано, что используется WebSocket, как один из возможных средств доставки сообщений клиенту, Tomcat, как servlet контейнер. А как Вы web socket в Tomcat реализовывали? С помощью Tomcat-зависимых «штук»? А то, насколько я знаю, в Java пока ещё нет стандарта на WebSocket.
На счёт дебага — насколько я понял, breakpoint поставить не удастся? На счёт выполнения lua на компьютере — я имел ввиду, что lua — это же скриптовый язык, разве его нельзя выполнить просто в интерпретаторе? Понятно, что если использовать системные библиотеки, которые есть только в NodeMCU, то ничего не получится. Но если абстрагироваться от системных вызовов, то неужели это нельзя сделать?!
P.S. Вообще, спасибо за ответ!
1) Да есть этот минус. Под него даже костыли делали в Java 8 в Stream API — были свои stream для примитивов.
2) Насколько я понимаю идеологию Java, это никогда не введут — в Java в почёте строгая типизация. А в var не будет работать, насколько я понимаю.
3) По этому пункту ничего сказать не могу — сам Stream API не много пользовался. Скорее всего это сможет прокомментировать lany
4) Как вы сами сказали, сравнивали без javaRX — с лямбдами это было бы менее многословно.
Добавлю тут erase generic — если нужно знать тип переменной, то приходится помимо неё так же и её класс передавать, что немного увеличивает код. Хотя type safe остаётся :)
А вообще, вы пробовали Kotlin? e.g. habrahabr.ru/post/258683 Насколько я понимаю, это то что вам нужно.
P.S. Спорить не сильно хочется, но, надёюсь, мой комментарий сделай вас лучше, как программиста, и вы будете различать синтаксис и платформу. Собственно, вам уже выше объяснили, но дополню их комментарии.
А что за железо в Lego, что позволяет запускать JVM? Я так понимаю, там чистая JVM или код преобразуется в C и компилируется под платформу? Хотя если было бы так, то не работал бы JMX.
Поддерживаю!
P.S. Вообще, спасибо за ответ!