Однозначной рекомендации тут дать не получится, так как всё зависит от того, с какой целью происходит изучение языка программирования или платформы.
Если речь идёт о серьёзном и вдумчивом изучении основ программирования, то я бы не рекомендовал использовать широко распространённые языки высокого уровня и построенные вокруг них фреймворки. Идеальным вариантом, на мой взгляд, в этом случае является старый добрый C++. С одной стороны, этот язык даёт прекрасную возможность освоить принципы ООП, которые являются фундаментальной основой современного прикладного программирования. С другой стороны, разрабатывая на C++, вы научитесь грамотно управлять памятью, писать оптимальный код.