Comments by "Puk-Puk-Puk" (@guxershmeg) on "Winderton" channel.

  1. 6
  2. 4
  3. 2
  4. 1
  5. 1
  6. 1
  7. А ещё C это надёжно и портируемо между платформами, кроме возможно Visual Studio, не поддерживающего полностью C-99. Тогда как C++ вне десктопа, андроида и ios везде сильно порезан и компиляторы даже на десктоп стали стабильны может лет 20 назад и компилируется в 10 раз медленнее, и бинари толще, и еще несовместимость по версиям STL. Когда выходит новая платформа, она идёт сразу с C, потом через может пару лет C-подобный C++, потом еще через 5 лет STL и всё остальное, чтобы можно было применить как раз ети книжки Страуструпа, это слишком долгий срок. С другой стороны имея основной софт на языках типа C++, корпорации удерживают у себя пользователей, на своих платформах. Вероятно в этом и был смысл, чтобы усложнить портирование и стричь больше денег, учитывая например, что C++ от Visual Studio сразу не запустится в компиляторе gcc из-за кастомного синтаксиса Майкрософта.
    1
  8. По личному опыту могу сказать, что чистый код так же очень тяжело поддерживать другому человеку, не автору. Учитывая что в цепочке наследований например в наших проектах 7 классов и обилие "понятных" имён вроде Do, Agent, Worker, Model, Listener. Почти нет комментариев. Как бы это неплохие имена, но когда у тебя 10 разных Listener и 10 разных Worker это уже проблема. Так же засада таится в интерфейсах. Несмотря на то, что функция потребляет абстрактный интерфейс, ожидает-то она конкретную реализацию. Теперь надо найти в коде и понять, какой из имеющихся 20 классов, реализующих этот интерфейс, тебе надо туда передать, или в каком надо исправить ошибку, а может во всех 20-ти?. Это требует невероятно много времени, ведь никакой документации и комментариев там нет, а все люди уволены. То есть помимо алгоритмических проблем и проблем с интеграцией нового функционала ты ещё большую часть времени долбишься с архитектурными проблемами. А если тебе нужен какой-то 1 новый параметр в алгоритме, то надо внести изменения в 50 файлов, чтобы этот параметр протащить.
    1
  9. 1
  10. 1
  11. 1