Здравствуйте, Alexander G, Вы писали:
AG>Почему смирились с этим ужасом, тогда как можно ведь JavaDoc (Doxygen, etc) или даже нормальные комментарии?
Потому, что это единственный вид комментариев поддерживаемый компилятором. И так как он поддерживается без дополнительных утилит из коробки, то он и используется. Места для голосования и предпочтений тут нет.
Re: Почему прижились XML-комментарии для документации кода
Здравствуйте, Alexander G, Вы писали:
AG>Почему смирились с этим ужасом, тогда как можно ведь JavaDoc (Doxygen, etc) или даже нормальные комментарии?
Посмотри, как это в Go сделано. Пишешь нормальные коментарии, без какой-либо особой разметки, а специально обученная утилита превращает их в красивую документацию.
Re[2]: Почему прижились XML-комментарии для документации кода
Здравствуйте, Pzz, Вы писали:
Pzz>Посмотри, как это в Go сделано. Пишешь нормальные коментарии, без какой-либо особой разметки, а специально обученная утилита превращает их в красивую документацию.
Ну вот в Go хорошо сделано.
В духе doxygen / JavaDoc тоже приемлемо — получается читабельный комментарий, без большого количества лишнего мусора.
Я не понимаю, зачем уже после изобретения JavaDoc было делать этот шаг назад с использованием xml.
Русский военный корабль идёт ко дну!
Re: Почему прижились XML-комментарии для документации кода
Здравствуйте, Alexander G, Вы писали:
AG>В духе doxygen / JavaDoc тоже приемлемо — получается читабельный комментарий, без большого количества лишнего мусора.
AG>Я не понимаю, зачем уже после изобретения JavaDoc было делать этот шаг назад с использованием xml.
Я думаю маркетологи виноваты. В то время XML пихали где надо и где не надо.
Re[2]: Почему прижились XML-комментарии для документации кода
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Alexander G, Вы писали:
AG>>Почему смирились с этим ужасом, тогда как можно ведь JavaDoc (Doxygen, etc) или даже нормальные комментарии?
Pzz>Посмотри, как это в Go сделано. Пишешь нормальные коментарии, без какой-либо особой разметки, а специально обученная утилита превращает их в красивую документацию.
А чем это отличается от JavaDoc? Кроме того, что в Го надо // использовать, а в JavaDoc /** .. */? Все остальные конструкции в JavaDoc не являются обязательными. Не хочешь — не используй, будет как в Го. А хочешь — используй, будет лучше. В JavaDoc в доки можно вставить кусок программы как пример использования.
Здравствуйте, bzig, Вы писали:
B>А чем это отличается от JavaDoc? Кроме того, что в Го надо // использовать, а в JavaDoc /** .. */? Все остальные конструкции в JavaDoc не являются обязательными. Не хочешь — не используй, будет как в Го. А хочешь — используй, будет лучше. В JavaDoc в доки можно вставить кусок программы как пример использования.
Примеры берутся из файла example_test.go, где они написаны просто как код на Go. И сами, автоматически, попадают на нужное место. В процессе их еще и проверят, что они компилируются.
Re[4]: Почему прижились XML-комментарии для документации кода
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, bzig, Вы писали:
B>>А чем это отличается от JavaDoc? Кроме того, что в Го надо // использовать, а в JavaDoc /** .. */? Все остальные конструкции в JavaDoc не являются обязательными. Не хочешь — не используй, будет как в Го. А хочешь — используй, будет лучше. В JavaDoc в доки можно вставить кусок программы как пример использования.
Pzz>В Go документация делается из обычных комментариев. Ему все равно, // ты напишешь, или /* ... */
Я к тому, что в Явадоке тебя ХМЛ не заставляют использовать. Можно писать документацию и в стиле Го. А вот в Го писать в стиле Явадока не выйдет.
B>>а в коде — нет. Т.е. его с какими-то приседаниями туда вставляли B>>https://golang.org/src/strings/strings.go?s=13714:13743#L544
Pzz>Примеры берутся из файла example_test.go, где они написаны просто как код на Go. И сами, автоматически, попадают на нужное место. В процессе их еще и проверят, что они компилируются.
В Яве я могу перейти к сорцам, посмотреть код, потом доки и примеры, всё в одном месте. А тут придётся между файлами прыгать.
Re[2]: Почему прижились XML-комментарии для документации кода
По комментариям вида /** ... */ генерируется документация к методам. Можно документировать конкретные параметры (через "@param имя-параметра"), возвращаемое значение и т.д.
В то время, когда создавались эти языки/инструменты, распространённых альтернатив не было. XML был "горячим", все его любили, развивали, интернет взрывался, там тот же XML (HTML). В общем-то очевидно, почему в старых языках был XML. Markdown придумали в 2004 году, популярным он стал ещё позже. Java придумали в 1995 году, C# в 2000 году, Doxygen в 1997 году.
AG>Из-за синтаксического оверхеда xml такие комментарии теряют выразительность.
Предполагается, что ты их читаешь в отрисованном виде. Ты же не читаешь исходный текст сайтов. Idea показывает отрисованную документацию по нажатию кнопки. Другие IDE, думаю, могут так же.
В современных языках обычно используют другие подходы. Rust, Swift, Kotlin используют Markdown. Go вроде вообще от разметки почти отказался. Т.е. да, ты прав, XML оказался не самой лучшей идеей и от него ушли в сторону Markdown. Думаю, в будущем и в старых языках введут альтернативную разметку.
Здравствуйте, bzig, Вы писали:
B>Я к тому, что в Явадоке тебя ХМЛ не заставляют использовать. Можно писать документацию и в стиле Го. А вот в Го писать в стиле Явадока не выйдет.
На самом деле не можешь. Без <p> javadoc всё в одну строчку схлопнет, например. Ну разве что ты javadoc в принципе не используешь, а читаешь документацию исключительно в IDE путём перехода к реализации.
Re: Почему прижились XML-комментарии для документации кода
Здравствуйте, Alexander G, Вы писали:
AG>Почему смирились с этим ужасом, тогда как можно ведь JavaDoc (Doxygen, etc) или даже нормальные комментарии?
Уже лет 10 точно (дольше, но не вспомню с какого момента) пишу комментарии Doxygen. XML в каком-то микрософте, как ты сказал, но микрософт же никогда не умел программное обеспечение разрабатывать Хотя местами делает это довольно успешно, чего уж.
Re: Почему прижились XML-комментарии для документации кода
Смешной случай с XML–комментариями. Совсем недавно в Apple залатали много лет существующую эпичнейшую бажилищу, ломающую XML–парсер невалидными комментариями определенного вида. Причем, в критичном с точки зрения безопасности месте: с помощью XML–коммента можно было, до iOS 13.5, обходить sandbox из любой непривилегированной приложеньки
Дыра, ИМХО, настолько хрестоматийная, что заслуживает памятника и внесения в анналы истории для обучения потомков: