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

nvarchar столбец может хранить любые данные Unicode. varchar столбец ограничивается 8-разрядной кодовой страницей. Некоторые люди думают, что varchar должен использоваться, потому что это занимает меньше места. Я полагаю, что это не корректный ответ. Несовместимости кодовой страницы являются болью, и Unicode является средством исправления для проблем кодовой страницы. С дешевым диском и памятью в наше время, нет действительно никакой причины напрасно тратить время, слоняясь без дела с кодовыми страницами больше.

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

, Если Вы взаимодействуете через интерфейс с приложением, которое использует только ASCII, я все еще рекомендовал бы использовать Unicode в базе данных. ОС и алгоритмы сопоставления базы данных будут работать лучше с Unicode. Unicode избегает проблем преобразования при взаимодействии через интерфейс с другой системы. И Вы будете готовиться к будущему. И можно всегда проверять те данные, ограничивается 7-разрядным ASCII для любой унаследованной системы, которую необходимо обслужить, даже при пользовании некоторыми преимуществами полного устройства хранения данных Unicode.

41
задан alimango 29 July 2009 в 02:29
поделиться

11 ответов

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

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

41
ответ дан 27 November 2019 в 00:18
поделиться

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

Learning Curve

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

Choice

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

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

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

Зрелость

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

Timing / Marketing

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

Инерция

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

24
ответ дан 27 November 2019 в 00:18
поделиться

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

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

9
ответ дан 27 November 2019 в 00:18
поделиться

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

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

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

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

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

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

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

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

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

8
ответ дан 27 November 2019 в 00:18
поделиться

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

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

8
ответ дан 27 November 2019 в 00:18
поделиться

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

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

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

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

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

7
ответ дан 27 November 2019 в 00:18
поделиться

Это дешево, RAD, кроссплатформенность и множество разработчиков.

2
ответ дан 27 November 2019 в 00:18
поделиться

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

2
ответ дан 27 November 2019 в 00:18
поделиться

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

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

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

2
ответ дан 27 November 2019 в 00:18
поделиться

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

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

2
ответ дан 27 November 2019 в 00:18
поделиться

$. Каждый аналогична.

Она позволяет вам перебирать массивы с помощью функции обратного вызова, где у вас есть доступ к каждому элементу:

var arr = [ "one", "two", "three", "four", "five" ];


$.each(arr, function(index, value) {
  // work with value
});

Может быть, полезно знать,

3
ответ дан 27 November 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: