gds 14.04.2012 12:02 umodniB841D0CB

В одном из постов @beardog говорит "тяжело быть идиотом". Не знаю, идиот ли он, но я в этом и сомневаюсь, и считаю это совершенно не важным для текущего поста.
Потому что у меня опять параллели с языками программирования. (кто про что, а я опять про это говно.)
Я считаю, что идиотом быть просто, только последствия действий тяжёло разгребать.
А быть умным — сложно, зато последствия действий разгребать легко.
И это напоминает такую картину: на языках низкоуровневых и/или на языках со слабой типизацией писать код легко, зато потом ощущаются геморрои в его отладке, поддержке, рефакторинге. А на языках со строгой статической типизацией (а то и с доказательствами корректности) писать код таки тяжелее, зато получаем почти халявную отладку (как минимум, в тех местах, где без типов мучались бы — уж точно), лёгкую поддержку и лёгкий, статически проверяемый рефакторинг.
И тут ещё вопрос "вложения сил": в первом подходе силы вкладываются в развитие умений понимать-анализировать код собственной головой, тестировать код, в умение отлаживать, в умение держать в голове кучу деталей при сложном рефакторинге (а то и при простом дописывании кода). Во втором подходе силы вкладываются в развитие умений формулировать инварианты/свойства программы на языке типов (а то и доказательств), заставляя компилятор анализировать каждый кусок кода, использующий эти типизированные значения (как при простой компиляции, так и при "рефакторинге/дописывании по ошибкам компилятора" — часто практикую такое, всё получается). Причём, компилятор будет анализировать код на соответствие типам-доказательствам независимо от того, сколько этого кода и какой он сложности. А человеки и устают, и человеческий фактор демонстрируют, и ломаются иногда.

1. nicka 14.04.2012 14:18 notebook

интересно бы посмотреть на результат применения этих идей к тому простенькому сишному коду под *дуино, который я в жаббир кидал.

2. gdsnicka /1 14.04.2012 14:20

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

3. nickagds /2 14.04.2012 14:24 notebook

>проще хоть на отсосемблере написать, хоть на сишечьке.

на сишечке выходит чуток портабельненько, а на ассемблере — нет.

4. gdsnicka /3 14.04.2012 14:26

разумеется.
Если же не брать портабельность, то для такого количества кода — пофиг, абсолютно. И, опять же, для такого количества кода и логики — сишечььька вполне хорошо подходит.

5. nickagds /4 14.04.2012 14:28 notebook

>Если же не брать портабельность

лучше брать. иногда куски алгоритмов удобнее на х86-гцц отладить, а потом быстро србрать хоть под мега8, хоть под мега16/32/64/128

6. gdsnicka /5 14.04.2012 14:29 umodniB841D0CB

Да, Кэп! :]

Do you really want to delete ?