I agree, formalising and breaking down the problem into smaller pieces is what causes difficulties. The code itself is a mere tool. But I also have to admit that certain programming languages are more apt for certain problems than others and thus influence the perceived difficulty of the problem.
True. The logic and the use case of the language is what makes its application viable while designing a project. I remeber when I was beginner, I learnt the languages not by choice but by there use cases because I knew that designing the solution is hard not its implementation.