Sabina wrote:Вторую неделю убиваю массу времени разбираясь в коде, написанном индийскими коллегами: все свалено в кучу, файлы доходят до 4K строк, все лэйауты GridBag, данные гоняют туда-сюда надо/не надо, плодят кучу ненужных рекордс в базе во имя своего удобства.
Назвать это объектно-ориентированным просто язык не поворачивается.
Скажите, что это только у нас такой бардак
![Sad :(](./images/smilies/icon_sad.gif)
, а вообще индусские программисты они белые и пушистые ....
Мне по работе приходится иметь дело с такой чудной вещью, как MPEG-4 reference software. Это продукт, который определяет стандарт MPEG-4, и имеет приоритет просто над всем ( если software делает одно, а в официальном ISO-шном документе написано другое, верить надо софту ). Написан большей частью профессорами - европейцами, японцами, китайцами. Индийцев среди разработчиков не было. И скажу я вам, профессора писать код не любят или не умеют.
4k строк в файле это, по вашему, много? В reference software десяток C-файлов по 5k+ строк, в одном 12k. Такой солидный файл в 400 килобайт весом, с имплементациями 37 функций. Про декларации функций авторы никогда не слышали - пользуются тем, что в C это делать необязательно. Стандартные типы языка им не нравятся. Вместо short и int используются Short и Int соответственно, жестко определенные через typedef. Надо думать, для платформной независимости. В то же время авторы очень любят неявно кастовать float к int'у ( хотя стандарт языка не определяет, в какую сторону будет делаться округление ).
Но это все цветочки. Сейчас на горизонте вырисовывается новый стандарт - H.264. Я видел reference software и для него ( тоже профессора, но другие ). Такая деталь. Все переменные, определяющие состояние енкодера / декодера, глобальные. И определены в хедере global.h, который включается в каждый файл в проекте. Я скажу честно, я не знал, что так можно. Если попробовать скомпилировать этот код C++ компилятором, начинают сыпаться сотни ошибок про "multiply defined symbols". А C-компилятор работает...
Так что дело не в национальности. Дело в образовании.