3 ms·
Pushing for Python by comparing it to Java is a first step. But if you really want to do the right choice for all those students, you'd better compare it to oth
by thu 12y ago
Pushing for Python by comparing it to Java is a first step. But if you really want to do the right choice for all those students, you'd better compare it to other good languages. For instance I'm thinking of Haskell.
Imagine that post being about PHP vs. assembly and thus pushing PHP, or about Java vs assembly and thus pushing Java, or...
- jasode 12y agoIt looks like the author's audience is applied sciences (MATLAB crowd). Therefore, the author's comparison of Python vs Java is more applicable than Python vs Haskell. This may be due to more "batteries included" in Java and Python ecosystems for scientific computing. The author had 30 existing Java programs to look at for bugs. I can't tell if his/her dataset search would have found 30 student-written Haskell programs.
- fearandclothing 12y agoI think the point the author is making is that Python eliminates a lot of overhead in learning fundamental programming concepts. I think it's easier for a beginner to grasp the meaning of something like for i in range(0, 3): than, say, for (int i; i < 3; i++) Haskell is also a great language, but not a great choice for beginners, I think, because it adds a lot of overhead in learning basic programming and CS concepts because of the whole purity thing. I certainly wouldn't try to teach first-year CS students how to implement things like stacks, queues and graphs in Haskell.
- thu 12y agoI don't understand how your "easier for a beginner" example relates to fundamental programming concepts. Are you talking about variable assignments, jumps, control structure, or about syntax ? Again how is "the whole purity thing" an overhead w.r.t. to learning the fundamentals ? If you take your loop example in Python, how does leaking the `i` variable outside the loop's scope (actually there is no such scope) a fundamental that beginners need to grasp ? What would you say about `map f [0..2]` ? So Python makes a lot of things easier than in C or in Java I get it. That in itself is not an argument for teaching it instead of, say, Haskell. If you can choose between A, B, ... Z, sure it is better to use B if it is better than A, but not choosing F because you never use it is a wrong reason (at least if your goal is to teach students).
- deleted 12y ago[deleted]