Java — язык со статической типизацией, Python — с динамической. Как вы уже заметили, многие адепты статической типизации считают, что она предотвращает большинство ошибок. Я в своей практике редко встречался с ошибками типов.
Python — намного более простой для изучения, интуитивный и легко читаемый. То, что записывается 1-2 строчками на Python требует 10-30 строк на Java.
Однозначного ответа, что лучше дать нельзя. Но для программирования «для себя», «для души», Java почти никто не выбирает. Java — это Enterprise, большие долгие и тяжелые проекты, как правило. Python — легкие, динамичные.
Если начинать программирование вообще с нуля, то изучить Python однозначно в несколько раз проще.