На эту тему в одной из статей на хабре про Go было обсуждение — плюсы и минусы исключений и подхода Go рассматривали.
Конкретно по Вашему примеры функция bar(x) и не должна вызваться, т.к. до этого функция foo(x) не отработала. Если не так, то плучим неопределённое поведение. Ну плюс исключений, если нужно вот так подряд методы вызывать, не нужно каждый раз проверять, что метод вызвался корректно и если нет, то прервать вызов методов. А интересно, как в Rust такой, на мой взгляд, типичный use case реализуется — нужно вызывать подряд несколько методов, например по работе с с СУБД, и если была ошибка, то сделать rollback, а если после всех этих вызовов небыло ошибки, то commit?
А как в Rust с управлением памятью? Есть GC?
Вообще фишки языка мне понравились, спасало за обзор!
Меня заминусовали и оставили без ответа. Наверное, я не ясно высказался.
Я первый раз вижу пример, чтобы на GitHub были коммерческие проекты. А уж тем более HH. Я конечно знал, что у GitHub есть коммерческое применение, а не только open source, но чтобы им пользовались вот прямо буквально рядом с тобой, этого я не ожидал.
В связи с чем вопрос:
Почему выбрали GitHub, а не свой локальный VCS сервер? А то я сколько в разных компаниях видел — все исходники хранят у себя.
— поставить или убрать? А то их в статье нет :)
А какими инструментами в HH пользуются для code review? Что за VCS? А то статья не полная — для совсем уж начинающих, как заметил комментатор выше.
А как воспользовался такой скидкой в Москве? Я почему спрашиваю — я два раза сдавал экзамены и все два раза это было так:
1) Ищутся в сети компании, у которых можно сдать экзамен.
2) Приходишь к ним, платишь им деньги
3) Сдаёшь.
А что делать в случае покупки экзамена напрямую в pearsonvue? Куда потом идти сдавать? В эти же компании?
А как у вас обвязка в Протеусе работает в плане соответствия реальным данным? Я читал, что Протеус для моделирования аналоговых схем не очень подходит — он больше по микросхемам. Не могли бы Вы привести пример проекта с обвязкой? Сам я пробовал в Протеусе моделировать — в нём всё работало, а в железе — нет. Хотя тут может мои незнания повлияли — сам я больше по ПО, чем по железу :) И вообще, может статью напишете по разработке в Протеусе, а потом воплощение в железе? :)
4. В таком ключе await явно выигрывает, да. Вообще идея интересная — внести в синтаксис поддержку многопоточности. Может в дальнейшем это сделают — всё таки направление в развитии в сторону многопоточности явно прослеживается, так может и в синтаксис внесут.
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, но пользоваться можно.
Конкретно по Вашему примеры функция bar(x) и не должна вызваться, т.к. до этого функция foo(x) не отработала. Если не так, то плучим неопределённое поведение. Ну плюс исключений, если нужно вот так подряд методы вызывать, не нужно каждый раз проверять, что метод вызвался корректно и если нет, то прервать вызов методов. А интересно, как в Rust такой, на мой взгляд, типичный use case реализуется — нужно вызывать подряд несколько методов, например по работе с с СУБД, и если была ошибка, то сделать rollback, а если после всех этих вызовов небыло ошибки, то commit?
А как в Rust с управлением памятью? Есть GC?
Вообще фишки языка мне понравились, спасало за обзор!
Я первый раз вижу пример, чтобы на GitHub были коммерческие проекты. А уж тем более HH. Я конечно знал, что у GitHub есть коммерческое применение, а не только open source, но чтобы им пользовались вот прямо буквально рядом с тобой, этого я не ожидал.
В связи с чем вопрос:
Почему выбрали GitHub, а не свой локальный VCS сервер? А то я сколько в разных компаниях видел — все исходники хранят у себя.
А какими инструментами в HH пользуются для code review? Что за VCS? А то статья не полная — для совсем уж начинающих, как заметил комментатор выше.
1) Ищутся в сети компании, у которых можно сдать экзамен.
2) Приходишь к ним, платишь им деньги
3) Сдаёшь.
А что делать в случае покупки экзамена напрямую в pearsonvue? Куда потом идти сдавать? В эти же компании?
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.