Pull to refresh
-1
1.9

Специалист по теории типов USB-кабелей

Send message

Термин "обратный" в математике значит совсем другое.

Обратный — это дающий единицу соответствующей операции. Обратный по сложению к x — это -x, обратный по умножению к x — это 1/x. Обратная матрица — это которая при умножении на данную даёт единичную.

А электрический заряд положительный и отрицательный - противоположны друг другу именно в математическом смысле.

А что такое «противоположны»?

И мы это видим непосредственно в законе Кулона и в правилах расчёта общего заряда группы частиц.

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

Да, я неаккуратно выразился в прошлом комментарии.

Отрицательный заряд — это не обратный к положительному в математическом смысле. Я привёл пример выше со всякими там мюониями и обычными водородами, почему это не работает.

Только отрицательный заряд — это не «отсутствие положительного».

В мире, где можно потрогать объективное отсутствие яблока, эквивалентное яблоку, только наоборот, отрицательные числа тоже «существуют».

Угу, например, непотизм в госструктурах, несомненно, показывает востребованность 20-летнего сына начальника.

Востребованность для правителя (и правящей верхушки в общем).

С малой вероятностью и непонятно какой стоимостью. Местный американец, который будет счастливым агентом экономики и который будет тоже рассказывать, как тут классно, куда выгоднее.

У вас там жира, сторипоинты и дизайнеры зачем простороили такой пайплайн?

Чтобы было как в гугле, и чтобы можно было себе записать строчку в резюме «работал по аджайлу, использовал мультимикросервисы и кафку, деплоил кубером».

При разработке сайта городской библиотеки не обязательно проводить всю церемонию с джирой и сторипоинтами (да и аджайл манифесто прямо говорит, что церемонии — зло). Проще и полезнее для людей закрыть эту задачу быстрее и перейти к чему-то более полезному для пользователей библиотеки.

Что сделал твой шеф? Обесценил труд людей

Если труд бессмысленен и устроен только ради того, чтобы имитировать бурную деятельность, то зачем такой труд? Будем оставлять только ради того, чтобы никого не обидеть, ведь работа — это такой детский сад для взрослых, где вы просто весело проводите время, чтобы не скучать весь день?

Давай представим себе на минуту, что дизайнер Вася в это время менял этой же кнопке форму, или подстилку под этой кнопкой.

Нет никаких других дизайнеров. Тут мне одному-то работы едва хватает. Это не ведущая дизайн-студия Парижа, это сайт городской библиотеки.

Он ищет, что за таск. Не находит таска.

По ровно этой логике, к слову, можно было и моему начальнику проверить, что его работа ни с чем не пересечётся, и он это вполне сделал, например.

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

Это означает, что в итоге сроки будут раздуваться до совершенно несерьёзных размеров. Так делать не надо.

«У всех неэффективностей есть причины, ничего делать не надо» — это очень странный подход.

Языки вообще избыточны. В C++ вы вынуждены дублировать имя класса для описания конструктора, в нетипизированном лямбда-исчислении вы дублируете имена переменных, в питоне вы дублируете self какой-нибудь.

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

Разве что запрещением тех или иных возможностей в вашей кодовой базе. Ну как где-то запрещены исключения, где-то запрещено шаблонное метапрограммирование, где-то ещё что запрещено.

Создавать языки метапрограммированием в C++ тяжело: адекватной макросистемы нет, шаблонное метапрограммирование — ад. В языке ML-семейства (в хаскеле, например) куда проще что автору библиотеки с eDSL'ем, что её пользователю. Лисперы тоже много чего хорошего расскажут про их стиль метапрограммирования.

Создавать языки «классически», где вы пишете парсеры-компиляторы-интерпретаторы, на C++ тоже тяжело хотя бы просто потому, что на том же хаскеле комбинаторные парсеры пишутся за время, сравнимое со временем однократной компиляциии проекта, использующего тот же boost.spirit.

Я бы сказал, что основная ниша плюсов — развитие и взаимодействие с уже написанным кодом на плюсах. Так как его много, плюсы никуда не денутся. Но начинать новый чистый проект в 2025-м на плюсах я не вижу смысла (если это, конечно, не какая-нибудь эмбеддщина, где компиляторов других языков нет).

Правда, к C почти всё это тоже относится.

: Int

Это какое-то новое определение дублирования.

Вернее, что это тип, у которого определено сложение.

Нет.

У меня здесь Int бесконечно точный (как хаскельный Integer), а для других типов (например, машинного целого) эта функция не тайпчекается: x + 2 может быть меньше x.

По термуλx. x + 2 вы не сможете вывести тип, а по типу (x : Int) → (Σr:Int. r > x) вы не сможете вывести терм (особенно единственным образом).

Окей.

inc (x : Int) = x + 2 : (Σr:Int. r > x)

Где здесь дублирование из-за типов?

Произвольность выбора (и особенно в случае бинарного лево/право в трёхмерном или даже двухмерном пространстве) показывает, что их не существует в реальности.

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

Утверждаю, что нет, ни в теории, ни даже на практике. Term finding — неразрешимая задача, и эффективных полуалгоритмов нахождения доказательств нет.

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

Когда мы статически типизируем программу, мы вносим определённое дублирование. Представьте, что у вас вообще никакого дублирования нет, любой символ в программе уникален. Ну тогда вы просто не сможете проверить программу ну никак.

Мы ведь оба можем построить ЯП, в котором это утверждение формально не выполняется? :)

Привычка из одной старой до-CTAD-шной кодовой базы, где Scoped было функцией, а не классом.

Так это прямо означает, что отрицательность — это просто метка, как «лево и право». Лево и право существует объективно в природе в доступных человеку ситуациях?

Соответственно, если система типов настолько выразительна, чтобы полностью описать свойства программы, то писать надо на ней, а не на основном ЯВУ.

Не совсем, потому что типами вы выражаете свойства, а термами, имеющими эти типы, вы показываете, почему эти свойства выполняются.

Тут нет того дублирования, о котором вы говорите.

ага. когда вы на декларации записываете 1000 строк, там где могли бы написать на императивке a += b

Вы не поверите, но я тоже пишу a += b даже в чистой функциональщине. При этом это работает композабельно и универсально, для куда большего спектра выражений, чем это ваше a в императивщине. Можно этим же выражением обновить каждый нечётный элемент массива, например.

далее пришёл чувак который сказал "это сложно" и запили взамен bash'у systemd.

взамен bash'у systemd.

I can't even

Пришёл чувак и впилил взамен брейнфаку (восемь операторов) Go (дофига операторов и ключевых слов), ага.

Считать systemd заменой bash'у — это какой-то бред. systemd — это замена bash'у + всему набору команд, которые тащатся вместе с ним и так, и в вашей системе инициализации.

Лично мне нет существенной разницы, писать скрипты под openrc (в генте, которой я пользуюсь) или под systemd — они оба одинаково сложные, я их оба одинаково не знаю.

«создать рабочее место / платить зарплату учителю‑американцу»

А сколаршип для местного американца не создаёт рабочее место и зарплату?

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

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

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

Проблема с этим всем в том, что критерии авторитарности применяются очень избирательно (что нам говорит дружба Гейтса, в компании которого вообще был stack ranking, с демократами? что нам говорит дружба Безоса, у которого складские работники в бутылочку ходят, с демократами?), если вообще применяются, а не заметаются под ковёр из «ну вы понимаете, стиль управления такой, и вообще это не авторитарность, а эффективность».

Друзьям всё, врагам — закон.

Information

Rating
1,573-rd
Registered
Activity