Критика чистой решётки :)
Из того, на чём пишут программы, практически не работал только на "решётках", и вот жизнь, похоже, подталкивает в эту сторону. Каких-либо технических сложностей не предвидится, скорее, идеологические, не люблю данное сатанинское искажение православного C++, сделали из двух плюсов решётку и даже не скрывают этого! :)
C++ to C#, my small animation
Брюки"Плюсы" превращаются... в элегантныешортышарпы
.NET Framework и была той "точкой невозврата", за которой кончились "неуправляемый код" и творческая сторона профессии. Фактически, имеем виртуальный байт-код вместо exe'шки, тормознутого братца Явы в мире, который ещё недавно принадлежал алгоритмам, а не библиотекам данных.
Код на языке C# транслируется в промежуточный язык-псевдоассемблер CIL, который преобразуется в машинный код прямо во время выполнения приложения (JIT). Всё это работает только при установленной .NET Framework конкретной версии, медленно и печально.
Классическая структурная программа по Дейкстре организована "вокруг кода", то есть, вокруг того, что фактически происходит и выполняется. Здесь есть место если не творчеству, то хотя бы оптимизации.
Объектно-ориентированное и управляемое событиями приложение организовано вокруг данных, главный принцип здесь - "данные управляют доступом к коду", описания важнее реальности. Типичный программист становится даже не ребёнком, собирающим из деталей готового конструктора машинку, а всего лишь одним из звеньев конвейера. Важны только те, кто владеет данными, очень большими данными :)
Меж тем, вышла уже восьмая (или девятая?) версия за 17 лет, хотя спецификаций нету аж с пятой.
Язык дорос до "костылей", то есть, начал разлагаться, например, с одной стороны имеем строгую типизацию, тяжёлое наследие Паскаля (Хейлсберг же!), с другой стороны при этом есть Runtime-тип данных dynamic и неявная типизация с ключевым словом var; имеем определение переменных где угодно, но локальная переменная не вытесняет одноимённую глобальную; есть обычные и "укороченные" (си-подобные) логические операции, но при этом обозначения укороченных длиннее, чем у обычных, а обозначения обычных неотличимы от побитовых, и т.д., "стройность" не хуже, чем в PHP :)
В основу языка C# хитромудрым талмудистом Хейлсбергом положены ровно тринадцать типов значений, а "финансовый" тип decimal представлен аж 128 битами и имеет двадцать восемь разрядов в дробной части, при этом не преобразуясь по умолчанию к обычным числам... Вот оно в чём дело-то было в этом странном расчёте :)
Как на самом деле был создан C# - секретные сведения! :)
1. Главное понятие в "решётках" - ссылка, а не указатель, как было в "плюсах".
Основное отличие ссылки от указателя состоит в том, что ссылка не может активно воздействовать на адресуемый объект, а только начать ссылаться на другой объект.
Если это - не проституция, то что тогда проституция в мире программирования? :)
2. В "решётках" нет даже оператора
delete
, программист просто не может удалить объект, который создал, а должен дожидаться милостей ("сборки мусора") от системы.Если это - не рабство, то тогда где оно в мире программирования?
08.01.2021, 00:24 [1271 просмотр]