2017-02-13 18 views
0

Почему Java не предоставляет «стандартную» реализацию для всех API? Например, JPA, XML, Transformers и многое другое!Почему Java предоставляет спецификацию вместо реализации

Не было бы удобнее, если бы была реализация, и если людям не нравятся, то они могут полагаться на других библиотеках, которые реализуют интерфейсы

+1

Не уверен, что стратегия компании действительно по теме ... – AxelH

+0

Что такое точка Java? Чтобы быть перекрестно-пластинчатым, для чего наилучшим решением, пусть каждая пластина формирует собственный API, используя предоставленный интерфейс. Представьте, что JDBC со «стандартной» реализацией приветствуется в аду;) – AxelH

+0

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

ответ

3

ВС сделали обеспечивают эталонные реализации для многих из их спецификаций (например, Glassfish). Но не все.

Компания Sun была первой компанией - они продавали серверы.

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

JPA является интересным, поскольку реализации объектно-реляционного сопоставления, такие как TOPLink, предшествовали спецификации на многие годы. Очереди сообщений существовали до написания JMS.

+0

Мне нравится «Часть истории» здесь. Я полагаю, что Oracle по-прежнему в основном является поставщиком аппаратного и программного обеспечения для баз данных. – AxelH

0

Я не уверен точно, что вы здесь задаете, но, например, эталонная реализация для JPA - это EclipseLink, а GlassFish предоставляет эталонные реализации для JAX-WS и JAXB.

0

В зависимости от того, как вы его видите. Например, Джерси - это реализация JAX-RS, но она также инициирована/разработана корпорацией Oracle. https://en.wikipedia.org/wiki/Project_Jersey. Так технически они разрабатывают как спецификацию, набор интерфейсов и т. Д., Так и одну ее реализацию.