LINUX.ORG.RU

живые Java web frameworks

 , ,


1

5

Какие сейчас популярны? Какие сейчас _живые_ и развиваются?

Спросил друга, он привел в пример http://vertx.io и http://www.sparkjava.com. Но это же какой-то недожс? Недожс какбе поразил жавалордов?

Есть Play2, но давайте пока без него. Тем более, что он юзает для жавы скалообертку и сбт, и этим довольно ограничен (например, первая конструкция с синтаксисом в java8 и все накрылось днищем). Туда же груви и грельсы, которые тормозят.

Можно, допустим, откопать Wicket и некропортировать туда парочку идей из рельс. Это хорошая идея?

Попробовал Eclipse, в том числе vaaclipse (раз, два), но не смотря на рекомендацию Вогеля, не похоже, что оно уже готово.

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

Как говорил Сократ,

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

★★★★☆

web framework это слишком общее понятие, ты пиши что именно хочешь чтобы в него входило.

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Ну, все что я хочу сейчас есть в Play (и в Рельсах).

чтобы чего-то хотеть, надо знать из чего выбирать, верно? Мир не стоит на месте, возможно, появилось что-то новое и крутое, чего не хочется исключительно потому, что ничего не известно о нем. Например, рендерить Эклипсу в веб - это круто и полезно, но много ли кто специально хотел этого, до того как эта идея стала широко известна?

применение? Прототип онлайн-игрушки с возможностью использования жаваскрипта. Нагрузка хотя бы две тысячу человек на сервер. Клиент хоть и интерактивный, не до безумушки толстый, чтобы его можно было пустить на современном смартфоне. Это чтобы понять баланс между highload, сложным фронтендом и сложным бекендом.

stevejobs ★★★★☆
() автор топика

JAX-RS + «your favourite JS framework»

Ведь нужен по большому счету только REST. Как его делать - другой вопрос. Если вы уже натащили себе спринга, то Spring MVC. Если слава небесам не натащили - современный Java EE контейнер+EJB 3.1+JAX-RS-2.0.

Для гентушников до глубины сердца - Netty/Resteasy или Grizzly/Jersey.

Статику с nginx

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 4)
Ответ на: комментарий от vertexua

Grizzly по моему опыту был довольно глюкавым, так что мы сейчас обычно используем (embedded) jetty + spring/jersey. Старые проекты на jersey, новые все мигрируем на spring.

Впрочем если нужен только REST то есть интересные варианты вроде http://spray.io/

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Grizzly по моему опыту был довольно глюкавым

Это да. У них часто нет очевидных функций. Но стоит зарепортить баг, так через недельку уже все запилят.

(embedded) jetty + spring/jersey

spring OR jersey или spring AND jersey? Если второе, то почему? Или просто миграция?

Мигрируете чтобы не плодить сущностей?

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

Это да. У них часто нет очевидных функций. Но стоит зарепортить баг, так через недельку уже все запилят.

https://java.net/jira/browse/GRIZZLY-761, чинили с 2009 по 2013.

spring OR jersey или spring AND jersey? Если второе, то почему?

Или. Spring с Jersey пробовали использовать, но получалось не хорошо (например тестовые фреймворки не удалось подружить)

maxcom ★★★★★
()
Ответ на: комментарий от vertexua

Мигрируете чтобы не плодить сущностей?

К Jersey все равно рано или поздно возникает необходимость добавлять DI, а с Spring он и так уже в комплекте.

maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от vertexua

Ведь нужен по большому счету только REST

