А не так-то просто их сформулировать... Чем хорошо поболее будет то. Это мои субъективные:
- Динамическая типизация и неявные преобразования. Из-за этого приходится городить кучу кода, что проверить входные типы.
- Большой и толстый рантайм. Голый R кушает больше 100 мегабайт при стандартной сборке. При подгрузке либ и данных эта цифра может увеличиться в разы. При горизонтальном масштабировании может выйти боком.
- Проблема с кодировками и разное поведение при вводе выводе данных на разных платформах. Нужно принудительно вводить использование UTF-8, как сделали в Python 3.
- Ряд трудностей (или порой невозможность) с передачей некоторых объектов (External Pointer, например) в потоки и форки. Например, это затрудняет работу с базами данных при многопоточное обработке данных.
- Не всегда эффективное и адекватное поведение сборщика мусора. Иногда приходится его за руку водить и тыкать носом.
Вот спасибо, это те проблемы, которые просто повезло особо не замечать (обходить молча или откладывать решение на потом ) в своём личном наборе кейсов... И да, рантайм таки жирноват, это правда