История изменений
Исправление EXL, (текущая версия) :
Конечно легче, а главное – безопаснее и намного удобнее.
В случае функции или метода у тебя есть контракт и проверки в компиляторе. В случае текста и внезапно изменившегося форматирования в нём у тебя будет heisenbug и не факт что ты его заметишь тогда, когда это нужно.
Яркий пример: Почему Линукс устарел? (комментарий)
Именно из-за идиотской концепции «всё есть текст», применяемой не к месту, в Linux-специфичных ветках плодится вот такой вот убогий говнокод:
- https://github.com/icculus/Serious-Engine/blob/29c44aed166872552c4e4c353ff6db4c3f0c08df/Sources/Engine/Base/Timer.cpp#L351-L394
- https://github.com/anrieff/libcpuid/blob/ccd0ec842652aa094c4f95d3509a96c27fdc202f/libcpuid/rdtsc.c#L125-L147
- etc.
Кстати, обратите внимание на код по веткам FreeBSD, macOS, Windows – насколько он проще и там нет никаких говнопарсеров ориентирующихся на разметку текстовых файлов.
Прикладные программисты для Linux открывают файлы и пишут корявые говнопарсеры для элементарнейших вещей вместо того, чтобы вызывать GetAllProcess()
, GetCPUSpeedHz()
, GetCPUName()
, GetCPUSomeShit()
и ехать дальше, решать конкретную задачу, а не думать о том, будет ли мой быстро накиданный наколенный парсер безопасным и неговнокодным?
Исходная версия EXL, :
Конечно легче, а главное – безопаснее и намного удобнее.
В случае функции или метода у тебя есть контракт и проверки в компиляторе. В случае текста и внезапно изменившегося форматирования в нём у тебя будет heisenbug и не факт что ты его заметишь тогда, когда это нужно.
Яркий пример: Почему Линукс устарел? (комментарий)
Именно из-за идиотской концепции «всё есть текст» в Linux-специфичных ветках плодится вот такой вот убогий говнокод:
- https://github.com/icculus/Serious-Engine/blob/29c44aed166872552c4e4c353ff6db4c3f0c08df/Sources/Engine/Base/Timer.cpp#L351-L394
- https://github.com/anrieff/libcpuid/blob/ccd0ec842652aa094c4f95d3509a96c27fdc202f/libcpuid/rdtsc.c#L125-L147
- etc.
Кстати, обратите внимание на код по веткам FreeBSD, macOS, Windows – насколько он проще и там нет никаких говнопарсеров ориентирующихся на разметку текстовых файлов.
Прикладные программисты для Linux открывают файлы и пишут корявые говнопарсеры для элементарнейших вещей вместо того, чтобы вызывать GetAllProcess()
, GetCPUSpeedHz()
, GetCPUName()
, GetCPUSomeShit()
и ехать дальше, решать конкретную задачу, а не думать о том, будет ли мой быстро накиданный наколенный парсер безопасным и неговнокодным?