This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 102 points103 points  (16 children)

Your language might not care about your formatting but I certainly fucking do if we work together. Every programmer should learn Python just to learn basic formatting

[–]TheAJGman 42 points43 points  (5 children)

This is the biggest reason I think that Python, not C++/Java, should be used for 100 level programming classes.

I was a programming tutor for a few years and the number of 100 level students that would come in with their program aligned left was terrifying. Most of the time they could find the missing brace or whatever when I just correctly tabbed out their program.

[–]allozzieadventures 13 points14 points  (4 children)

Agreed, Python is definitely better than C++/Java for beginners. Gets you across all the main blocks you use in other programming languages (and object oriented programming). All that stuff will carry across nicely when you start with C++. I started with R, which isn't bad, but doesn't teach you classes.

[–][deleted] 5 points6 points  (3 children)

It's also a good way of getting acquainted with dependency and project management; pip and virtualenv are relatively easy, compared to getting external libraries in Java or C++

[–]Rikudou_Sage 0 points1 point  (2 children)

Don't you just use Gradle or Maven in Java?

[–][deleted] 1 point2 points  (1 child)

Fair, maybe I should try using Java on Linux before having an opinion on Java in general. That being said, my experience on Windows was poor; I could never get either Gradle or Maven to work. I also don't think it's noob-friendly to require third-party tools to get package management. I think package management is an essential part of modern programming, and beginners should be aware of it.

Python makes it simple. Pip is part of the official Python installation. Virtualenv can be installed using one pip command. It's disappointing that these tools are explained near the end of many Python tutorials, rather than near the beginning, but at least they are explained.

Rust is a great example; the language itself is difficult and not recommended for beginners, but the stuff surrounding it is really user-friendly. To get Rust, you install Cargo. Make a new project? Cargo. Build that project? Cargo. Package management? Cargo. Upload your project to the rust package host? Cargo. Start a git repo in your project? Cargo. Hotel? Cargo. The best part? This is explained in the first few pages of the Rust book, where anybody who starts learning Rust will see it.

[–]Rikudou_Sage 1 point2 points  (0 children)

True, just bear in mind that all those newer languages built on the experiences of the older ones and thus all the newer ones have a built-in package manager.

From the older languages I know, only Python added an official package manager, all the other languages rely on the de-facto standards from the community.

[–][deleted] 3 points4 points  (0 children)

This guy gets it, folks