Коли Java є хорошим вибором для веб-розробки?
Будь ласка, не кажіть "Коли у вас є команда розробників, яка знає лише Java".
Коли Java є хорошим вибором для веб-розробки?
Будь ласка, не кажіть "Коли у вас є команда розробників, яка знає лише Java".
Відповіді:
Враховуючи багато доступних рамок, зрілість платформи тощо, я спокушаюся сказати «майже завжди». Ось ось кілька причин, коли не слід використовувати Java:
Java є використовується в невеликих і середніх сайтів. Найважливішим моментом є те, що для веб-сайтів Java існує набагато менше безкоштовного хостингу, ніж, наприклад, PHP, тобто, якщо у вас не буде достатньо ресурсів для розміщення власного веб-сервера, ви, ймовірно, не виберете Java.
Зауважте, що в Java EE 6, особливо у веб-профілі, є багато стандартних технологій, які можуть створювати дуже потужні веб-програми, не потребуючи багато коду. На жаль, поки що це ще не мейнстрім.
Зауважте, що останнім часом це змінилося дещо за допомогою Google Application Engine, що дозволяє вам розміщувати стандартні веб-програми Java (з кількома обмеженнями) у хмарі безкоштовно для сайтів з низьким та середнім трафіком.
Коли ваша платформа UNIX / Linux і вам потрібен багатий набір інструментів, таких як Об'єктивно-реляційне картографування, Безпека, Комплексна організація веб-служб тощо.
(Ми не говоримо про прості веб-сайти, чи не так?)
Кожен раз, коли інша команда Java дратує мене, я видуваю пару, переглядаючи такі питання. Дозвольте ще раз зазначити. Я є клієнтом, дев і вже близько 5 років. Я працював на сайтах, починаючи від одноразових мікросайтів, що в основному містять вміст, до таких масових сайтів, як Sears, до більш досконалих сайтів типу додатків, де потрібна дійсно глибока експертиза інтерфейсу. Я мав справу з веб-формами Rails, PHP, .net (ew), .net MVC (набагато краще) та букетом Java-рішень для веб-розробок, що супроводжуються розробниками та командами, з якими все було повне лихо. Я також пишу трохи Python і починаю копати Django.
Мій досвід роботи з командами Java був надзвичайно жахливим. Інструменти - це завжди PITA. Дияволи ніколи не хочуть вірити, що вони зробили щось не так, і змусити їх переглянути свій власний газон, як тільки ви виключаєте проблему на своєму кінці, це як вибивання зубів. Першим випадком спілкування з командами Java, на мій досвід, є час розробки, перетворений на час електронної пошти, написання декількох тривалих пояснень, чому проблема, безумовно, закінчується. HTML, як правило, не є їх проблемою, якщо ви дійсно не хочете певного контролю над ним. Тоді все, швидше за все, піде в пекло, тому що ви насправді хочете перемістити деякі диви верхнього рівня.
Є речі щодо мови, яка мені не подобається, але я думаю, що справжньою проблемою є культура і те, що прийняття настільки широко поширене, у вас є тона посередності в середині. Я підозрюю, що культура, яку я підозрюю, витікає з того, як продається Java. Пишіть один раз, розгортайте всюди. Переклад: "Вам потрібно вивчити лише одне!" Люди, які вважають, що привабливі в основному хочуть володіти Явою, як один гігантський молоток для кожного цвяха, з мінімальним фактичним відтоку їхнього ремесла щодо веб-розробки.
Тож якщо у вас є розробники, які знають Java та інші мови, але все ще віддають перевагу Java, я б сказав, так, продовжуйте, якщо це здається правильним рішенням. Але якщо у вас є розробники Java, які знають Java, а все інше - це лише ледве задоволення критеріїв, щоб насправді зробити це кулею в їх резюме, запропонуйте їм створити просту програму з різноманітними напівскладними сторінками на кінці HTML і спробуйте це простий тест. Розбити деякий HTML. Спробуйте змусити їх зрозуміти, що не так. Якщо безпосередня проблема, яку вони починають вирішувати, - це відволікати провину від себе, тримайте їх! @ # $ Подалі від веб-розробки. Веб-розробник є мультидисциплінарним і вимагає активного інтересу до цієї галузі, щоб мати успіх. Це не місце для людей, які хочуть лише підтримувати знання однієї мови і більше жахаються від проблем, ніж зацікавлені у їх вирішенні.
Я не запевняю, що сама Java є коренем некомпетентності, і я чув, що Весна - це добре. Я впевнений, що там є грамотні команди Java. Я просто ще не зіткнувся з одним і не думаю, що це збіг обставин. Я думаю, що Сонце має багато спільного з цим. Я також думаю, що робота з веб-командами на зразок чи під ІТ-відділами має багато спільного з цим.
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.
Більшість рішень для Інтернету цього не потребуватиме. Твіттер не відмовився від Rails, поки, наприклад, не почав досягати своєї популярності.
Не єдина причина, але зростаюча популярність створення веб-сайтів із складними передуєми, схожими на додатки, і все ще має логіку робити «речі» назад на сервері - ніяких причин не повинно бути необхідним, щоб пояснювати, чому Java принаймні дорівнює будь-якій іншій опція на кінці сервера. Але в кінцевому підсумку, якщо який-небудь javascript буде швидко перетворюватися в кошмар підтримки коду і, використовуючи GWT, щоб тримати цей матеріал на відстані зброї, щоб ви могли кодувати в Java, ви можете мати найкращі з обох світів зі своїм сервером робити важкі підйоми і процесор клієнта надає їм "досвід". Навчіться інтегрувати його з чимось на кшталт jQuery, і ви можете мати усі необхідні цукерки для очей.
Не будь-який експерт з альтернатив, але якщо хтось інший може висунути одного з такою ж гнучкістю та широтою, із задоволенням про це чую.
Основна причина, чому я вибрав би java, - це якщо потрібно використовувати розподілені транзакції, що може викликати велике занепокоєння у багатьох корпорацій. Однак ви все ще можете використовувати свою улюблену мову сценаріїв для веб-розробки, і лише делегувати роботу над Java, коли вам потрібні швидкість / розподілені транзакції.
Я вважаю, що це було б тоді, коли ваша програма буде дуже складною, і багато людей розроблять її, з великою кількістю складних модулів, складної бізнес-логіки, і вона має спілкуватися з багатьма іншими програмами підприємств.
У будь-якому випадку, ви також можете розвиватися в Grails, який надає безліч приємних особливостей, багато полегшує розвиток і дозріває дуже швидко.
Ява гаразд, але якщо продуктивність не має вирішального значення, ви можете отримати ті самі результати, доклавши менших зусиль на інших мовах.
Java - це статично набрана мова та дешевша за інші статично набрані мови, що використовуються для веб-розробки, а саме C # та VB.net, якщо у вашої компанії немає підписки на MSDN. Статистично набрані мови корисні для середніх та великих проектів, складні правила домену та безліч резервних кодів, оскільки ви можете краще організувати свої класи, а IDE допоможуть вам знайти помилки у вашому коді.
З динамічно набраними мовами, такими як PHP, Python, Ruby, ваш розвиток буде набагато швидшим, але вам доведеться перевірити свій код набагато краще. Якщо у вас мало часу і грошей, і ваші вимоги змінюються дуже швидко, і вам не доведеться робити дуже складні обчислення, динамічні мови набагато краще.
Безпека
Основна причина, що великі компанії обирають Java над іншими рішеннями, полягає в тому, що вона вважається набагато більш безпечною.
Це головним чином тому, що його підтримує така велика компанія (зараз оракул).
Слід врахувати, що Java пропонує дуже високий рівень безпеки та чудову підтримку та аналіз (хоча це і є ціною).