4 ms·
> Its verbosity forces certain programming features to be known This is why IMO Java is possibly the worst choice of them all (okay, maybe Perl is worse, but
by qsort 5y ago
> Its verbosity forces certain programming features to be known
This is why IMO Java is possibly the worst choice of them all (okay, maybe Perl is worse, but nobody is that insane).
Beginners don't start with enough "culture", as it were, to understand why features are there in the first place. The very first program you write in Java is something like this:
public class Hello() {
public static void main(String[] args) {
System.out.println("Hello, world");
}
}
That's an insane amount of cerimony and boilerplate. Professional developers know what every piece is for: of course you need the class declared public! Of course the main method needs to be static! Of course it needs to take an array of strings as arguments! But everything a n00b sees is a bunch of garbage on the screen. What's a class? What's a public? What's a static? What's a System?
And it's not like it gets better: what is an interface and why we need one? What is an abstract class? Why is there inheritance but we're not supposed to use it?
All Java does is encouraging people to treat programming as a black box, where the end goal is to learn the correct "wingardum leviosa" to make the magic happen. A good intro to CS does the exact opposite: the first concept we need to get inside people's skulls is how programming is flexible, malleable, composable. How it's "just" a composition of super simple stuff. How you should look under the hood.
It's the CS equivalent of how math is taught in high school: inscrutable, opaque recipes. It's the perfect way to make somebody hate the subject instantly.
- Jcowell 5y agoAnd I think it’s those aspects are great. Students should absolutely know about classes , encapsulation, arguments and method return types and Java reinforces that learning by having them always included. Students are force to learn these early and learn a valuable pragadim.