All streams
Search
Write a publication
Pull to refresh
4
0

Ещё один отвечающий по десктопному дотнету

Send message

Честно говоря, никогда не понимал апорий Зенона. Почему из того, что стрела в (каждый) определённый момент времени находится в определённом месте, следует, будто бы она не двигается в этот момент времени? Понятие «двигаться» завязано на смену положения при смене моментов времени.

Утверждение, что апории «нельзя опровергнуть математическими или логическими рассуждениями», кажется мне несколько самонадеянным.

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

Вспомнилось из «Математической смеси» Литтлвуда:


Ландау* заготовлял печатные формуляры для рассылки авторам доказательств последней теоремы Ферма: "На стр. ..., строке… имеется ошибка". (Находить ошибку поручалось доценту.)

*не тот

Страуструп сказал “Преждевременная оптимизация корень всех зол”

Вообще-то, Кнут.

Ждал, каким будет перевод «unrung the bell» на русский. «Отменил прозвеневший звонок» — ну тоже ничего.

Но в вашем тексте написано безусловно: «value type (...) хранятся в быстром stack», а не «локальные переменные значимых типов хранятся на стеке, за исключением (тут перечисление)».


То, что поля хранятся там же, где и весь объект, вовсе не очевидно: например, если объект значимого, а поле ссылочного типа, то они хранятся не вместе.

value type (пример int, struct, ссылки на инстансы reference type) хранятся в быстром stack

Это неверно. Простейший контрпример:


class RefType
{
    int Value;
}

Value будет храниться вместе со всем объектом, в куче.
Затем, замыкания, async-функции, генераторы, все они могут оправить value typed-значение в кучу.


Затем, само наличие стека — это подробность реализации текущей Microsoft CLR, она не гарантирована по стандарту.


Немного по теме: ответ на SO и статья Эрика Липперта, обсуждаемая в этом ответе.


Кстати, и reference types не прибиты гвоздями к куче. Вот тут их от кучи отвязывают.

Не обязательно в многопоточном окружении. Метод Add может выбросить исключение. Или обнулить поле, куда записывается ссылка на объект. Или ещё что-нибудь.

Ну всё же идиоматически ваш код обычно записывается так:


private DateTime m_now;
public DateTime Now
{
    get => m_now;
    set => Set(ref m_now, value);
}

что вовсе не такой уж крокодил. Если ключевое слово field взлетит, то будет на строку меньше. А с пришествием original/replace будет просто атрибут, кто там хвалил Питон?

Ну это да, можно в нарушение семантики сделать что угодно. Можно сделать, чтобы Add ничего не добавляло, или добавляло не значение своего аргумента, а что-то другое. C# не может защитить программиста, который упорно вредит сам себе. Но по крайней мере C# старается, чтобы код, делающий странные вещи, и выглядел странно.
От коллекции программист на .NET ожидает, что она будет перебираться. А если хочется странного, так можно в GetEnumerator и исключение бросить.

Вероятно, чтобы синтаксис инициализации коллекции не использовали не по назначению. Если класс реализует IEnumerable, то он, вероятно, семантически является коллекцией. А формально, конечно, достаточно и Add с нужной сигнатурой. Принцип наименьшего удивления — один из центральных идеологических принципов C#.

В синтаксисе с инициализацией коллекцией, если уж есть Add с IEnumerable, то по идее дополнительные скобки не обязательны, т. к. это частный случай инициализации одним элементом. (Проверка.)

Проблема в том, что бюрократы Википедии (как и администрация ru.SO) крайне обидчивы, и всякую критику, даже конструктивную, считают оскорблением. Кроме того, деятельность на некоторых сайтах (любая, кроме деструктивной) ими не одобрялась, то есть, приводила к бану.


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

Насколько мне помнится, причина для удаления race из исходников — вовсе не происки SJW. Майкрософт хотела осложнить хакерам поиск мест в коде с потенциальными проблемами (и в конечном итоге уязвимостями), и это была часть принятых мер. Да, это объяснение не объясняет фильтр на rape и ass.

Вероятно, было слишком интеллектуально.

Это была точка бифуркации, да. С этого момента всё пошло хуже и хуже.

В бэкенд-приложении можно по идее установить CultureInfo.DefaultThreadCurrentCulture.

Вы опять забыли скрестить пальцы? Отсутствие модераторов прекрасно видно по дате последнего посещения.


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

Конечно, администрация вольна делать что угодно, врать, нарушать собственные правила, банить любую критику, пускаться в любой неадекват.


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


Если администрация не понимает ценность своих авторов, и считает, что может делать что хочет без противодействия, пусть провалится в ад.

С удовольствием обсужу эти вопросы на платформе, где можно говорить на равных. В чате ru.SO, простите, нет: я хорошо усвоил, что попытки отстоять своё мнение заканчиваются баном (или баном как в чате, так и на основном сайте).


Но эти наши склоки, думаю, читателям Хабра неинтересны.

Information

Rating
Does not participate
Location
München, Bayern, Германия
Registered
Activity