[О блоге] [наверх] [пред] [2023-07-25 09:20:55+03:00] [8d9138fe39d78b56fa27a0e851dda729d58b8573]
Темы: [hate]

Отношение к .docx

https://fsfe.org/activities/msooxml/msooxml.en.html
https://fsfe.org/activities/msooxml/msooxml-interoperability.en.html
https://www.fsf.org/campaigns/opendocument/copy_of_index_html
На фоне кучи Word-овых документов на сайте Госдумы
(2312210dcbc3da3381b5e07f811aeef7a5fb1a36), вспомнилось что как-то меня
попросило начальство один документ, написанный в Texinfo для
генерирования набора HTML-ек с картинками, отправить в .docx формате. Не
просто описать все мысли и эмоции по этому поводу, ибо, считаю, что нет
ничего более отсталого и, я бы сказал, унизительного чем использовать
подобный формат и софт.

* Ну не может образованный технарь в здравом уме делать осознанный
  техничный выбор в сторону WYSIWYG решения. Вот выбирать Microsoft
  Windows технарь может: эта платформа для всяких домохозяек и на софте
  для неё можно зарабатывать уйму денег, поэтому это выбор платформы для
  profit, как минимум. Но к Word то, конечной программе, этот аргумент
  (про profit) не применим
* Решение, в котором невозможно использование текстового редактора
  (уж извините, но пока не придумано ничего лучше Vim или Emacs, даже
  хоть как-то на милю к ним приближённого) и систем контроля версий?
* Я считаю что выбрать Word осознанно может только тот, кто не ушёл в
  своём развитии и знаний о прикладном ПО дальше чем 1990-е, где тьма
  нелегальных ("пиратских") копий Windows+Office распространялась, с
  целью подсаживания стран на vendor-lockin решение от Microsoft. Да, в
  нашей стране ПК то и появились в это время, как и люди с ними
  работающие, то прошло уже почти 30 лет с тех времён!
* Это абсолютно сродни тому, что человек бы использовал печатную
  машинку: на ней же тоже можно сделать документ? Сродни тому, что
  человек писал бы код без какой-либо системы контроля версий, даже хотя
  бы RCS. Знаю что таких людей много, но это говорит *только* об их, так
  сказать, необразованности, либо о необразованном дебилизме (ибо только
  всем в округе вредит) руководителей которые форсируют не применять VCS
* Все эти люди могут быть умнейшими человеками, крутейшими специалистами
  в своей области, но это не отменяет что они могут продолжать
  использовать печатные машинки или чертить от руки. Но вот только зачем
  от окружающих то этого требовать? CAD системы имеют далеко не нулевой
  порог входа и если надо быстренько раз в полгода небольшой чертёжик
  нарисовать, то запросто это проще сделать от руки безусловно. Но
  человек который целыми днями только и делает чертежи -- будет
  использовать куда более навороченный (CAD) инструмент
* Вот и Word создавался для домохозяек и секретарш, чтобы они могли, как
  я это называю, служебные заметки печатать. Для их задач это более чем
  достаточно с минимальным порогом входа. Вот только не бывает
  инструментов одинаково пригодных для использования профессионалами и
  для полных любителей. Не бывает такого в принципе, ни в одной области.
  И если я умею CAD или roff/TeX, то зачем мне любительские инструменты?
* Всё вышеописанное я на самом деле применяю не только к Word-у, но и к
  любом другому WYSIWYG, такому как Open/LibreOffice. Домашним
  пользователям достаточен был бы BASIC на их компьютере (как в ZX
  Spectrum), но зачем профессионального программиста то заставлять его
  использовать?

Но чаще у меня возникает другой вопрос, на который никто так и не дал
мне вменяемого ответа: конечному человеку который будет читать документ,
какая разница в каком формате он будет? Хорошо, я понимаю почему не
HTML, ибо он не очень красиво и просто может быть распечатан, а читать
A4 страницы распечатанные, действительно, может быть куда удобнее. Но
для печати итогового документа вообще то придуманы форматы типа
PostScript (ok, про него можно забыть) и PDF. PDF, грамотно сделанный
(PDF/A), откроется везде и распечатается as-is везде. И его можно
сделать десятками инструментов, кому какой нравится.

