Почему у Java есть центральная документация по API, но нет C ++? - PullRequest
6 голосов
/ 06 ноября 2011

Вопрос в значительной степени объясняет все это.Мне было интересно, почему у Java есть хорошая, организованная и централизованная документация по API, но определения библиотек C ++, кажется, разбросаны по всему Интернету?

Это потому, что Sun приложила некоторые усилия, чтобы сделать документацию по Java API легкой и доступной?Заранее спасибо.

Ответы [ 4 ]

10 голосов
/ 06 ноября 2011

То, что вы называете «хорошим, организованным / централизованным API» для Java, вероятно, является документацией официальной реализации Oracles. Реализации C ++ также имеют свою собственную документацию, например, реализация GNU хорошо документирована в http://www.gnu.org/s/libc/manual/ (часть C) и в http://gcc.gnu.org/onlinedocs/libstdc++/ (часть C ++; см. Раздел «API и исходная документация» ). Вы также сможете найти в библиотеке MSDN полную документацию по реализации Microsoft C ++.

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

С другой стороны, C ++ - это стандарт, реализуемый широким кругом поставщиков, и многие ресурсы документации даже не основаны на какой-либо конкретной реализации, а на самом стандарте. В конце концов, различные ресурсы C ++ в Интернете имеют тенденцию превосходить другие в некоторых областях. Например, cplusplus.com концентрирует хорошую документацию по <iostream>, <string> и темам для начинающих, в то время как документация реализации STL в SGI (http://www.sgi.com/tech/stl/) стала справочным ресурсом для STL, вероятно, из-за его полноты и очень хорошей организации.

3 голосов
/ 06 ноября 2011

C ++ имеет спецификацию языка и набор стандартных библиотек.

Java также имеет спецификацию языка, а также имеет набор стандартных библиотек.

Я не вижу принципиального различия между стандартами C ++ и стандартами Java, за исключением того, что Java также поставляется со стандартной реализацией (от Oracle, ранее Sun).

PS: По общему признанию, у Java есть стандартный API для GUI (Swing), а у C ++ нет. Но действительно ли вы хотите использовать такой «стандарт», как Windows MFC, за исключением альтернатив, таких как Qt?

2 голосов
/ 06 ноября 2011

Отчасти это связано с тем, что стандартная библиотека C ++ не так хорошо определена, как Java-эквивалент. Стандарт C ++ оставляет много места для реализаций, чтобы вести себя немного иначе в некоторых случаях, роскошная Java не предоставляет. Итак, для Java, когда у вас есть один хороший, качественный набор документов, все готово ... все, что вам нужно знать, прямо здесь. Но с C ++ документация STLPort не обязательно будет соответствовать, например, документации Dinkumware, и вы получите много разрозненной документации.

1 голос
/ 26 января 2015

Одной из причин является то, что C ++ не привязан к одному поставщику, поэтому он не централизован по умолчанию.

Другая причина заключается в том, что Java предоставила документирование комментариев как часть языка, а Javadoc был доступен с самого начала как единое целое.стандартных инструментов JDK.Это повлияло на доступность документации по API.Генерирование API doc всегда было естественным этапом в модели сборки Java.

C ++ - это отдельная история.Я встречал следующий комментарий Натана Майерса в basic_string.h реализации GCC.

Документация?Что это?

Только недавно Doxygen установил стандарт де-факто.Долгое время документирование комментариев было похоже на черную магию.Каждый проект опирался на свои собственные инструменты, и хотя некоторые проекты имели очень хорошие документы, эти инструменты не были доступны для общего пользования.Я помню, как люди просили Trolltech выпустить Qt инструмент документирования, но этого не произошло.

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