LINUX.ORG.RU

живые Java web frameworks

 , ,


1

5

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

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

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

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

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

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

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

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

★★★★☆

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 ★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.