.docx же, даже на самих Word-ах открывается по разному. Более того, я
даже видел что на одной и той же версии Word он может выглядеть по
разному (версия ОС, настройки ОС?)! Не говоря о том, что он заведомо
наверняка не будет одним и тем же в LibreOffice и Microsoft Office. Так
зачем же хотеть этот формат (ну кроме 90-х в голове и "я так делал 30
лет назад и мне нормально")? HTML/whatever точно везде по разному будет
выглядеть, но зато точно откроется, потерь информации не будет, богатый
выбор инструментария. PDF/A точно везде одинаково будет выглядеть и
везде откроется, не малый выбор инструментария. .docx часто будет
выглядеть по разному, ограничен по сути только одной программой и
зачастую определённой (не более старой) её версией, как и инструментарий
для создания.

Единственный аргумент который вспоминаю: а если противоположная сторона
захочет внести правки? А для этого есть исходный код. Вы программу тоже
предоставляете всегда на интерпретируемом языке, чтобы принимающая
сторона могла поправить? Давайте в PostScript документы делать: их тоже
люди руками правили. А говорить о серьёзной кооперативной правке
документа/кода без возможности использования системы контроля версий,
это опять же возврат к тому как некоторые люди разрабатывали софт
прежде: обменивались готовыми tarball и вручную делали merge. Без
комментариев, так как сейчас 2023-ий год.

И я ещё пока молчал о том, что .docx это только про одну программу. Сам
я лично это не проверял, но много источников говорят о том, что в OOXML
есть возможность проприетарных расширений и вставки бинарных данных
(implementation-specific). И MS конечно же активно их использует. Именно
поэтому документы сделанные в MS не могут быть гарантированно открыты
где бы то ни было ещё, ибо это закрытые implementation-specific
proprietary блобы. Есть несколько стандартов для OOXML: Transitional и
Strict версии, как минимум. И Strict MS Office не использует по
умолчанию вовсе.

Более того, в РФ OOXML не является стандартом, тогда как для Open
Document Format (ODF) есть ГОСТ. То есть, .odt это по ГОСТ и очень
странно видеть от людей госучреждение желание видеть .docx (компьютеры с
1995-го не обновлялись, где нет PDF просмотрщика из коробки даже?). Но
MS Office ODF не умеет писать, не знаю насколько точно умеет их для
просмотра открывать. Но если для записи MS Office всё равно с ГОСТовым
.odt нельзя использовать, то, опять же, почему не PDF использовать?

То есть, .docx это только про ровно одно семейство программ (OOXML
де-юре может и имеет ISO стандарт, но де-факто он не используется
никем), которое проприетарное и закрытое. Более того, написанное
вражескими странами и это ни при каких обстоятельствах нельзя поэтому
подключать к Интернету. Заставлять гражданина РФ использовать .docx, а
значит и Word, а значит и Windows -- призывать к использованию
шпионского закрытого проприетарного ПО вражеского государства, которое
уже долго и упорно делает многое, чтобы нас физически истреблять. Не
хорошо, недопустимо.

Нарушение ГОСТ, нарушение политики госбезопасности, противостояние
свободному ПО и свободным/открытым форматам, частая невозможность видеть
документ одинаково на разных компьютерах. Ну и плюс это просто класс ПО
для создания служебных записок. Что-то серьёзнее в нём делать? Я видел
как Word тормозит на компьютерах с i7/64GB RAM на документах всего в
пару сотен страниц. Я у себя на компьютере отключал даже "git status"
вызываемый при отображении строки приглашения командной оболочки, ибо
пара сотен миллисекунд это ОЧЕНЬ заметно и ДИКО раздражает. А Word на
секунды может задумываться при промотке страниц. Это просто, опять же,
намекает на то, что он не предназначен для документов даже такого
размера, только для небольших служебных заметок или объявлений по
домохозяйству.

И вот какого мне было реагировать на просьбу сделать .docx? Texinfo
может выдать Docbook. Начался поиск инструментов которые бы Docbook
могли бы в OOXML перевести. Тут уж пофиг как это будет выглядеть, лишь
бы как-нибудь. С полдюжины программ перепробовал, но или теряют массу
*важного* форматирования, или кириллицу не могут, или картинки не
вставляют (из внешних PNG файлов). В общем, только Pandoc смог ничего не
потерять. Но с ним конечно большая засада: он на Haskell, который штатно
не предоставляет никакой документации как его bootstrap-нуть. Видел в
GNU Guix что они умеют делать для него bootstrap, но это наверное неделю
у меня заняло бы повторить на основе их файлов сборки. Так что на
отдельном физическом компьютере, в виртуальной машине я установил Devuan
и бинарь pandoc поставил.

Но меня больше смущало другое: я (уже) почти всю жизнь Unix-оид.
Программист, который хоть сколько-то современным инструментарием умеет
пользоваться (без VCS жить не могу). Я окончил технический институт,
поэтому, как минимум, знаю (La)TeX. Да, Texinfo в LaTeX тоже не
тривиальная задача перевести, насколько помню -- проще руками .tex
сделать с нуля, копируя текст, но это хотя бы отличную PDF может
сделать. А меня просят опуститься до уровня печатной машинки. Верю что
разочаровались во мне как в программисте, ибо мой КПД в этом году ниже
плинтуса, но TeX же я мог вспомнить то.

    [оставить комментарий]
    комментарий 0:
    From: David Rabkin
    Date: 2023-08-05 14:56:37Z
    
    Ха, похожие проблемы. Только у меня документ в AsciiDoc, а на той
    стороне должны были правки делать. Я сначала послал PDF для просмотра
    и AsciiDoc для правок. Просят DOCX. И это программисты, турецкие.
    Создать-то я DOCX могу, тоже с Pandoc, а вот открыть как? Закачивал в
    Гугл драйв, открывал в Гугл док. Правки они сделали, я глазами и
    руками переносил их в оригинальный AsciiDoc. Хоть отдельным коммитом
    получилось, и то дело. На что только не идешь ради денег (зарплаты).
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2023-08-06 12:42:49Z
    
    *** David Rabkin [2023-08-05 17:54]:
    >Ха, похожие проблемы. Только у меня документ в AsciiDoc, а на той
    >стороне должны были правки делать. Я сначала послал PDF для просмотра
    >и AsciiDoc для правок.
    
    Тоже разумный формат и подход. На одной работе из Asciidoc, перегоняя в
    Apache FOP создавали PDF-ки готовый для печати книжечек-буклетов с
    документацией к серверу.
    
    >Просят DOCX.
    
    Просто ужас! Меня то хотя бы не программисты (ну или я не знал что они
    программисты) просили о нём.
    
    >Создать-то я DOCX могу, тоже с Pandoc, а вот открыть как?
    
    Я для проверки на ещё один отдельный компьютер загружал .docx, в котором
    вызывал LibreOffice экспортирование в PDF, ну и смотрел на результат.
    Безусловно это вообще никаких гарантий что оно откроется или вообще или
    также на MS Office, но хоть что-то.