Pull to refresh
1
0

User

Send message

Основная проблема «визуальных» языков заключается в том, что они по сути ничего и не визуализируют. Изображение исходного кода в виде квадратиков — это профанация, а не визуализация.


Визуализировать нужно данные, визуализировать нужно поведение. Например, вот так. Ну или хотя бы вот так или вот так.


«Визуальные» языки программирования не делают ни того, ни другого, и потому беспомощны в своей убогости.

Есть формальные спецификации Paxos (+ разновидности) и Raft на TLA+: https://github.com/tlaplus/DrTLAPlus

А никто так и не слышит (в самом деле, /ф/ и /в/ намного, намного ближе по звучанию). Так учат. И вот это — действительно преступление.

Где-то я потерял одну очень хорошую статью про три культуры в программировании. Людям из первой интересно программирование с более математической стороны, им важно чтобы код был красив (в математическом смысле) и корректен. Вторым интересен сам процесс вычисления и эффективность использования ресурсов. Ну а третьи просто хотят решать практические задачи.

Так теряем мы контроль над реальностью? С точки зрения первой культуры, нет: наши возможности выражать инварианты в коде и доказывать конкретные свойства только растут. С точки зрения третей культуры тоже нет: наши способности решать проблемы не уменьшаются.

У людей же из второй культуры, начиная с 70-х, дела, похоже, идут всё хуже и хуже. Посочувствуем же им.
У меня нет намерения что-то доказывать (сам использую систему с systemd и не страдаю). Просто было бы неплохо излагать историю объективно, а не как в политике.

Как и ожидалось, в статье нет ни слова про daemontools, runit или Supervisor, но вместо этого — ложная дихотомия sysvinit vs systemd, и попытки преподнести любую критику как простое ретроградство.


Поклонники systemd, однако, такие поклонники.

Это зависит от того, будут ли авторы приложения указывать диапазон версий или только одну версию. В случае диапазона — широкие возможности переиспользования, причём без проблем вроде «вот в том дистре максимальная версия вот такая, а то иначе всё сломается».


Ну а в случае, когда каждому единственная версия, переиспользование не выходит. Хотя, одни версии могут быть популярней других.


В любом случае, механизм вот он, уже есть. Выбирать между крайностями не обязательно.

  1. Так как все артефакты изолированны друг от друга, в системе может быть установлено несколько версий библиотеки
  2. Пакеты, использующие одну и ту же версию библиотеки, используют одну и ту же библиотеку

Таким образом есть компромисс между единственно верной версией библиотеки и приложениями, таскающими всё в себе: небольшое количество версий, используемое совместно всеми.

Проблема давным давно уже решена, просто все настойчиво игнорируют существование решения.

А кватернионы — часом не частный случай алгебры Клиффорда?

Именно так.

То, что описано в статье, математики зовут «алгеброй Клиффорда». Она определяется следующим набором аксиом:


  • Aссоциативноcть: $$(AB)C = A(BC)$$
  • Дистрибутивность:
    $$A(B + C) = AB + AC \qquad (A + B)C = AC + BC$$
  • Умножение на число: $$(αA)B = A(αB) = α(AB)$$
  • Умножение на единицу: $$1A = A1 = A$$
  • Квардрат вектора: $$aa = a^2 \in \mathbb R$$

Может, вообще стоило начать с тензоров и матриц?

Не может. Алгебра Клиффорда намного более простой и удобный инструмент для подобных вещей.




У меня в черновиках есть статья об алгебре Клиффорда, вдохновлённая книгой «Geometric Algebra for Physicists». Надо бы её наконец дописать и выложить на хабр.

Information

Rating
Does not participate
Registered
Activity