Информация об изменениях

Сообщение Re[4]: Достаточно ли знать С без знания С++ для устройства н от 04.09.2014 23:21

Изменено 04.09.2014 23:27 eskimo82

A>А С — это просто урезанный С++, по этому если ты знаешь С, но не знаешь С++,
Что за ерунду ты пишеш. Языки изначально были несовпадающим множеством, а сейчас еще больше и разошлись в разные стороны.

A>то для меня это выглядит так, что ты — программист С++, который

A>- использует минимум возможностей языка и не способен писать выразительный, идиоматичный код
В C99 есть такие возможности которые в C++ и не снились.

A>- предпочитает использование небезопасных конструкций языка

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

A>- не в состоянии нормально применять ООП и ФП там где это надо

Это известное заблуждение. На самом деле ООП практическине завист от используемого языка. Нет никаких принципиальных проблем в том, чтобы применять ООП на языке Си.
Элементы обобщенного програмирования в Си тоже можно неплохо применять, а частности — первые наброски Степановом того, что сейчас называется STL были сделаны на Си, довольно оригинальным способом.

A>- не может писать нормальные юнит-тесты

Ну конечно. Идеология юнит тестирования вообще никак не опирается на язык — можно использовать любой. Для тоже Си есть куча библиотек в помощь для организации тестировнаия.

A>- пишет огромное количество бойлерплейта, в коммитах огромные диффы, это тяжело читать/ревьювить

Диф между linux kernel и FreeBSD kernel тоже огромный — его тяжело читать и ревьювить!
Re[4]: Достаточно ли знать С без знания С++ для устройства н
A>А С — это просто урезанный С++, по этому если ты знаешь С, но не знаешь С++,
Что за ерунду ты пишеш. Языки изначально были несовпадающим множеством, а сейчас еще больше и разошлись в разные стороны.

A>то для меня это выглядит так, что ты — программист С++, который

A>- использует минимум возможностей языка и не способен писать выразительный, идиоматичный код
В C99 есть такие возможности которые в C++ и не снились.

A>- предпочитает использование небезопасных конструкций языка

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

A>- не в состоянии нормально применять ООП и ФП там где это надо

Это известное заблуждение. На самом деле ООП практически не зависит от используемого языка. Нет никаких принципиальных проблем в том, чтобы применять ООП на языке Си.
Элементы обобщенного програмирования в Си тоже можно неплохо применять, а частности — первые наброски Степановом того, что сейчас называется STL были сделаны на Си, довольно оригинальным способом.

A>- не может писать нормальные юнит-тесты

Ну конечно. Идеология юнит тестирования вообще никак не опирается на язык — можно использовать любой. Для тоже Си есть куча библиотек в помощь для организации тестировнаия.

A>- пишет огромное количество бойлерплейта, в коммитах огромные диффы, это тяжело читать/ревьювить

Диф между linux kernel и FreeBSD kernel тоже огромный — его тяжело читать и ревьювить!