olegy123 писал(а):Видимо вы больших проектов не писали, где используется разнообразная информация, где легко потеряться даже в том, что недавно сами записывали.
Проект в 1.5 миллиона строк, это достаточно большой или как?
Используемый инструмент должен соответствовать решаемой задаче. Никто не спорит, что в целом структурированный файл лучше, как с точки зрения поддержания проекта, так и в случае необходимости быстрой правки в процессе отладки или эксплуатации. Поэтому в больших проектах для этих целей либо используется какая-то из готовых библиотек, либо пишется своя.
Кстати, если уж говорить об XML, то в FreePascal парсер XML более менее нормально заработал с кириллицей только в версии 3.0, когда допилили нормальную работу перекодировки строк и поддержку Unicode. А до этого момента приходилось кодировку постоянно самим руками шаманить.
olegy123 писал(а):Как раз я писал про "сохранения знаний" и там где нужно еще сохранить объекты их описание и связи - лучше XML пока не придумали(может быть JSON как более компактный вид XML).
Но они не подходят для частого применения. Там уже применяется SQL.
Существует масса структурированных языков описания данных помимо ХML. В той же промышленной автоматике и САПр давно и успешно применяются STEP и EXPRESS.
Также существует такая вещь, как бинарный XML, в котором вместо тэгов используются бинарные коды. Занимает заметно меньше места и парсится намного быстрее, чем текстовый формат. Но он только машинно читаемый, то есть, в обычном текстовом редакторе, как простой XML, вы его уже не исправите.
Что касается SQL, то я ещё раз повторяю, что это не структура хранения или даже описания данных! Это язык запросов к серверу реляционной СУБД. И если уж на то пошло, то хранить сложную структуру данных с большой и сложной иерархией объектов в реляционной СУБД не очень удобно, а в некоторых случаях даже нежелательно. Хотя, к явным преимуществам большинства SQL серверов следует отнести то, что при грамотном описании структуры данных, внутренних связей и ограничений, сервер сам будет поддерживать целостность связанных данных, чего в случае XML не будет никогда.