Дмитpий Hecтepук

Блог о программировании — C#, F#, C++, архитектура, и многое другое

К вопросу о front-end’ах

4 комментария

Да, я обещал написать про front-end’ы, так что вот. Для начала расскажу что это такое. Если коротко — можно писать код как plain text, а можно его писать с помощью редактора a la Microsoft Equation Editor. Именно это делает Mathematica, и получается неплохо.

Но мы начнем с простого, например с того факта что * не умножение а звездочка и было бы логичнее использовать \times или хотя бы \cdot. Я понимаю что кого-то нервирует что произведение x и y будет выглядеть как x×y, но это пожалуй единственный кейс который приходит в голову, и тут можно написать x \cdot y и все довольны.

Вы заметили что я начал использовать \LaTeX? Его Дональд Кнут изобрел чтобы математику верстать. Выглядит сугубо приличнее чем plain text Вот например хочу я, допустим, деление: конечно x/y выглядит более менее сносно, но \frac{x}{y} как-то солиднее. Или foo->bar() все же не так круто как \text{foo}\to\ bar().

Вообще идентификаторы символов тоже хочется иметь погибче, например почему я не могу назвать меременную C^1_k или же например \widetilde{abc}?

Все те условности к которым мы привыкли навязаны plain text представлением. И если отойти от него – да, нужно иметь специальные форматы файлов, но структурированный как дерево код легче обходить, так что плюшки тут очевидны. Это как раз то, что делает MPS, но можно сделать ещё круче.

Вообщем такие вот мысли…

Реклама

Written by Dmitri

18 июля 2016 в 0:33

Опубликовано в Technology

комментария 4

Subscribe to comments with RSS.

  1. Когда учился в институте набирали курсовые в LaTeX.
    До сих пор смотрю на генерируемые тексты — красота.

    vyacheslavbelikov

    18 июля 2016 at 8:52

  2. Отображение текста в картинке выглядит хуже, чем рендеринг текста браузером.
    MathML в этом плане приятней.

    ShakirovRuslan

    18 июля 2016 at 18:51

  3. «В общем» пишется раздельно:
    http://gramota.ru/slovari/dic/?word=%D0%B2+%D0%BE%D0%B1%D1%89%D0%B5%D0%BC&all=x

    С чего вы взяли, что звезда — это звезда, а крест — это умножение? Звезда так же, как и крест, прекрасно используется в математике для обозначения умножения с 1659 года благодаря Иоганну Рану. И, кстати, x * y можно записать ещё и как xy. А косая черта для деления используется с 1 века нашей эры, если не раньше. То, что вы пишете вместо деления — это не деление, это дробь (по сути объект, а не операция), поэтому, если предельно формализовать вашу запись, то в ней вообще нет операции деления — вы из двух чисел сделали новый объект, который, вообще говоря, можно оставить как есть и ничего с ним не делать.

    И, на мой взгляд, в контексте программирования в латехе нет смысла. Исторически математическая символика нужна была для сокращения работы мышления. В программировании плюс, звёздочка, слеш и т.д. хорошо справляются с ментальными распознаванием соответствующих операций, поэтому менять что-то смысла нет. Кроме того, если формула сама по себе громоздкая, то математическая символика плохо помогает мозгу быстро парсить формулы. Но в программировании у нас есть нечто гениальное — plain text и инкапсуляция, а, следовательно, возможность записать громоздкую или непонятную операцию словами и сэкономить себе секунды и минуты жизни. Умножение можно инкапсулировать в x.Multiply(y) и жить счастливо. Собственно, раньше так и было, — изначально все операции записывались текстом. Возможно, пришло время к этому вернуться.

    Ксения

    20 июля 2016 at 1:24

    • О нет, писать x.Multiply(y) — это фееричное зло. У нас итак проблем предостаточно, например в C# корень пишется как Sqrt (с большой буквы). Отсутствие кастомных операторов в C#/C++/Java тоже не радует, т.к. любое лишнее телодвижение нужно описывать функцией, причем в C#/Java даже глобальных функций нельзя делать.

      Я все-таки за графическое представление. Наелись мы уже plain text-ом.

      Dmitri

      23 июля 2016 at 17:03


Оставить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: