|
|
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Те, кто интересуется IT технологиями, не могли не заметить, что огромное количество сообщений, блогов и комментариев относится к Node.js. Мне пришлось сталкнуться с существующим приложением на node.js. Мало того, код уже был написан и мне надо было в нем разбираться. После Java- это не просто труд - это дурацкий труд. Вот где правило действительно действует: "Писать код легко ,но трудно (а для JavaScript оооочень трудно) этот код читать". Но бог с ним с node.js. Оказалось, что существует масса frameworks для java, подобных node.js. Например. vert.x. Это меня успокоило. Всетаки java может. И может намного лучше. Однако, я обнаруживаю Play! Framework. Это тоже java. Да, но до версии 2.0. После этого она становится Scala. не то, что бы я совсем тупой, чтобы не понимать, что Scala - это jvm платформа, но выбор template - Scala vs Groovy, roots: Scala vs Groovy ? Кто нибудь может объяснить весь этот шум. И, самое главное, может быть кто-то подскажет, какой ответ может предложть jee в смысле Servlet 3.1 и Nashorn. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 17:16:54 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinТе, кто интересуется IT технологиями, не могли не заметить, что огромное количество сообщений, блогов и комментариев относится к Node.js. Обычный трендовый buzz, как скрам, RoR, MindMap. Пожужат и забудут. Valery Shiskin Мне пришлось сталкнуться с существующим приложением на node.js. Мало того, код уже был написан и мне надо было в нем разбираться. После Java- это не просто труд - это дурацкий труд. Вот где правило действительно действует: "Писать код легко ,но трудно И такой тренд тоже недавно был. Называется "асинхронность - наше всё". Асинхронность была жутка привлекательна по той причине что исключала блокировки и максимально эффективно нагружала CPU. Проблема же оказалась в подходе. Код не представляет из себя более единой транзакции и одна транзакция состоит из кучи асинхронных кусков, целостность которых не так просто поддерживать. Java много лет остаётся простой и лаконичной. Valery Shiskin(а для JavaScript оооочень трудно) этот код читать". В этом именно конек Java как языка. Функционалщина, динамическая типизация и поголовная асинхронность сильно усложнают поддержку готовых решений. Valery ShiskinНо бог с ним с node.js. Оказалось, что существует масса frameworks для java, подобных node.js. Например. vert.x. Это меня успокоило. Всетаки java может. И может намного лучше. Java может это уже более 10 лет. Технолгия называется JMS. NIO, кажется чуть позже появился. NIO+JMS вот и выйдет Node.js. Valery ShiskinОднако, я обнаруживаю Play! Framework. Это тоже java. Да, но до версии 2.0. После этого она становится Scala. не то, что бы я совсем тупой, чтобы не понимать, что Scala - это jvm платформа, но выбор template - Scala vs Groovy, roots: Scala vs Groovy ? Не очень понял как это к Node.js относится. Существует море других фреймверков, почему разговор только про эти два? Valery ShiskinИ, самое главное, может быть кто-то подскажет, какой ответ может предложть jee в смысле Servlet 3.1 и Nashorn. А какой ответ? На что? Несколько лет назад был аналогичный шум про RoR. Пошумели и успокоились. Оказалось тормозным. Кому нравится, те пишут. А сервлеты с JSP как использовались так и продолжают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 17:48:21 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Вы, наверное подумали, что я плачусь. Но нет. Мы не говорим о технологиях, мы говорим о frameworks. Факт таков, что существует Node.js, Vert.x, Play. И я хочу, что бы кто-то объяснилл - в чем различие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 17:56:44 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz "И такой тренд тоже недавно был. Называется "асинхронность - наше всё". Асинхронность была жутка привлекательна по той причине что исключала блокировки и максимально эффективно нагружала CPU. Проблема же оказалась в подходе. Код не представляет из себя более единой транзакции и одна транзакция состоит из кучи асинхронных кусков, целостность которых не так просто поддерживать. Java много лет остаётся простой и лаконично" Я ПРОСТО ОДУРЕЛ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:06:02 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinBlazkowicz, Вы, наверное подумали, что я плачусь. Но нет. Где я об этом писал? Valery ShiskinМы не говорим о технологиях, мы говорим о frameworks. Вышеназваные фреймверки используют разные технологии чем и уникальны. Говорить о них не упоминая используемые технологии бессмысленно. Valery ShiskinФакт таков, что существует Node.js, Vert.x, Play. И я хочу, что бы кто-то объяснилл - в чем различие Почему только эти три? Node.js - старый добрый всем знакомый JavaScript, но на сервере + асинхронные IO и логика. Vert.x - попытка реализовать Node.js, но для JVM. Play - just another Java web framework. Один из многих. На данный момент выделяется только поддержкой Scala. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:07:36 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Трудно возражать профессионалу, но в одном я могу , vert.x = это не попытка - это реальность. А мои вопросы актуальны, а почему не Servlet 3.1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:12:55 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery Shiskinvert.x = это не попытка - это реальность. Эээ... "реальность" не является антонимом к слову "попытка". "Попытка", потому что фреймверк молодой. Потому что появился на волне популярности Node.js и с большой оглядкой на него. Valery ShiskinА мои вопросы актуальны, а почему не Servlet 3.1? Этим вопросом вы делаете утверждение что где-то кем-то массово используется vert.x вместо Servlet 3.1, тем самым вызываете у меня когнитивный диссонанс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:29:31 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Отнюдь. Видя популярность nodejs и понимая его слабые стороны я задаюсь вопросом: А как jee 7 может ответить. Но так, что бы это было красиво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:35:50 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinТе, кто интересуется IT технологиями, не могли не заметить, что огромное количество сообщений, блогов и комментариев относится к Node.js. весь этот пост стоит на этом утверждении. - с чего взял, что Node.js - это круто? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:37:41 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinОтнюдь. Видя популярность nodejs и понимая его слабые стороны я задаюсь вопросом: А как jee 7 может ответить. Но так, что бы это было красиво. "популярность nodejs" она только в новостных лентах видима. Никому же интересно обсудить очередную версию Java. А тут обозвали асинхронность killer-фичей, сказали что все остальные фреймверки сосут по производительности и таким дешевым пиаром пользуются. Зачем jee 7 отвечать на очередную поделку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:42:15 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Petro123, Согласен, и хочу, чтобу развенчали или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:43:00 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Petro123весь этот пост стоит на этом утверждении. - с чего взял, что Node.js - это круто? Именно. Трендовость это как попса. Тренды приходят и уходят. А классика остаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:43:30 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Вот видите, ничего, кроме оскорблений. Хоть что нибудь конструктивное !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:45:24 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinСогласен, и хочу, чтобу развенчали или нет Что развенчать-то? Если не говорить о Java, а о многочисленных web-фреймверках на вообще всех платформах, то основной критерий выбора один - писать на том что нравится. Всё остальное - условности. (в самом прямом смысле, всегда можно подобрать условия, в которых что-то одно будет смотреться выгоднее) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:46:15 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinВот видите, ничего, кроме оскорблений. Хоть что нибудь конструктивное !!! Блин, ну где оскорбления? Вы хоть цитированием пользуейтесь! конструктивное было в начале, но вы его успешно проскипали. чем Node.js лучше JEE - ничем. Почему? - Потому что технологически всё тоже самое давно есть в Java: асинхронный IO - NIO, HTTP коннекторы асинхронная логика - JMS А с точки зрения языка, уже кучу раз обсасывали на сколько статическая типизация круче динамической. Почитайте соответствующие форумы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:50:51 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinХоть что нибудь конструктивное если ты о JS, то писать на нём не очень удобно. НО! Тема же не про это. Т.е. топик ни о чём. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:56:04 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Xем Node.js лучше JEE - ничем. - Абсолютно с Вами соглаен. Почему? - Потому что технологически всё тоже самое давно есть в Java: асинхронный IO - NIO, HTTP коннекторы асинхронная логика - JMS И это есть: Но почему появилсся Servlet 3.1 вам почему то не в домек. И, если бы я знал ответ или хотя бы намек, я бы не обратщался к форуму. "А с точки зрения языка, уже кучу раз обсасывали на сколько статическая типизация круче динамической. Почитайте соответствующие форумы." Я таких умных ответов знал от многих "экспертов", которые утверждали, что Groovy is a Dynamic Type language". Эти же экспкрты говорили, что "мы хотим Scala в Play, потому, что Groovy - Dynamic. Кто прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:02:39 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinXем Node.js лучше JEE - ничем. - Абсолютно с Вами соглаен. Цитировние всё ещё не ваш конек. Вы через почту что ли на сервер ходите? Valery ShiskinИ это есть: Но почему появилсся Servlet 3.1 вам почему то не в домек. И, если бы я знал ответ или хотя бы намек, я бы не обратщался к форуму. Это на меня такой наезд? Или к чему это? По-вашему Servlet 3.1 это симметричный ответ Оракл на Node.js? Valery ShiskinЯ таких умных ответов знал от многих "экспертов", которые утверждали, что Groovy is a Dynamic Type language". Эти же экспкрты говорили, что "мы хотим Scala в Play, потому, что Groovy - Dynamic. Кто прав? Ну, давайте отдельную тему заведём. Вкратце: динамическая типизация - меньше писать статическая типизация - больше писать, но проще поддерживать кому что нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:21:32 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
все эти рор-ноде тренды создаются потому что быстрый веб-девелопмент в java реально сосет, все они пригодны для быстрого прототипирования, когда проект разрастается и переходит в другую фазу, все с них слезают, взять эти твиттеры и т.п. А если сайтик небольшой - то зачем там вообще java впилась, java - это энтерпрайз онли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:28:57 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowiczдинамическая типизация - меньше писать статическая типизация - больше писать, но проще поддерживать кому что нравится. Тут есть ещё какая тема. Фанаты динамической типизации ненавидят статическую, потому что используют ущербные IDE и их реально кумарит код набирать. У нас в Java есть полноценные IDE с действительно интеллектуальной автоподстановокой. С такми писать статическую типизацию не внапряг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:34:06 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
забыл никвсе эти рор-ноде тренды создаются потому что быстрый веб-девелопмент в java реально сосет, все они пригодны для быстрого прототипирования, когда проект разрастается и переходит в другую фазу, все с них слезают, взять эти твиттеры и т.п. А если сайтик небольшой - то зачем там вообще java впилась, java - это энтерпрайз онли. Ну, да. В Java даже человеку с опытом въехать нужно время. Денёк чтобы чтобы научится компилять и собирать. Ещё денёк, чтобы это всё запустить в контейнере и подебажить. Тут железные нервы нужны. :) Это не PHP, где набрал в фаре код, бросил в папку и оно запаботало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:36:07 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczBlazkowiczдинамическая типизация - меньше писать статическая типизация - больше писать, но проще поддерживать кому что нравится. Тут есть ещё какая тема. Фанаты динамической типизации ненавидят статическую, потому что используют ущербные IDE и их реально кумарит код набирать. У нас в Java есть полноценные IDE с действительно интеллектуальной автоподстановокой. С такми писать статическую типизацию не внапряг. Зато их не кумарит писать тонну тестов, которые отлавливают ошибки, легко отлавливаемые Java IDE. Тоже никогда не понимал, ну для прототипирования или утилитного сайта - самое то, но на нагруженных сайтах... Вон только месяц как переписали часть сис тем с рора, потому что заманались. Единственная вещь которая мне нравится в роре и что я ненавижу в java - это долгий процесс сборки и пересборки, хотя в принципе и это улучшается если разрабаывать на Jetty + HotSwap + Jrebel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:39:06 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
забыл никЕдинственная вещь которая мне нравится в роре и что я ненавижу в java - это долгий процесс сборки и пересборки, хотя в принципе и это улучшается если разрабаывать на Jetty + HotSwap + Jrebel Ну, не знаю. У меня сейчас среднего размера проект - собираеться минуту в мавене, деплоится на томкат секунд 30. Это если руками. Если интеграцию IDEA+Tomcat исопльзовать с неполной перекомпиляцией, то там секунд 15 на перезапуск сервера уходит. Даже без JRebel никакого напряга не чуствую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 19:43:38 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowiczзабыл никЕдинственная вещь которая мне нравится в роре и что я ненавижу в java - это долгий процесс сборки и пересборки, хотя в принципе и это улучшается если разрабаывать на Jetty + HotSwap + Jrebel Ну, не знаю. У меня сейчас среднего размера проект - собираеться минуту в мавене, деплоится на томкат секунд 30. Это если руками. Если интеграцию IDEA+Tomcat исопльзовать с неполной перекомпиляцией, то там секунд 15 на перезапуск сервера уходит. Даже без JRebel никакого напряга не чуствую. У меня гигант( более 20 подпроектов на java, штук 5 на роре. java-ские почти все зависят от основных - domain, soap, auth. О сборке в минуту приходится только мечтать:) А еще я часто допускаю дебильные ошибки, 5 перезапусков jetty - 5 минут и тд. Но это еще фигня - мы написали фреймворк, который перекомпиляет контроллеры на лету в девелопмент моде так что уже лучше. Самый геморрой с деплоем на тестовый энвайрнмент - Собрать на билд-сервере(20 минут с тестами если), скопировать на тест(VPN+Citrix+узкий канал - минут 10), запустить на weblogic(Прикинь время запуска для 20 наших + 10 сторонних прилаг) - это капец. Для сравнения рору нужно сделать всего лишь svn up. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:04:57 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
У меня гигант( более 20 подпроектов на java, штук 5 на роре. java-ские почти все зависят от основных - domain, soap, auth. О сборке в минуту приходится только мечтать:) А что если настроить инкрементальный билд на сервере? Тогда на сервере можно делать svn up + там же инкрементальный билд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:31:39 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Для сравнения рору нужно сделать всего лишь svn up. В СУБД тоже удобно, можно написать хранимку в блокноте, скопировать ее в sql клиент, тут же отладить, написать следующую и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:34:23 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪА что если настроить инкрементальный билд на сервере? Тогда на сервере можно делать svn up + там же инкрементальный билд. Не столько инкрементальный билд, сколько continuous integration. Когда TeamCity или Jenkins всё то же самое делает в фоновом режиме, совершенно не важно, хоть час проект собирается, хоть два. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:35:29 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
забыл ник, Боже мой. Как же это ты несешь все в себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:37:15 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЙуный джавистЪА что если настроить инкрементальный билд на сервере? Тогда на сервере можно делать svn up + там же инкрементальный билд. Не столько инкрементальный билд, сколько continuous integration. Когда TeamCity или Jenkins всё то же самое делает в фоновом режиме, совершенно не важно, хоть час проект собирается, хоть два. естественно Jenkins, вы не до конца поняли всю пичаль:( Инкрементальный, неинкрементальный - пофиг - это время. Когда в команде 30+ человек и 20 проектов, то каждый коммит - это пересборка, если с тестами - это ппц, а если изменения в domain - ...... билдятся все. А кастомер хочет как - поправь мне две опечатки, добавь страничку. Ну делов то - метод в контроллере, новая jsp и две правки в существующих страницах. и сидишь ждешь 1.5 часа - пока все соберется и задеплоится, попутно отвечая на тупые вопросы кастомера - почему так долго. Просить второй сервер для второго дженкинса - 500 тыщ бумажонок, с обоснованием, графиками, обсуждениями, настройкой сервера, открыванием портов для фарволла - привет энтерпрайз, короче бесит оч сильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:42:26 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я не знаю, симметричный ли это ответ (Servet 3.1) . Поэтому и спросил. Нет, на сам деле, внятного ответа от Oracle, Но интересно. Я думал, что на форуме не ловят на вопросах, а пытаются отвечать. Sorry. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:45:32 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery Shiskinзабыл ник, Боже мой. Как же это ты несешь все в себе. я постиг дзен, веришь нет - я уже ничему не удивляюсь, самое интересное - я уже начал различать ситуации когда надо реально срочно, а когда можно забить - и никто не заметит. У меня рабочий имейл - вообще прикольная тема - стоят фильтры urgent, very urgent, extremely urgent. ASAP - тупо идет в корзину:) Как оно все существует до сих пор и не накрылось медным тазом - для меня загадка из загадок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 20:48:50 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
А кастомер хочет как - поправь мне две опечатки, добавь страничку. Ну делов то - метод в контроллере, новая jsp и две правки в существующих страницах. и сидишь ждешь 1.5 часа - пока все соберется и задеплоится, попутно отвечая на тупые вопросы кастомера - почему так долго. Обычно сборка ява проекта - скомпилировать сорцы и запаковать их в зип. Компилировать можно инкрементально, запаковки в зип можно тоже избежать, если сервер позволяет деплоить прямо из папки. Мне кажется, можно при желании добиться быстрой пересборки. Вообще вся эта ява-инфраструктура является тяжелым кошмаром. Если бы специально старались сделать все неудобно и через жопу, то все равно не достигли бы такого эффекта как в яве. Например, взять хотя бы мавен. За каким-то хером он вставляет в собранный джар файлик с датой. В результате, даже если сорцы не поменялись, джары получаются бинарно разными, что несовместимо с инкрементальной сборкой. Получается, что люди, которые разработали билд-тул, ВООБЩЕ НИЧЕГО не понимают в сборке. Я для себя давно сделал вывод, что если в проекте используется мавен, спринг, хибернейт или jsf, то проект скорее всего какая-то гниль бессмысленная, и надо его всячески избегать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 22:05:03 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪА кастомер хочет как - поправь мне две опечатки, добавь страничку. Ну делов то - метод в контроллере, новая jsp и две правки в существующих страницах. и сидишь ждешь 1.5 часа - пока все соберется и задеплоится, попутно отвечая на тупые вопросы кастомера - почему так долго. Обычно сборка ява проекта - скомпилировать сорцы и запаковать их в зип. Компилировать можно инкрементально, запаковки в зип можно тоже избежать, если сервер позволяет деплоить прямо из папки. Мне кажется, можно при желании добиться быстрой пересборки. Ну канеш:) Затраты времени на компиляцию - это секунды, инкрементальный билд тут явно не спаситель. А в сборке еще бывает - генерация стабов для веб-сервисов по wsdl, инструментация, компилирования swf из флекса, ассемблинг. вынос статических ресурсов, автогенерирование кода и тд - итп. Добавь к этому модульность, поиск депенденси и запуск тестов, я не говорю даже про всякие кловеры, кобертуры, чекстайлы и файндбаги. Ну и билд сервер это конечно абсолютно отдельная машина, которая не имеет сетевого соединения с другими серверами(тест, qa и продакшен). Вообще вся эта ява-инфраструктура является тяжелым кошмаром. Если бы специально старались сделать все неудобно и через жопу, то все равно не достигли бы такого эффекта как в яве. Например, взять хотя бы мавен. За каким-то хером он вставляет в собранный джар файлик с датой. В результате, даже если сорцы не поменялись, джары получаются бинарно разными, что несовместимо с инкрементальной сборкой. Получается, что люди, которые разработали билд-тул, ВООБЩЕ НИЧЕГО не понимают в сборке. Я для себя давно сделал вывод, что если в проекте используется мавен, спринг, хибернейт или jsf, то проект скорее всего какая-то гниль бессмысленная, и надо его всячески избегать. Плата за статическую типизацию. Ну ты скажи как сделать лучше для java? Если бы не было мавена - я бы застрелился, ты просто не представляешь какие тут объемы кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 22:22:07 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
ты просто не представляешь какие тут объемы кода. Затраты времени на компиляцию - это секунды Нет ли тут противоречия? Есть статья http://www.javaworld.com/javaworld/jw-11-2005/jw-1107-build.html про инкрементальный билд. Смысл в том, что после выполнения каждый таски делаешь touch для некоторого служебного файла, таким образом помечая время последнего запуска таска. Потом сравниваешь дату исходника с датой этого файла, если первая меньше второй, то таск можно пропустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 22:57:04 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Плата за статическую типизацию. Ну ты скажи как сделать лучше для java? В оракл PLSQL тоже статическая типизация и компиляция в нейтив код, но там все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:01:45 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Тесты, чекстайлы и файндбаги не вижу смысла на каждый билд запускать, пусть делаются в фоне или ночью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:07:02 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪты просто не представляешь какие тут объемы кода. Затраты времени на компиляцию - это секунды Нет ли тут противоречия? Есть статья http://www.javaworld.com/javaworld/jw-11-2005/jw-1107-build.html про инкрементальный билд. Смысл в том, что после выполнения каждый таски делаешь touch для некоторого служебного файла, таким образом помечая время последнего запуска таска. Потом сравниваешь дату исходника с датой этого файла, если первая меньше второй, то таск можно пропустить. Ну если советуешь так хотя бы сам прочитай:) In this article, my main focus in this scenario is when a developer works on his local working directory: He changes the project and wants to obtain feedback and see the results as fast as possible. Before ending with a task and committing it to the codebase, he wants to do a couple of fast incremental builds. By using techniques introduced in this article, he will quicken these builds and consequently save time. Где ты кстати такое старье выкопал? С локальными билдами проблем никаких нет. Городить такое на билдсервере - это ахтунг. Я повторюсь, ты не представляешь какие сложные бывают графы депенденси. Как настроить инкрементальный билд - если поменялись только xsd? Короче не вариант. И еще раз, компиляция(javac) в типичном билде занимает секунды, а автогенерация, инструментация, скачивание депенденси и тесты - отжирают львиную долю времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:16:05 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПлата за статическую типизацию. Ну ты скажи как сделать лучше для java? В оракл PLSQL тоже статическая типизация и компиляция в нейтив код, но там все работает. Классное сравнение) Так пиши на нем. А попутно ответь как это все дело развернуть на кластер, как задеплоить бранч, рефакторинг тоже наверняка очень удобен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:19:29 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪТесты, чекстайлы и файндбаги не вижу смысла на каждый билд запускать, пусть делаются в фоне или ночью. Так и делается, за исключением тестов. Представь что у тебя 20 приложений, многие зависят друг от друга и деплой занимает дохера времени. Любой баг в модуле domain может положить весь qa-процесс на полчаса, не говоря какая это морока в принципе + недовольство кастомера, который шлет панические письма если сервер недоступен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:24:02 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
С локальными билдами проблем никаких нет. Городить такое на билдсервере - это ахтунг. В чем принципиальная разница? Я повторюсь, ты не представляешь какие сложные бывают графы депенденси. Ант умеет работать с графами любой сложности. Как настроить инкрементальный билд - если поменялись только xsd? Короче не вариант. Ява классы перегенерятся из этих xsd, потом ant перекомпилирует только то что зависело от этих классов. Потом инструментатор отинструментирует тоже только то, что поменялось. Потом можно уже деплоить. скачивание депенденси В http есть такая штука как etag. Если мавен не умеет им пользоваться, то тогда, это печально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:31:02 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinЯ не знаю, симметричный ли это ответ (Servet 3.1) . Поэтому и спросил. Нет, на сам деле, внятного ответа от Oracle, Но интересно. Я думал, что на форуме не ловят на вопросах, а пытаются отвечать. Sorry. Вы вот это называете вопросом? Или я чего-то не понял? Valery ShiskinИ это есть: Но почему появилсся Servlet 3.1 вам почему то не в домек. Отвечают, Servlet 3.1 не является реакцией оракл на Node.js. Это просто логическое развитее а API в свете последних тендеций в web. Асинхронность, лишь небольшая часть этой спецификации и нафига она там вообще я пока не очень понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:32:06 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
А попутно ответь как это все дело развернуть на кластер Клиент оракла вообще не знает, кластер там или одиночный инстанс, все абсолютно прозрачно. как задеплоить бранч Если структуры таблиц не отличаются, то берешь и деплоишь. Если отличаются, то ты и в яве бранч не задеплоишь. рефакторинг тоже наверняка очень удобен Да, удобен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:37:07 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪА попутно ответь как это все дело развернуть на кластер Клиент оракла вообще не знает, кластер там или одиночный инстанс, все абсолютно прозрачно. как задеплоить бранч Если структуры таблиц не отличаются, то берешь и деплоишь. Если отличаются, то ты и в яве бранч не задеплоишь. рефакторинг тоже наверняка очень удобен Да, удобен. Имелась ввиду кластеризация серверов приложений и ограниченность кластеризации Oracle. Причем тут структура таблиц? Хранимки у тебя разные в бранче. Ну если рефакторинг удобен - то ок, непонятно что ты в теме про java делаешь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:47:46 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪС локальными билдами проблем никаких нет. Городить такое на билдсервере - это ахтунг. В чем принципиальная разница? Я повторюсь, ты не представляешь какие сложные бывают графы депенденси. Ант умеет работать с графами любой сложности. Как настроить инкрементальный билд - если поменялись только xsd? Короче не вариант. Ява классы перегенерятся из этих xsd, потом ant перекомпилирует только то что зависело от этих классов. Потом инструментатор отинструментирует тоже только то, что поменялось. Потом можно уже деплоить. скачивание депенденси В http есть такая штука как etag. Если мавен не умеет им пользоваться, то тогда, это печально. Принципиальная разница между локальным билдом и билдом на билд сервере в том, что локально я знаю что изменилось, и в большинстве случаев я разрулю это и без билда всех проектов, хотя иногда могут быть и осечки. А билдсервер должен выдавать гарантированный билд, который без всяких проблем может быть задеплоен на тестовый сервер и гарантированно не свалится. Ну ты бы еще makefile предложил вместо мавена, а че ява девелоперы такие ява девелоперы, придумали мавен, когда есть замечательный ант(я просто не хочу повторять что сказано до меня уже сотни раз и вступать в холивар, если не знаешь недостатков анта - то просто погугли). Сложность с инкрементальным билдом - что ты должен знать что может быть поломано в результате любого коммита(xsd, flex файл, конфиг автогенератора) и учитывать это в билд процессе, и на каждый случай надо возиться с этой настройкой и постоянно отлавливать косяки, нет спасибо. А мавен таки знает про etag, просто когда у тебя число зависимостей около 60(это только снапшоты) - он должен залезть по урлу и проверить etag. Да, можно сделать конкретный билд не 5 минут, а 3 с половиной, учитывая то что только проектов больше 20, а число модулей намного больше - то делать мне больше нефиг чем все это настраивать - программить когда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 00:03:20 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
учитывая то что только проектов больше 20, а число модулей намного больше - то делать мне больше нефиг чем все это настраивать - программить когда? Вы там иногда хоть отдыхайте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 00:10:24 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПлата за статическую типизацию. Ну ты скажи как сделать лучше для java? В оракл PLSQL тоже статическая типизация и компиляция в нейтив код, но там все работает. И JS и PLSQL - неплохие ЯП. Но там ООП мало)). Поэтому на них ПРИКЛАДНОЙ уровень не пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 12:15:30 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОтвечают, Servlet 3.1 .............. Асинхронность, лишь небольшая часть этой спецификации и нафига она там вообще я пока не очень понял. +1 ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 12:19:05 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, если уж сравнивать Java, то сравнивай с шарпом, а не с серверным ЯП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 12:21:24 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
забыл никПринципиальная разница между локальным билдом и билдом на билд сервере в том ну дак этим (сборкой на продакшен) должен заниматься отдельный человек. Причём хоть ночью))). И программирует он вообще "для души" LOL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 12:24:22 |
|
||
|
Почему Node.js а не JNode ?
|
|||
|---|---|---|---|
|
#18+
Люди! Вы мух от котлет отделите! Что вы валите все в одну кучу? Асинхронность, EE, Node.js Node.js предназначен для вполне определенного ограниченного круга задач - организовать long pooling, передачу сообщений, эммулировать постоянную связь поверх http. Кто пытается на нем решить задачи решаемые EE, скорее не вполне здоров. Есть другие альтернативы node.js - jetty к примеру. При чем тут JMS, EE? Ключевое слово здесь long pooling - разберитесь что это такое если еще не разобрались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2012, 23:47:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2130323]: |
0ms |
get settings: |
19ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
72ms |
get topic data: |
23ms |
get forum data: |
5ms |
get page messages: |
125ms |
get tp. blocked users: |
2ms |
| others: | 328ms |
| total: | 613ms |

| 0 / 0 |