ну это большой вопрос. Толстый клиент можно формировать из жавы (и не обязательно через GWT, можно юзать какой-нибудь Jetbrains MPS и генерить им что на душу взбредет). А можно прямо из жавы генерить. Всякое разное - и статику, и динамику, и скрипты. Например, Рельсы, там не только REST (например, в последнюю версию впилили как стандартное, переход между страницами сайта без перезагрузки страницы, с подгрузкой контента JS'ом). Или пойти противоположным путем, и сделать «компонентно-ориентированный» кодинг типа Delphi, когда ты вначале делаешь гуй, а серверная часть к нему приделывается сбоку. Много чего возможно, но хорошо бы иметь готовенькое :)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Так вот готовенького много, но нужно просто пересилить себя и просто разобраться в JS. В итоге получаем кучу профитов. При должном скилле на Bootstrap+KnockoutJS любая админка пишется не медленнее чем на JSP/JSF и прочее. Генерация JS из Java - дырявая абстракция. Ошибки все равно есть, но дебажишь вместо своего JS кода - негенереный

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

А почему такое негативное отношение к Spring? Я смотрю по вакансиям жаба девелопера - только он в связке с хибером и требуется.

anonymous
()
Ответ на: комментарий от maxcom

gwt не нужно

скорее убит, но это не важно, т.к есть CoffeeScript

trupiko
()
Ответ на: комментарий от anonymous

Спринг хорош. Он изначально создавался как легковесная альтернатива JavaEE. И таким и остался в головах разработчиков. Но ничего, что обычное Spring приложение в Tomcat/Jetty жрет теперь больше, чем современное Java EE приложение в JBoss. При этом нужно собрать пачку всех покемонов библиотек и возиться с их настройкой. И не смотря на Java Config, все равно почти все всегда все делают в xml, получая громадные простыни онного. В современном Java EE уже все есть, это практически Spring Revised. Зато приложение легче, проще, быстрее разрабатывать, даже javax.* душу греет. Добавили тестирование, вебсокеты, batch, легковесный IoC. И EJB - это больше не танец с бубном, а одна аннотация.

Но по инерции все клепают спринг приложения, при изменении кода перегружают 60 МБ jar файлов в томкат и ждут перезапуска по 30 сек. Спринг сделал свое дело, Java EE сейчас такой какой он есть почти в большинстве случаев благодаря Spring. Спасибо тебе Spring, безболезненной тебе смерти

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 3)
Ответ на: комментарий от vertexua

Что можешь сказать за сервера приложений для начинающего жава ее девелопера? Jboss or Glassfish для начала? Стоит ли соваться в стек спринг + хибер? Или лучше пока поковырять стандартный жава ее?

Кстати у меня есть задумка одного пет проекта. JS на клиенте, обращается к RESTful бэк энду за данными. JavaEE не хочется, т.к слишком жирно. Понадобится DI контейнер, либа для написания REST веб сервисов и какой-нибудь легкий сервлет контейнер. Пока остновился на связке Jetty + Jersey + Guice. Что скажешь?

anonymous
()
Ответ на: комментарий от anonymous

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

Если начинать, то можно начать с Java EE. Но спринг тоже обязательно, он еще долго будет жить и развиваться.

Jboss or Glassfish для начала?

Для продакшна лучше JBoss AS7. Но для начинающего тут сложнее, в JBoss чуть больше консоли, но я все равно нахожу его более вменяемым.

Понадобится DI контейнер, либа для написания REST веб сервисов и какой-нибудь легкий сервлет контейнер. Пока остновился на связке Jetty + Jersey + Guice.

Вроде норм, я тоже так делаю

vertexua ★★★★★
()

+1 к Spring-у. Может он уже не такой легкий как раньше, но вокруг него много проектов, которые хорошо друг с другом интегрированы. Из последнего больше всего радости доставляет Spring-Data (в частности Spring-Data-JPA).

php-coder ★★★★★
()
Последнее исправление: php-coder (всего исправлений: 1)
Ответ на: комментарий от vertexua

Все так, вот боюсь только, что эйфория от нового JEE улетучится через пару лет. Главное преимущество спринга, имхо, что это не комитетская технология и как следствие они априори быстрее пилят фичи. Взять тот же Spring Data. Где его аналог в JEE?

dizza ★★★★★
()

Spring MVC как low level. Play2 как high level.

Да и вообще веб-фреймворк обычно очень уж тривиальная надстойка над сервлетами и шаблонизатором. Не вижу смысла домать тут копья при выборе - оно все примерно одно и тоже с некоторыми вариациями.

