3 ms·
I think Java is a great language to start with . It’s verbosity forces certain programming features to be known, static typing is better for beginners, and it’s
by Jcowell 5y ago
I think Java is a great language to start with . It’s verbosity forces certain programming features to be known, static typing is better for beginners, and it’s easier To teach encapsulation , overloading , and overriding due to the Java’s verbosity in my opinion. The existence of Arrays and Arraylist gives a better view into static arrays vs dynamic arrays that you might not get in very language.
I think of programming tools as knives in cooking. While all knives fundamental can cut , not all knives are made to cut the same thing. Similarly , not all programming languages are made to tackle the same thing. I think Java
works as a good juxtaposition to Python by showing that that contrast via its syntax and basic features. Also when compared , it can allow students to get over the notion that it’s not about the language but the techniques and how each language can implement the technique.
- 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.