[CLOSED] Why QDoc and not Doxygen?
-
Since Doxygen is written in Qt, supports multiple languages including QML (via Doxyqml) and interfaces with Graphviz, why is QDoc used instead of Doxygen for Qt documentation? Doxyqml revisions are required to support some of the documentation commands that it can't handle, but this may be an easier and better route than updating and maintaining QDoc.
Thanks.
Steve
-
Reasons are mostly historical (qdoc was there before doxygen came into existence) and convenience: since Qt introduces a lot of non-standard stuff to C++ (and more: QML), it's easier to simply update and modify qdoc, than submit patches to Doxygen, which is a totally external project.
When Qt 5 was first announced (long before even the first alpha), the same discussion was opened among Qt developers. Various arguments (pro and contra) were raised, and the talking took quite a while, but in the end it was decided that: the effort to make the switch is too big (there is Qt Help, there is Qt Creator, compressed Qt format, Qt Assistant, online Qt documentation, etc. - a lot of places and hundreds of things that can go wrong), there could be problems in maintaining the system after the change. The team was mighty busy developing new features, finalizing Qt modularization, etc.
I gather that the general feeling is along the lines of "it would be great to see qdoc go away, and doxygen looks like a great replacement, but it's too risky to do the switch".
Now that Qt 5 has stabilised a bit, this could probably be talked about again. Since qdoc is not part of Qt DLLs, the binary and source compatibility does not apply to it, and technically (I think) it could be replaced even in a minor release. But this is really a huge task and would require lots of people to collaborate, including doxygen developer(s). I would be glad to help, to be honest :D I am a great fan of doxygen.
-
Thanks for your comments. I don't know what's required to patch Doxygen, especially for C++, but is anything required for QML other than to clone and update "Doxyqml":https://github.com/agateau/doxyqml?
Thanks.
Steve
-
I am not familiar with the exact details, but IIRC somebody did do some research, and there is a lot that needs to be done (mostly some hardcore internal Qt stuff). Mind you, that discussion took place 2 years ago, a lot might have changed since then (for one, Doxyqml was not available back then).
-
Hehe, thanks. You tend to start threads that are interesting for me, so I'm replying happily :)