Category: история

Category was added automatically. Read all entries about "история".

photo25

Проблема тысячелетия, или теория оперденей (репост)

Мой коммент: п.8 невозможен, т.к. данные и наборы инвариантов регулярно расходятся с реальным миром по вине реального мира; зато должна быть возможность быстро и удобно (полуавтоматически, с наглядной визуализацией результатов своих действий) это корректировать.

В общем случае, поскольку мир меняется быстро, это означает, что у пользователей должна быть возможность учить программы; а у программ - учить пользователей. И нет, это не означает "ограничиться интерфейсами для тупых". А вот как непосвящённых пользователей быстро догонять до уровня, когда они могут эффективно с программой взаимодействовать - это большой вопрос.

Оригинал взят у jakobz в Проблема тысячелетия
Если обобщить две трети юзкейсов, которые бывают, то получатся какие-то такие требования:
1. Программы не должны ебать мозг
2. Когда я использую программу, у меня не должно ухудшаться настроение
3. В программы, как правило, надо печатать буквы и цифры
4. Нужно приложить все усилия, чтобы исключить п. 3.
5. Несовместимость пунктов 1, 2 и 3 - решается человеками вне программы. Как правило за п. 3 платят деньги чтобы компенсировать пп. 1 и 2.
6. Программы должны решать чьи буквы и цифры главнее
7. Программы не должны проебать напечатанное (следствие пп. 1 и 2)
8. Программы должны не давать нарушать инварианты внутри напечатанных данных
9. Программы должны уметь дружить между собой - должно быть просто использовать буквы и цифры, напечатанные в одной программе, в другой программе
10. Напечатанные буквы и цифры программы должны складывать, находить среднее, или строить по ним нейросети и предсказывать будущее

Под это дело подпадает половина всего ПО в мире: от todo-списков, через багтрекеры, до всех корпоративных приложений. Вы не видите этого из своих айфонов, но оно есть - в каждой большой компании есть десять своих 1С-ок.

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

Вся тысяча виданных мною заходов решить эту проблему раз и навсегда - от ms access до всех CRM и всех вариантов 1C - либо не про это, либо говно и хуйня.

Короче, зачем я это все пишу: если кто что видал в тему - киньте ссылку. Либо троллить пойду, либо работать устраиваться. Это вопрос, которому я собираюсь посвятить остаток своей карьеры.

2016-01

про ООП, модули и типизацию

Наконец-то я могу сказать словами то, что меня мучило все эти годы, бгггг :)

Собственно, правильно ли я понимаю, что поскольку для structurally-typed OO языков inheritance is not subtyping (Cook et al, 1990), то semantics-preserving gradual typing в structurally-typed ОО языках невозможен?

Точнее, добавление и убавление деклараций типов будет влиять на семантику программы, при наличии там проверок типов (pattern matching, method overloading, RTTI).

Ииии, в принципе, мне кажется что это справедливо не только для ОО-языков, а и любых языков с поддержкой functions as first-class values (какие-то функции высшего порядка при этом всё равно можно закодировать, но не произвольные), т.к. тайпчекинг становится data-dependent и вынужден ошибаться либо в одну, либо в другую сторону.

Собственно именно из-за этого я не люблю ООП в Java-смысле, а предпочитаю ООП в Smalltalk-смысле, только раньше формализовать не мог.

То есть, с номинальной системой типов мы не можем выразить (статически типизировать) open-world систему, т.к. номинальная система типов кодирует перечислимое множество типов данных, равномощное ω-порядку без higher-kinded types, и ωω (или ε0?) с ними, чего, очевидно, недостаточно.

Closed-world система при этом очевидным образом ограничивает модульность (типы создают частичный порядок на модулях, который, вообще говоря, не обязателен)

Возможно, это противоречие как-то решается, если делать не gradual typing, а gradual contracts (B. Pierce этого вскользь касается, 2008), т.к. контракты более, гммм, симметричны; но я пока не нашел каких-то адекватных пейперов по теме.

Success typing для Эрланга проблему, конечно, решает, но местами это упрощение до потери смысла :) т.к. оно unsound, хотя позволяет статически детектировать *некоторые* ошибки.

В SaferTypeScript (2014) соорудили франкенштейна, который с одной стороны type-safe, но с другой стороны таки не является semantics-preserving - т.к. сдвигания границы между tagged и untagged world меняют семантику программы. Хотя, может, это и выход. Но сцуко некрасиво.

Скальные path-dependent types выглядят способом обойти проблему с другой стороны; но я их что-то как-то не до конца понимаю и не уверен, поможет ли это вообще (в их случае проблема представляется как "построение type inference для ОО-языка с path-dependent типами какая-то сцуко сложная")

This entry was originally posted at http://wizzard.dreamwidth.org/408429.html. It has comment count unavailable comments. Please comment there using OpenID.
2016-01

Частные государства

В июне американец Иеремия Хитон отыскал на карте кусочек африканской пустыни, который официально не принадлежит ни одному государству. Апеллируя к законам колониальной эпохи, он назвал его своим и требует признания у соседей. В будущем он планирует построить там процветающую монархию, а деньги собирается искать через краудфандинг. Apparat взял у Хитона интервью.


http://apparat.cc/world/king-of-the-north/

См. также:

https://ru.wikipedia.org/wiki/Провинция_Хатт-Ривер
https://ru.wikipedia.org/wiki/Силенд

This entry was originally posted at http://wizzard.dreamwidth.org/386574.html. It has comment count unavailable comments. Please comment there using OpenID.
photo24

Есть ли жизнь на Земле?

Оригинал взят у jayrandom в Есть ли жизнь на Земле?

В 1960 г. при подготовке запуска первой автоматической станции к Марсу в составе научного оборудования на станции предполагалось разместить аппарат (спектрорефлексометр), должный определить, есть ли на Марсе вода, а тем самым — есть ли на Марсе жизнь. Келдыш предложил испытать прибор в земных условиях. Прибор показал, что на Земле нет жизни, и был снят, что дало экономию в 12 килограммов (по воспоминаниям Б. Е. Чертока)

-- http://ru.wikipedia.org/wiki/Келдыш,_Мстислав_Всеволодович

2016-01

layout of directed [ranked] graphs

неужели кроме Graphviz и yEd никто адекватно не может раскладывать графы?

(все другие попробованные варианты не умеют rank и в итоге превращают граф в кашу :/ )

graphviz-emscripten приводит меня в ужас, yEd стоит безумных денег.

Graph# не умеет.

UPD: хм.... graphviz-emscripten via SVG работает очень даже быстро (на телефоне в Mobile IE уделывает dot->png на Core i7). Оказывается, у графвиза тормозит именно Cairo растеризация. Я в шоке.

UPD: сам граф - https://gist.github.com/wizzard0/6823830

This entry was originally posted at http://wizzard.dreamwidth.org/313173.html. It has comment count unavailable comments. Please comment there using OpenID.