2009-07-29 2 views
37

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

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

+2

здесь (http://stackoverflow.com/questions/213757/why-do-people-use-java) - некоторые сильные комментарии к популярности Java - не совсем ответы с точки зрения «предприятия», но они уместны. – akf

+3

Я бы сказал: 1. безопасность 2. стабильность 3. надежность 4. масштабируемость 5. независимость ОС 6. независимость другого поставщика 7. использование производительности и ресурсов 8. широкое признание академического общества –

ответ

39

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

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

+4

Я думаю, что «свобода выбора» на самом деле не понятна. Например, я знаю много веб-фреймворков, и я не выбрал ни одного из них. ваш босс принимает решение, и каждая компания использует другой набор рамок. – IAdapter

+8

+1 для «свободы выбора» или «свободы выбора» –

+0

.NET предлагает сторонние альтернативы, люди просто выбирают встроенные API, потому что чаще всего они работают очень хорошо и имеют поддержку поставщиков. Java в первую очередь выбирается над .NET, чтобы оставаться кросс-платформенной, что важно. – Greg

2

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

+0

Это! Как технический директор, я выбираю Java, потому что я могу найти гораздо более дешевый труд, чем Ruby, C++ и т. Д. Хорошее программное обеспечение всегда будет отставать от программиста, о котором большинство программистов не думает.Они полагают, что они всегда будут там, чтобы поддержать своего ребенка. –

2

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

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

+1

Я не думаю, что это справедливо, чтобы сказать: «.NET не был достаточно долго». У .NET много возможностей для принятия в корпоративном мире. –

+0

C++ слишком медленный? Я бы попросил отличиться (как с точки зрения написания C++, так и с его скоростью выполнения). – Shane

+5

C++ работает очень быстро, но ваш средний разработчик сможет быстрее разрабатывать надежные приложения на Java. Это простой вопрос, для чего язык разработан и оптимизирован. –

8

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

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

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

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

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

2

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

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

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

+0

Это связано с прочностью спецификаций Sun. –

7

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

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

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

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

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

23

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

Learning Curve

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

Выбор

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

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

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

Зрелость

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

Timing/Маркетинг

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

Инерция

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

9

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

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

2

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

3

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

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

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

+0

Да, женится на вас. –

7

я не должен говорить это, но ...

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

Смежные вопросы