>>101 Eiffel is for writing real-world programs, but also happens to be the best language for teaching OOP.
Java is not good for teaching introductory programming or OOP. Can you explain why 0123 isn't the number 123 or why int and Integer are different? Java is good for causing confusion and turning students into brain-damaged zombies.
These students think they are stupid because their professors are teaching Java and all of these big companies are using Java, so the students must be the problem and they're ``bad programmers'', but they are fine and Java is the problem. Recognizing these problems is a sign that your brain is still functional.