copperspice / doxypress

Documentation generator using annotated sources for multiple computer languages
https://www.copperspice.com/
GNU General Public License v2.0
150 stars 14 forks source link

Provide exact difference with Doxygen #40

Closed eugene-kulak closed 4 years ago

eugene-kulak commented 4 years ago

I think I looked everywhere, but I can't find anything telling what exactly the difference between DoxyPress and Doxygen. Improved this and that is not an answer. I think it should be in the first line of README. Thanks

bgeller commented 4 years ago

Thank you for asking about the DoxyPress application. There are so many differences which separate the two programs so listing everything on one line would not be practical or even possible.

DoxyPress was derived from Doxygen 1.8.8 because we were unable to document the CopperSpice libraries. Just a few of the issues we encountered included omitted template parameters, major html problems, page sorting issues, inability to document macros, and not understanding the current constructs of modern C++.

Starting this project was not done on a whim but rather to take the existing program and expand on the functionality. We wanted to provide modern C++ support, better html support, as well as continued support of other languages and outputs. We also found the application to set up a project file a bit outdated and hard to use.

One of the key issues was using a very outdated and unsupported version of Qt 2 for not only the GUI but to handle strings and containers. Our choice to use the CopperSpice was obvious and allowed us to modernize the program considerably. We also have taken time to remove issues like undefined behavior, poor memory usage, internal class inheritance problems, misleading warnings, etc.

One significant issue is the ability to use clang for parsing your source code. The default is a lex parser which is faster but requires that every construct (like constexpr, override, and trailing return types) must be added explicitly. Doxygen uses clang in a limited way to decipher a few things like some template parse errors. Their program does not currently have an option to use clang for the entire parsing process.

Overall our team believes DoxyPress should continue to evolve as a modern application and leverage the power of C++17 and beyond. We have a very strong C++ team and welcome other developers who want to see the product evolve and continue to be improved.

Here is a list of some places you can find information. The last two are links to videos we have released on DoxyPress. If you have specific questions regarding the program, something you are looking for, how to contribute, or technical support, please feel free to post or email the team directly.

Brief overview https://www.copperspice.com/documentation-doxypress.html

DoxyPress Timeline https://www.copperspice.com/docs/doxypress/timeline.html

Why DoxyPress (video) https://www.youtube.com/watch?v=jAYkSghoBfc

Using DoxyPress (video) https://www.youtube.com/watch?v=1nz7mZabivU