Когда Java является хорошим выбором для веб-разработки?
Пожалуйста, не говорите: «Когда у вас есть команда разработчиков, которая знает только Java».
Когда Java является хорошим выбором для веб-разработки?
Пожалуйста, не говорите: «Когда у вас есть команда разработчиков, которая знает только Java».
Ответы:
Учитывая множество доступных платформ, зрелость платформы и т. Д., Я испытываю желание сказать «почти всегда». Вот несколько причин, по которым вам не следует использовать Java:
Java является используется в небольших и средних сайтов. Важным моментом является то, что для веб-сайтов Java гораздо меньше бесплатного веб-хостинга, чем, например, для PHP. Это означает, что если у вас недостаточно ресурсов для размещения собственного веб-сервера, вы, вероятно, не выберете Java.
Обратите внимание, что в Java EE 6, особенно в веб-профиле, есть много стандартных технологий, которые могут создавать очень мощные веб-приложения без особого кодирования. К сожалению, это еще не совсем мейнстрим.
Обратите внимание, что в последнее время это несколько изменилось в Google Application Engine, который позволяет бесплатно развертывать стандартные веб-приложения на Java (с некоторыми ограничениями) в облаке для сайтов с низким и средним трафиком.
Когда ваша платформа - UNIX / Linux, и вам нужен богатый набор инструментов, таких как Object / Relational Mapping, Security, Комплексная оркестровка веб-сервисов и т. Д.
(Мы не говорим о простых сайтах, не так ли?)
Каждый раз, когда меня раздражает еще одна Java-команда, я выдуваю пар, глядя на такие вопросы, как этот. Позвольте мне повторить. Я являюсь клиентом на стороне разработчика и работаю уже около 5 лет. Я работал над сайтами, начиная от одноразовых микросайтов, в основном с контентом, и заканчивая такими большими сайтами, как Sears, до более сложных сайтов типа приложений, где требуется действительно глубокая экспертиза пользовательского интерфейса. Я имел дело с Rails, PHP, веб-формами .net (ew), .net MVC (намного лучше) и полным набором Java-решений для веб-разработки, сопровождаемых разработчиками и командами, с которыми пришлось столкнуться. Я также немного пишу на Python и начинаю копать Django.
Мой опыт работы с командами Java всегда был ужасным. Инструменты всегда PITA. Разработчики никогда не хотят верить, что они сделали что-то не так, и заставить их заново исследовать свой собственный газон, как только вы исключили проблему с вашей стороны, все равно что выдернуть зубы. Мой первый опыт общения с командами Java в моем опыте - это время разработки, преобразованное во время электронной почты, с написанием множества длинных объяснений того, почему проблема определенно заканчивается. HTML, как правило, не является их проблемой, если вы на самом деле не хотите его контролировать. Тогда все, скорее всего, обанкротится с их стороны, потому что вы действительно хотите переместить некоторые элементы верхнего уровня вокруг.
В языке есть вещи, которые мне не нравятся, но я думаю, что настоящая проблема - это культура и тот факт, что признание настолько широко распространено, что в середине у вас тонна посредственности. Я подозреваю, что культура исходит из того, как продается Java. Напишите один раз, разверните везде. Перевод: «Нужно учиться только одному!» Люди, которые находят это привлекательным, в основном хотят использовать Java как один гигантский молоток для каждого гвоздя с минимальным оттачиванием своего мастерства в отношении веб-разработки.
Так что если у вас есть разработчики, которые знают Java и другие языки, но все же предпочитают Java, я бы сказал, да, продолжайте, если это кажется правильным решением. Но если у вас есть разработчики Java, которые знают Java, а все остальное просто не соответствует критериям, позволяющим сделать это резюме в их резюме, предложите им создать простое приложение с множеством полусложных страниц в конце HTML и попробуйте это простой тест. Разбей немного HTML. Попробуйте заставить их выяснить, что не так. Если непосредственная проблема, которую они начинают решать, отвлекает их от вины, держите их! @ # $ Подальше от веб-разработки. Веб-разработчик является междисциплинарным и требует активного интереса в этой области, чтобы быть успешным. Это не место для людей, которые хотят иметь только знание одного языка и больше боятся проблем, чем заинтересованы в их решении.
Я не утверждаю, что сама Java - корень некомпетентности, и я слышал, что Spring хорош. Я уверен, что есть компетентные команды Java там. Я просто еще не сталкивался с этим, и я не думаю, что это совпадение. Я думаю, что Sun во многом с этим связана. Я также думаю, что управление веб-командами, такими как или в отделах ИТ, во многом связано с этим.
Java отлично подходит для небольших веб-сайтов. Вы можете очень быстро заставить JSP-страницы работать на веб-сервере Java, таком как Tomcat , например.
Хотя, по моему опыту, Java более распространена для больших веб-сайтов, где существует большая потребность в сложной обработке на стороне сервера - в этом случае вы найдете более сложные платформы Java, такие как JavaServer Faces (JSF).
Важно отметить, что полная установка Java исторически не была доступна во многих дешевых установках веб-хостинга, поэтому это может объяснить преобладание других языков, таких как PHP, в этих средах.
Основные причины использования Java в веб-разработке сводятся к следующему:
Технически говоря:
Если бы я запускал веб-приложение, я бы использовал Ruby on Rails и проектировал бы таким образом, чтобы точки доступа могли быть заменены, когда RoR достигнет предела масштабирования производительности.
Java обладает определенным запахом COBOL, и «низкоуровневые кодеры используют Java» висят на ней, а фиаско Oracle не помогают репутации. Если у вас есть выбор , выберите язык, который привлекает лучших разработчиков.
Все просто: используйте Java, когда основная задача - производительность сервера. При кодировании возникают дополнительные издержки, но код будет выполняться буквально за период от 1/200 до 1/500. Php, Ruby и другие динамически типизированные языки всегда будут работать намного медленнее, чем серверы Java или .net.
Большинству решений для Интернета это не нужно. Например, Twitter не отказывался от Rails, пока не начал набирать популярность.
Не единственная причина, но с растущей популярностью создания веб-сайтов со сложными приложениями, похожими на приложения, при этом с логикой, выполняющей «вещи» на сервере - нет необходимости объяснять, почему Java по крайней мере равна любой другой вариант на стороне сервера. Но на стороне клиента, если любой javascript собирается быстро превратиться в кошмар обслуживания кода, и, используя GWT, чтобы держать это на расстоянии вытянутой руки, чтобы вы могли кодировать на Java, вы можете получить лучшее из обоих миров с вашим сервером выполняет тяжелую работу и клиентский процессор дает им «опыт». Научитесь интегрировать его с чем-то вроде jQuery, и вы сможете получить все, что вам захочется.
Не какой-либо эксперт по альтернативам, но если кто-то другой может предложить такого же рода гибкость и широту, рад услышать об этом.
Основная причина, по которой я бы выбрал java, заключается в том, что вам нужно использовать распределенные транзакции, что может быть большой проблемой для многих корпораций. Однако вы все равно можете использовать ваш любимый язык сценариев для веб-разработки и делегировать работу только Java, когда вам нужны быстрые / распределенные транзакции.
Я полагаю, что это произойдет, когда ваше приложение будет очень сложным, так как его будут разрабатывать многие люди, со множеством сложных модулей, сложной бизнес-логикой, и оно должно взаимодействовать со многими другими корпоративными приложениями.
В любом случае, вы также можете разрабатывать в Grails, который предоставляет множество приятных функций, значительно облегчает разработку и быстро развивается.
Java в порядке, но если производительность не является критически важной, вы можете получить те же результаты с меньшими усилиями на других языках.
Java является языком со статической типизацией и дешевле, чем другие языки со статической типизацией, используемые для веб-разработки, а именно C # и VB.net, если у вашей компании нет подписки MSDN. Статически типизированные языки хороши для средних и больших проектов, сложных правил домена и большого количества внутреннего кода, потому что вы можете лучше организовать свои классы, а IDE помогут вам найти ошибки в вашем коде.
С динамически типизированными языками, такими как PHP, Python, Ruby, ваша разработка будет намного быстрее, но вам придется намного лучше тестировать свой код. Если у вас мало времени и денег и ваши требования меняются очень быстро, и вам не нужно выполнять очень сложные вычисления, динамические языки намного лучше.
Безопасность
Основная причина, по которой крупные компании предпочитают Java другим решениям, заключается в том, что он считается гораздо более безопасным.
Это в основном потому, что его поддерживает такая крупная компания (сейчас это оракул).
Следует принять во внимание, что Java предлагает очень высокий уровень безопасности и отличную поддержку и анализ (хотя это и имеет свою цену).