Си и философия создания компьютерной программы

Вот слушаю я этого молодого человека и не могу понять: он либо шизик, который упоролся на идее "Я управляю машиной, а не она мной", либо он говорит дельные вещи, которые поразительным образом упускаются сегодня, когда учат ПОГРОММИРОВАНИЮ.

66
6 комментариев

Лень два часа смотреть перескажи в краткости тейки

2
Ответить

Там в принципе много "тейков", но вот выжимка:
* Детерминированное гораздо лучше расплывчатого (иначе говоря, напиши 3 функции сложения чисел для 3 типов данных заместо 1, но которые будут простыми и главное ты сразу будешь понимать, что каждая из них делает и какие числа складывает)
* Если потребуется писать для этого 30 лишних строчек кода - пиши, потому что потом код будет более читабельным, не будет поганых однострочников, и вообще выероятность багов будет меньше
* Именуй вещи, если это нужно, настолько "широко" (то есть прямо очень явные имена), насколько это нужно, чтобы потом как кретин не расшифровывать что делает это, а что вот это
* C++ позволяет делать "умные вещи", которые позволяют думать, что ты умный, когда ты на самом деле тупой, и это приводит к использованию опасных механизмов, которые ты нихрена не понимаешь, но гордишься что используешь
* C++ прячет много вещей и усложняет на ровном месте
* Си просто лучше, потому что учит чистоте и прямолинейности

Это из того, что я пока посмотрел.

3
Ответить

Вообще идея с тем что ты должен понимать что к чему и как она здравая и хорошая. Однако как по мне, если прям хочется уровень железа серьёзно изучить, то лучше какой-нибудь ассемблер. Всё же pure c довольно высокоуровневый сам по себе.
Ну и то что программист по хорошему должен понимать как работает тот код что он пишет это отлично. Но тут уже встаёт вопрос того, а на сколько. Ну и наверное в какой отрасли работаешь, что делаешь, все эти абстракции так-то своей целью преследуют то, что бы ты не грузился, как вся магия работает, а просто делал дело.

2
Ответить

И то, и то.
Это Сишник, у них мировоззрение близко к китайцам, секта короче говоря.

Но вообще тут есть вопрос уровня разработки, сейчас мода на высокоуровневую разработку, которая забивает на то, что крутится "под капотом", а то и вовсе - даже на ОС на которой это всё работает.

Разработка с учётом работы самой машины - ну типа да, окей, но тут есть один нюанс, вернее 2.
1. никто тебе сейчас в винде такой уровень не даст.
2. в С/С++ это сдобрено настолько конченым синтаксисом, что просто ад и ужас.

В общем, по-хорошему, надо бы ещё научится думать на:
- PHP с генерацией вызовов функций/переменных (да, генерацией "на лету")
- LISP с его скобочками
- FORTH как минимальный синтаксис и лаконичность.
- Python "это говно просто работает".

2
Ответить

Интересненько, посмотрим.

1
Ответить