Здравствуйте, Sharov, Вы писали:
S>Может. Коллега в отделе математик, написал кучу кода (~20kloc) в процедурном стиле -- работа с матрицами и т.д. Все на C#, в процедурном стиле -- никаких наследований, паттернов и проч. я не видел в коде. S>При желании все возможно.
Это хорошо.
S>А сколько должно быть new? Можно создать статический конструктор и все сделать в цикле -- синтаксически будет один new. А вообще это дело исключительно привычки.
Ни одного не надо. Зачем это? Переходит чувак с Питона на C# и ему какие-то new надо писать, это не интуитивно. А что будет, если new пропустить? Случаем не ошибка в рантайме? Если так, то зачем такой язык вообще нужен? Это я с точки зрения питониста рассуждаю.
S>Ну тут явно вопросы к тем, кто портировал api. Оне совершенно разные. При желании код на шарпе тоже можно в три строчки написать -- заинлайнть PointF переменную в вызов Draw.
Да, но другого API нет, сделали таким, а в результате пользоваться неудобно. И эта претензия уже к языку: библиотека есть, вызовы есть, а пользоваться неудобно.
S>Понятное дело, что слаботипизируемые языки тут выигрывают в плане скорости разработки. Для прототипирования и исследований оне хороши, а как в продакшн, так тот же С++ получше будет. А выбор компилируемых языков зависит от кроссплатформенности, библиотек и т.д.
Вот, вот. На практике получается, что такой монстр как С++ получше будет. И это не только к OpenCV, но и к тому же Tensor Flow, например. А это одни из самых популярных библиотек на Гитхабе.
S>Кстати, в плане скорости разработки есть ощущение, что matlab получше питона будет. Только он сильно платный. А так -- все изкаропки.
Матлаб крут, но есть свои недостатки. И у него не всё из коробки: тулбоксы надо мало того, что докупать, так ещё и ставить их не сильно проще, чем сделать pip install. У R также просто устанавливаются дополнения.