Ну да ладно, не будем о грустном.
Для первого поста почти что за полгода у меня сегодня весьма узкая и скорее всего мало кому интересная тема: изображение математических формул в online-документах.
Собственно, это один из тех забавных случаев, когда о каком-то событии совершенно неожиданно узнаёшь только спустя весьма продолжительное время, вот например в данном случае, почти что спустя десятилетие: в конце 2013 года разработчики браузера Chrome объявили, что более не планируют поддерживать в своём браузере Web-стандарт MathML.
О чем здесь речь?
Собственно говоря, очевидно, что если у нас есть некий универсальный формат для представления текста и разного рода графики (ну то есть, HTML), он должен был бы в идеале предоставлять какие-то возможности для включения математических формул (помимо использования вставленных картинок, как оно и делалось в ранние годы интернета и как и сейчас приходится делать в ЖЖ/DW).
Неудивительно поэтому, что разработка встроенного формата MathML началась стазу же, как только вообще устаканилось понимание, что интернет требует неких согласованных стандартов, и как только XML утвердился как универсальный формат для текстового представления любых структурированных документов; ну то есть, в конце 90-х.
MathML 1 was released as a W3C recommendation in April 1998 as the first XML language to be recommended by the W3C. Version 1.01 of the format was released in July 1999 and version 2.0 appeared in February 2001. […] Version 3 of the MathML specification was released as a W3C recommendation on 20 October 2010 […] The Second Edition of MathML 3.0 was published as a W3C Recommendation on 10 April 2014. The specification was approved as an ISO/IEC international standard 40314:2015 on 23 June 2015.
Итак, прошло четверть века; срок, прямо скажем, немаленький с точки зрения интернет-технологий, чтобы не сказать огромный. Ну и что мы имеет сегодня?
Совершенно удивительным образом, почти ничего. Стандарт пребывает в каком-то странном состоянии между жизнью и смертью.
Вот есть вроде бы вполне детальная страница MathML Test Suite 2.0, находящаяся не где-нибудь, а прямо на официальном сайте World Wide Web Consortium w3.org. Надо заметить, сама страница при этом выглядит так, как будто была сделана каким-то студеном лет 15 назад и с тех пор ни разу не обновлялась, ну да ладно.
При попытке открыть эту страницу в разных браузерах сразу же выясняется, что Firefox рисует все формулы весьма точно и профессионально, Safari … ну…. вроде бы поддерживает всё что нужно, но полное ощущение, что это сделано опять же каким-то студентом между делом, кое-как, «чтобы было», и больше это никто никак не проверял и не чинил.
Что же до браузера Google Chrome, они добавили поддержку MathML в 24-й версии, в начале 2013 года. А в 25-й
версии, в марте того же года, убрали.
Что же собственно случилось?
Честно говоря, непонятно. Разработчики, со существу, сослались на то, что математические формулы никому не нужны, а если вдруг понадобятся, то всегда можно использовать популярную JS-библиотеку MathJax. Что звучит не слишком убедительно, потому-то, во-первых, речь идёт об официальном стандарте W3C, а зачем нужны стандарты, если каждый будет решать, нужно это или нет? Ну и потом, использование JS не везде возможно (например, это никак не помогает в ЖЖ/DW) и не всегда вполне оптимально.
При этом, что интересно, в базе данных багов Chrome есть один из самых ранних багов, за номером 666 6606, Missing MathML implementation. Баг не закрыт, и активное обсуждение идёт до сих пор, то есть уже 13 лет. Как я понимаю, сейчас считается, что реализация поддержки MathML блокирована аж 30 другими багами (самый старый из которых 6-летней давности). Ну то есть, рано или поздно мы видимо дождёмся реализации MathML в Хроме. В 30-х годах? 40-х? Кто знает. Будем ждать и надеяться.
На самом деле, MathML это довольно забавная идея. С одной стороны, писать математический текст вручную в формате XML это удовольствие ещё то; сравните например несложную формулу (конформное дробно-линейное отображение круга в себя)
Записанную в LaTeX’е
w = \frac{z - a}{1 - \bar{a}z}
И то же самое в MathML:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <mrow> <mi>w</mi> <mo>=</mo> <mfrac> <mrow> <mi>z</mi> <mo>-</mo> <mi>a</mi> </mrow> <mrow> <mn>1</mn> <mo>-</mo> <mover accent="true"> <mrow> <mi>a</mi> </mrow> <mo>_</mo> </mover> <mi>z</mi> </mrow> </mfrac> </mrow> </math>
С другой стороны, понятно, что такой формат потенциально открывает массу новых возможностей, которые просто невозможно реализовать в формате TeX/LaTeX (который ведёт свою историю с 70-х годов).
Мы как-то все привыкли, что веб-технологии двигаются только вперёд; оказывается, не всегда. Некоторые, как оказалось, застревают в пути на неопределённый срок.
no subject
no subject
no subject
Ну, в какой-то степени да, с тех пор появилась тенденция использовать для редактируемых вручную файлов более удобные форматы, типа YAML. Но во-первых, для разного рода расширений HTML всё равно всегда будет использоваться XML, а во-вторых, какая разница? В стандарте же главное не читабельность, а, хм... стандартность. Вот SVG за тот же примерно период времени продвинулся очень неплохо, и XML формат ему никак в этом не помешал.
В целом мне кажется мы этот период уже проехали, ближайшие лет 500 любые структурированные документы будут сохраняться в XML. Какой-нибудь Unicode тоже в своё время многие критиковали (справедливо), но понятно же, что он уже никуда не денется.
no subject
no subject