Недостаток языка - субъективное понятие. Многие свойства языков могут быть как плюсами применимо к одной задаче, так и минусами для другой. Например статическая типизация позволяет писать более надежный и производительный код, производя большинство проверок на этапе компиляции. А динамическая дает гибкость, и позволяет решать задачи очень быстро.