The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск языка программирования Rust 1.51"
Отправлено Урри, 27-Мрт-21 01:40 
Вообще-то тут все плохо. Даже более скажу - очень, очень плохо; я за подобный c++ код увольнял людей.

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

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

Вы пока этого не понимаете, судя по вашим комментариям. Так что я вам предложу простую аналогию.
Представьте, что вы сейас читаете макроассемблерный код, где в дополнение к простым инструкциям MOV, ADD, SUB добавлены более сложные VMOVDQU64, VPBROADCASTQ, PINSRQ. "В чем сложности, бро" спросите вы? В том, что с этим кодом может работать (причем обязательно без перерывов) специалист узкого профиля. Прервался - забыл, сиди вспоминай и строй в голове все по новой. Причем познания этого специалиста вообще никак не могут пригодится вне этой области - например, при переходе на arm ассемблер или даже на языки более высокого уровня.

Код выше обладает всеми недостатками примера с ассемблером. Это и многократные вложения, заставляющие каждый раз строить в голове цепочку структур "кто на чем стоял", и акронимы (слава богу попроще чем PINSRQ), и перегруженность спецсимволами, которые в любом языке очень плохая идея, и практическая невозможность сопровождения, когда надо быстро вносить минимальные правки не ломая все и вся.

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

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

Вот как то так.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру