5 наиболее популярных Java-фреймворков для веба

Фреймворков много не бывает.
21 марта 2017326451Илья Бубнов5948023

Java является одним из наиболее популярных языков программирования, возможности которого не ограничиваются практически ничем. Однако использование одного лишь голого языка для решения сложных задач — это развлечение для новичков и олдскульных программистов. Для всех остальных существуют фреймворки, которые помогают решать повседневные задачи и позволяют стирать границы между «могу» и «хочу».

Перед вами результаты исследования за 2016 год, которые красноречиво показывают распределение Java-аудитории по фреймворкам для веб-разработки:

Далее кратко поговорим о тех, чье имя не осталось закрыто бездушным вариантом «Other».

Spring MVC

Абсолютный лидер рейтинга. Знание Spring является одним из наиболее часто встречаемых требований на должность Java-разработчика. Причин тому масса, главное из них — универсальность. По сути, это целый контейнер фреймворков, позволяющих вам выполнять задачи любой сложности — от работы с БД до процедур тестирования.

Особняком среди них стоит MVC, который, как вы видите, в одиночку выиграл соревнование фреймворков. Взаимодействие, указанное в названии (model-view-controller), доведено здесь, если не до совершенства, то до очень хорошего уровня, что позволяет без глубоких знаний процессов создавать хороший и чистый front-end код.

С точки зрения необходимости изучения данного фреймворка новичком есть определенные разногласия. С одной стороны, это давно и хорошо зарекомендовавшая себя платформа, знание которой будет большим плюсом к резюме. С другой — на сегодняшний день Spring по функционалу не является такой доминирующей платформой по возможностям, как это было лет 7-10 назад. При этом новичку освоить MVC с ходу достаточно сложно.

JSF

Еще один фреймворк для разработки веб-приложений, но в отличие от предыдущего пункта, ставка здесь делается не на обработку запросов, а на взаимодействие с компонентами. Большим плюсом является поддержка Oracle, множество дополнительных инструментов, прекрасная документация и дружелюбное сообщество. В общем, если вам надо быстро что-то разработать на Java, JSF — прекрасный вариант.

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

Vaadin

Одним из главных преимуществ использования фреймворка Vaadin является возможность использовать только Java, избегая прикруток языков веба (HTML, JS, XML). Да, это не единственный фреймворк, обладающий такой возможностью, но это пожалуй наименее проблемный из всех.
Кроме того, здесь прекрасно реализованы модели MVC и MVP, что в конечном счете отражается на качестве вашей работы. Но есть и обратная сторона. Во-первых, Vaadin — это надстройка на GWT, что в конечном счете обяжет вас изучить и этот фреймворк. Во-вторых, как следует из всего описанного выше, он медлителен. Пользователь по сути работает лишь с представлениями, поэтому время выполнения любого действия можно смело умножать на 3 от номинального.

GWT (Google Web Toolkit)

Vaadin и GWT чрезвычайно похожи и всячески связаны, но последнего есть одно важное отличие — он компилируется в JavaScript, с которым сервер и работает. Писать вам здесь тоже придется на чистом и немного ограниченном Java, но в отличие от Vaadin здесь больше самостоятельности в обработке запросов. С одной стороны, это позволяет увеличить быстродействие, наладить работу с памятью, с другой — потребует от вас больше знаний и навыков в разработке.

В остальном одни плюсы: множество API, виджетов, первоклассная поддержка, отсутствие необходимости безупречно знать Java — вполне достаточно, чтобы заинтересоваться данным фреймворком.

Grails

Как вы возможно знаете, Grails это фреймворк для языка Groovy, который в свою очередь основан на Java. Таким образом, фактически получается упрощение для упрощения. То есть на выходе вы и без того бы получали бы удобный продукт с низким порогом входа, а тут еще и разработчики постарались: мало того, что в комплекте идет более 900 плагинов, так еще и совместимость со Spring и Hibernate (о нем чуть позже). Когда станет скучно работать с готовым и захочется заняться кастомизацией, Grails подарит вам такую возможность с помощью гибкой системы настроек библиотек (в т.ч. Grails-Ajax).

В общем, хотите быстро и качественно создать приложение, не имея большого опыта за плечами — это к Grails. Но учтите требуемый объем ПО и невысокие показатели быстродействия.

Обратите внимание

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

Struts 2 — прекрасный фреймворк с более, чем 17-летней историей (конкретно Struts 2 в феврале исполнилось 10 лет). Упрощает реализацию MVC, имеет много достойных плагинов, но все же достаточно сложен для начинающей аудитории.

Hibernate — когда вам необходимо прикрутить низкоуровневый код для взаимодействия с БД и обработкой запросов, этот фреймворк вам здорово поможет.

Wicket — схожий с Vaadin фреймворк, требующий работы одновременно сразу по двум направлениям: с Java и с HTML. От этого не самая высокая популярность.

Stripes — малоизвестный фреймворк, являющийся по сути легковесной версией Struts. Минимум настроек, максимально упрощённые соглашения и достаточно низкий порог входа.

А какие фреймворки используете вы? Почему?

javaspring mvcjsfvaadingwtgrailsstruts 2hibernatewicketstripesjava_developer
Нашли ошибку в тексте? Напишите нам.