dizza ★★★★★
()
Ответ на: комментарий от dizza

Взять тот же Spring Data. Где его аналог в JEE?

Ясное дело подробного аналога нет, есть мелочи типа CDI Query.

Но одна или пара технологий - не аргумент что что-то автоматически не нужно. Batch и тестирования тоже не было. Тем более Spring Data = сокращенный синтаксис + polyglot persistence. Без первого жили без проблем. Второе пилят в рамках следующих версий Java EE.

Самое лучшее то, что теперь Java EE достаточно шустро зарабатывают. И в первый день его релиза сразу вышло два сервера с поддержкой. А это уже получше чем раньше. И сервера намного легковесенне чем раньше

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

А много надо изучать человеку, который относительно неплохо знал J2EE и немного касался Spring & Hibernate, чтобы догнать JEE до текущей версии? Прямо все хвалят, даже интересно стало.

Legioner ★★★★★
()
Ответ на: комментарий от php-coder

Хотели использовать в прошлом проекте. Не одобрили, потому что нет Spring Data Hibernate (он и не нужен). А конвертировать все в JPA не было времени

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

А можешь рассказать как там сейчас деплоймент выглядит? Как задеплоить кластер на несколько машин, как на кластер раскатать war-ник и так далее.

dizza ★★★★★
()

JSF со всякими надстройками типа PrimeFaces || IceFaces. Вполне живое, активно развивающееся, довольно удобное.

REST сервисы + whatewer you like яваскриптовый фреймворк на клиенте. Это если надо больше контроля и низкоуровневых фич. Для сервисов я предпочитаю spring mvc, кто-то предпочитает jax-rs.

Nagwal ★★★★
()

Что значит живые? Можно смело кодить на struts2 и не опоясаться за софтину в экзистенциальном смысле.

ii8_ ★★★★
()
Ответ на: комментарий от ii8_

значит, мир не стоит на месте, и вместе с ним меняются технологии. А кто не меняется, остается на свалке истории, вместе со всякими JSP, PHP3, итп

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

вам нужен рабочий инструмент или живой недофрэймворк? Вот, что спрашивалось в вопросе. И что там такого поменялось? Java? HTTP протокол?

ii8_ ★★★★
()
Ответ на: комментарий от ii8_

стало возможно писать то же самое в 9000 раз быстрее, делать вещи которые раньше бы показались ненужными и расточительными из-за сложности реализации, стало возможно не думать о ненужных вещах в процессе быдлокодинга (жизнь слишком коротка, чтобы тратить ее на детали реализации жавы, протоколов, всякие портянки XML-конфигов для жабы, адресную арифметику для сей, итп). Генерацию контента вообще можно целиком отдать гуманитариям, они ее с высокой вероятностью не закосячат (а если закосячат, умная автоматика подскажет, что случилось, и как это поправить). Вот и всё. Мир вебкодинга необратимо изменился, теперь это легко, приятно, и не требует знания матана (а когда это сложно и неприятно, через это можно пройти всего один раз - а потом упаковать решение в те же DSLи, и вместо того, чтобы на каждый чих писать новую машинерию - просто адаптировать задачу так, чтобы готовая машинерия ее оптимально переварила).

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

понял. спасибо! ;) и к чему пришли? какой\какие более подходят к современным требованиям? Блина, и вправду мало что годно.

ii8_ ★★★★
()

Посмотрите Tapestry5 - более-менее адекватная вещь, как альтернатива Spring. Вот только там до сих пор PrototypeJS заправляет (впрочем на гитхабе можно tapestry-jquery найти), но Говард обещает вот-вот запилить 5.4 с поэтасами и блекджеком :) Будет Twitter Bootstrap и все дела.

А вообще гляньте AngularJS и что-нибудь типа REST или даже сервлеты, исходя из ваших требования к задаче.

foror ★★★★★
()
Ответ на: комментарий от foror

, но Говард обещает вот-вот запилить 5.4 с поэтасами и блекджеком :)

а опять весь апи поломать обещает?) А то уже столько раз проходили..

stevejobs ★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.