LINUX.ORG.RU

История изменений

Исправление pr849, (текущая версия) :

Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи типа сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.

Пример сразу множества дикостей в одной строке, файл expat.h:

#define XML_GetUserData(parser) (*(void **)(parser))

Помню пример и почудовищней порядка так на два, но я вам его не покажу. :)

Исправление pr849, :

Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи типа сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.

Пример сразу множества дикостей в одной строке, файл expat.h:

#define XML_GetUserData(parser) (*(void **)(parser))

Исправление pr849, :

Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи типа сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.

Исходная версия pr849, :

Потому что это слишком низкоуровневый язык. И паттерны у него свои, низкоуровневые и вовсю использующие небезопасные вещи сишных макросов и void*. Даже при том, что нынешний C (или как минимум GCC) умеет static inline функции, в тех сорцах, что я видел, всё равно используются #define. А высокоуровневые парадигмы типа ООП, ФП ему чужды, и если их на нём эмулировать, что выглядит крайне противоестественно, ужасно и опять же небезопасно.