|
|
|
|
|
by USNetizen
4817 days ago
|
|
Not so. Learning on an interpreted language is akin to learning how to fly a plane by simply riding in one. There is a lot to learn in a CS program, and it really requires a single language from start to finish. Python doesn't have some of the advanced capabilities and adoption of an enterprise-class language like Java. Believe me, I love Python - I've created a ton of apps with it, but I also have a CS degree and have seen the practicality of using a single language from start to finish. How are you going to reinforce the notion of how a compiler works with an interpreted language? How would you teach and force the use of static types on a dynamically typed language? How would you teach true concurrency and thread safety with a language that is limited by a global interpreter lock (GIL)? These are introductory things a CS student would take in their first year. |
|
It slows down development. :)
Pointer math and garbage collection are lessons better taught in C++, lessons about the stack make more sense in assembly, and it probably helps to learn about high level design patterns using a simple syntax (like Ruby or Python). Lisp, so I hear, teaches you pure enlightenment. We can play this game with any language we like.
Java, for its part, taught me a lot about installing a massive IDE and scouring pre-existing libraries full of absurd design decisions with nominal documentation. (To be fair, this is probably an enormously important lesson for working on large projects.)
Despite the fact none of these languages hits all of these notes, if we had to choose one, Java would be last on my list. Because in Java, there's a risk that you will never learn the most important thing about coding: that it can actually be fun.
http://xkcd.com/353/