БлогNot. Критика чистой решётки :)

Критика чистой решётки :)

Из того, на чём пишут программы, практически не работал только на "решётках", и вот жизнь, похоже, подталкивает в эту сторону. Каких-либо технических сложностей не предвидится, скорее, идеологические, не люблю данное сатанинское искажение православного C++, сделали из двух плюсов решётку и даже не скрывают этого! :)

C++ to C#, my small animation
C++ to C#, my small animation

Брюки "Плюсы" превращаются... в элегантные шорты шарпы

.NET Framework и была той "точкой невозврата", за которой кончились "неуправляемый код" и творческая сторона профессии. Фактически, имеем виртуальный байт-код вместо exe'шки, тормознутого братца Явы в мире, который ещё недавно принадлежал алгоритмам, а не библиотекам данных.

Код на языке C# транслируется в промежуточный язык-псевдоассемблер CIL, который преобразуется в машинный код прямо во время выполнения приложения (JIT). Всё это работает только при установленной .NET Framework конкретной версии, медленно и печально.

Классическая структурная программа по Дейкстре организована "вокруг кода", то есть, вокруг того, что фактически происходит и выполняется. Здесь есть место если не творчеству, то хотя бы оптимизации.

Объектно-ориентированное и управляемое событиями приложение организовано вокруг данных, главный принцип здесь - "данные управляют доступом к коду", описания важнее реальности. Типичный программист становится даже не ребёнком, собирающим из деталей готового конструктора машинку, а всего лишь одним из звеньев конвейера. Важны только те, кто владеет данными, очень большими данными :)

Меж тем, вышла уже восьмая (или девятая?) версия за 17 лет, хотя спецификаций нету аж с пятой.

Язык дорос до "костылей", то есть, начал разлагаться, например, с одной стороны имеем строгую типизацию, тяжёлое наследие Паскаля (Хейлсберг же!), с другой стороны при этом есть Runtime-тип данных dynamic и неявная типизация с ключевым словом var; имеем определение переменных где угодно, но локальная переменная не вытесняет одноимённую глобальную; есть обычные и "укороченные" (си-подобные) логические операции, но при этом обозначения укороченных длиннее, чем у обычных, а обозначения обычных неотличимы от побитовых, и т.д., "стройность" не хуже, чем в PHP :)

В основу языка C# хитромудрым талмудистом Хейлсбергом положены ровно тринадцать типов значений, а "финансовый" тип decimal представлен аж 128 битами и имеет двадцать восемь разрядов в дробной части, при этом не преобразуясь по умолчанию к обычным числам... Вот оно в чём дело-то было в этом странном расчёте :)

Как на самом деле был создан C# - секретные сведения! :)
Как на самом деле был создан C# - секретные сведения! :)

1. Главное понятие в "решётках" - ссылка, а не указатель, как было в "плюсах".

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

Если это - не проституция, то что тогда проституция в мире программирования? :)

2. В "решётках" нет даже оператора delete, программист просто не может удалить объект, который создал, а должен дожидаться милостей ("сборки мусора") от системы.

Если это - не рабство, то тогда где оно в мире программирования?


теги: программирование c# философия личное виртуальность

08.01.2021, 00:24; рейтинг: 62