Подтвердить что ты не робот

Почему Java часто используется для корпоративных приложений?

Как новичок в Java, мне интересно: из всех языков в мире, почему Java часто используется для корпоративных приложений? Что делает это таким образом по сравнению с другими языками? Будет ли это продолжаться так в ближайшие годы?

Буду признателен за ваши идеи. Спасибо заранее:)

4b9b3361

Ответ 1

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

Некоторые утверждают, что на самом деле в экосистеме Java существует слишком много вариантов, и что разработка корпоративного программного обеспечения на Java требует от разработчиков принятия большого количества решений, которые могут иметь далеко идущие последствия для конечного продукта для улучшения или хуже. Это, вероятно, помогло продвинуть популярность альтернатив, таких как .NET, которая имеет репутацию предлагая меньше вариантов, но с преимуществами более хорошо интегрированного стека приложений и набора инструментов. Какое направление вы выбираете, я думаю, зависит от того, стоите ли вы больше ценности на "свободе выбора" или "свободе выбора".

Ответ 2

Существует множество причин, по которым крупная компания (тип для корпоративных решений) выбирает Java. Примечание. Я не говорю, что все эти причины верны или действительны. Но актуальным является то, что они кажутся действительными для технического директора в MegaCorp.

Кривая обучения

Java - это простой язык без большой гибкости других членов семейства C, это сокращается в обоих направлениях, но это рассматривается как простой язык для использования армией программистов. В проектах предприятия, как правило, задействовано большое количество разработчиков (правильно или неправильно), и гораздо проще получить разработчика на минимальном уровне компетенции в Java, чем на С++. У вас также есть целое поколение выпускников, которые, вероятно, были в основном обучены на Java.

Выбор

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

Независимость от платформы

Java пишет один раз, запускает (ну, отлаживает) всюду. Sun активно поощряет открытые стандарты, которые позволяют нескольким вендорам внедрять свои решения. Эти стандарты дают клиенту комфорт, который они могут перенести от одного поставщика к другому, если данный поставщик идет или начинает взимать больше. Конечно, реальность такова, что каждый поставщик делает все возможное, чтобы предоставить некоторые функции "добавленной стоимости", которые очень хорошо связывают с ними клиентов.

Зрелость

Он длился довольно долго, запустил много серверов. Если ваше веб-приложение должно быть "6 сигма" или аналогичным, и вы являетесь техническим директором MegaCorp, вы не будете так любезно относиться к Джо разработчику, желающему сделать это в RoR.

Timing/Маркетинг

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

Инерция

Крупные корпорации продвигаются вперед в ледяном темпе (многие из них все еще используют Java 1.4 через пять лет после выпуска 5), поэтому, как только они выбрали Java, для перехода на другую платформу требуется огромная инвестиция. С каждым днем, который проходит, они запускают больше Java, которые необходимо будет перенести. Большинство из этих компаний не являются главным образом магазинами кодирования, поэтому очень сложно продать, чтобы убедить бизнес потратить несколько десятков миллионов, переписывая всю свою базу кода без каких-либо непосредственных преимуществ для бизнеса.

Ответ 3

Еще одна причина может заключаться в том, что Sun позаботилась о том, чтобы поддерживать обратную совместимость Java. Подавляющее большинство Java-кода можно запускать на последней версии JVM без проблем. Это достижение, учитывая возраст Java. С другой стороны, вы можете утверждать, что Java не изменила все это за все эти годы.

Предприятиям нравится стабильность на платформе.

Ответ 4

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

Кроме того, они продвигали инструменты корпоративного уровня для него, с точки зрения обмена сообщениями, управления транзакциями и других вещей, о которых беспокоит enterpise.

Прежде чем Java, на уровне уровня обычно делались на С++ (было много исключений (кто-нибудь помнит PowerBuilder?), но это было правилом), а Java хорошо подходит как преемник С++ для бизнес-приложений, где этот вид управления памятью не стоит платить.

В дополнение ко всему этому сам язык говорит с предприятиями об избежании труднодоступных конструкций, которые могут действительно испортить базу кода, такую ​​как перегрузка оператора. Приложения уровня предприятия, как правило, обрабатываются многими разными руками, не все из которых являются лидерами линейных программистов, а наличие защитных сетей для предотвращения стрельбы в ногу является желательной вещью.

Он также появился в нужное время. Новая парадигма (это было задолго до того, как существовала .NET), которая обещала объединить нескольких поставщиков в способность конкурировать с Microsoft, которая получила на борту подобных IBM и Oracle, что заполнило новую дыру, которая стала новым требованием для разработки веб-приложений, где С++ уже не был очевидным выбором.

Ответ 5

Я не должен говорить об этом, но...

Настоящая причина в том, что он назван в честь кофе!

Ответ 6

Бизнес - это время, деньги и возможности.

Использование Java означает, что количество ошибок в коде уменьшается, просто потому, что указатели сложны. Вы используете GC и мгновенно удаляете весь класс ошибок из вашего кода.

Во-вторых, Java был одним из первых языков, поставляемых с предварительно написанной библиотекой функций, которые действительно охватывали многие фазы разработки. Это ограничило то, как все было сделано, но это означало, что люди могли быстрее учиться, располагали больше инструментов и располагали большим набором библиотек для работы, таких как сеть, графический интерфейс, веб-интерфейс, шифрование и т.д. Java сама по себе как язык на самом деле не был особенным, но Java и Java API были.

Итак, если у вас есть язык, на котором меньше ошибок и больше инфраструктуры бесплатно, то вы получите больше кода за меньшее время. Конечно, код не вылечивает рак, он не так быстро, как код на С++, для достижения той же задачи, но он достигнет цели бизнеса для получения приложения.

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

Ответ 7

Лично я считаю, что одной из основных причин является кросс-платформенная проблема.

Java-программы, написанные "правильно" (без предположений базовой операционной системы), могут работать на любой JVM. Это означает, что вы не привязаны к определенной платформе, в отличие от .NET, который женится на вас на Windows.

Я видел, как Java-код запускается на мэйнфреймах, маршрутизаторах Linux, внутри базы данных Oracle и, естественно, на ПК.

Ответ 8

Это дешево, RAD, кросс-платформенный и разработчики изобилуют.

Ответ 9

Разработка на С++ слишком медленная и дорогостоящая, и .NET не существует достаточно долго. Помните, что инерция бизнеса огромна.

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

Ответ 10

Также для клиент-серверных приложений у вас есть множество вариантов для серверов приложений с производительным качеством, которые имеют один и тот же интерфейс J2EE (IBM WebSphere, BEA Weblogic, JBoss). В качестве альтернативы вы можете использовать Spring Framework на любом сервере, таком как Apache Tomcat, который соответствует API Servlet, если вы уверены, что вам не нужны EJB. В отличие от .NET, трудно найти варианты относительно серверов приложений.

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

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

Ответ 11

Другие ответы хороши. Нужно добавить две вещи: корпоративные стандарты и эффект группового выигрыша. Если вы хотите создать корпоративную систему, вам нужно иметь довольно сильный аргумент в пользу того, что вы не используете устаревшие стандарты вашей компании, и это в основном JavaEE. И если вам нужен ресурс проекта, гораздо легче набрать Java-программиста, чем, скажем, Erlang.