?

Log in

C# и пустота - Живёт такой парень.
Январь 25, 2017
10:19 pm

[Ссылка]

Previous Entry Поделиться Next Entry
C# и пустота
Если (с умом) проанализировать самые частоупотребимые слова C#, можно... выявить неудобства или излишества синтаксиса. Вот первые слова:



Да-да, я тоже сначала впал в ступор "чёзанах этот summary?". :) Оказалось, банальное описание функции. Очевидно, что подобные вещи можно было и подсократить - раз уж мы уже имеем спец-коммент ///, можно брать весь его текст вне документирующих тегов и делать описанием!

System. Везде и всюду мы подключаем всё тот же банальный список встроенных нэймспэйсов. А чё, убрать это из каждого файла и подключить сразу в проект ума нехватает?? Пересечения имён - настолько редкая проблема, что можно было и не париться - всегда есть alias.

using - уходит вместе с System.

public. Опять "космические архитекторы" мудософта перебздели - ну как же, а вдруг функция станет видимой?!!! Катастрофа! А если бы подумали мозгами, могли бы наоборот - по умолчанию делать члены public, ну а если уж надо что-то скрыть - пиши private. Эта "видимость" вообще не проблема, нужна сугубо для эстетики. Если есть единственный путь использования API, никому ваши приватные члены нафик не сдались даже будучи доступными.

return. Смоллток заменил это словоблудие крышечкой ^. Nemerle - там вообще по-умолчанию возвращается значение последнего выражения; скажем, fn() { 1 } вернёт единичку. Могли бы и посмотреть примеры мировой практики!

this. Ну, я эту фигню редко пишу, а кто-то считает, что это необходимо (это при всей-то помощи IDE!). Сокращать - нет смысла, но тупить и писать где попало - тоже нафик не нужно.

the. Не знаю, откуда это выкопали - не иначе, как из комментов - игнорируем.

new. Не тупили бы, можно было бы сократить до одного символа. Например: var z = *File("path") - никому нафик не нужно напрягать глаза, читая ещё и new! Вообще, тенденция такова, что в языке должны быть словами только функции и переменные, остальное - символика.

param. У меня подобные списки параметров ну настолько редкое явление, что непонятно, как это вылезло в топы, да ещё за new! Будем считать ошибкой.

string - ох, как же давно я это не писал! var же, ну! Сразу видно, анализировался старый, тухленький проект. Кстати, как раз этот var и должен был быть даже выше new. Со строками ничего особо не поделаешь, пусть будет.

name - тоже, видимо, из тех же documentation comments.

null - в Си он экономил кучу кода, где non null автоматом считался истиной. И я больше "согласен", чем "нет", чтобы убрать эти дебильные сравнения с null - только глаза мусолят.

Ну и последнее - false. Кому сдури он может понадобиться - ума не приложу! Хотя не, знаю откуда ноги растут - if! Незыблемый, неразвиваемый, условный оператор. Как же мне нравились в Перле unless!! Вот если бы unless был, никому и false нафик бы не упёрся!




Ну вот, как видите - казалось бы, заскорузлые окрепшие за годы конструкции - а всегда есть что улучшить! ИТ - оно же такое, развивается стремительно. Кто вчера сидел и пендыкал свои new/delete, сегодня уже сосёт у GC. Тут нельзя сидеть и ждать, нужно быстро адаптироваться к "сегодня".
Чем мне, кстати, и понравился проект Nemerle, что не нужно слушать всяких Всхлиппертов и их дешёвые отмазки, а можно сесть и самому сваять новый синтаксис или фичу.
По мне, лучше что-то сделать и ошибиться (что бывает довольно редко, если ты не жопой слушал окружающих), чем не делать ничего и грустно глотать пыль впереди улетевших (как Jаба). Никто ж не тащит фичи в продакшн - всегда можно держать "стабильный тестовый билд", где можно проходить обкатку новых идей. Но нет, мелкософт же такая бедная... не может себе позволить лишний десяток прогеров для толкания своего шарпомонстра! Вот и сидят теперь на громаде легаси кода и не могут толком ввернуть фичу - костыли разъедутся! :)

У меня всё.

(Оставить комментарий)

Разработано LiveJournal.com