DEV Community

Discussion on: What programming language should I learn next?

Collapse
 
darrencearnaigh profile image
Darren Kearney (he/him) • Edited

Python has a fantastic standard library which will be very refreshing for you as a developer who first learned JavaScript.

I've saved so much time using python's core modules, where the alternative would be lots of JavaScript libraries and dependancies. Having access to simple things like Sets and Tuples out of the box can really help solve your programming problems.

Lots of other programming languages have these features too. I just think you might appreciate Python the most as it is not too far a jump from JavaScript in terms of how you create software.

The latest version of Python 3 also has some lovely quality of life feature for string formatting that will suit your existing JavaScript skills nicely.

Collapse
 
jankapunkt profile image
Jan Küster

Python is actually very high on my list of candidates. Are there also things that annoy you when using Python? What about the indentation based syntax? Is this something I could tackle with a linter (if there is something like this for python)?

Collapse
 
darrencearnaigh profile image
Darren Kearney (he/him)

Most code editors will have support for Python indentation based syntax without any further configuration required. If your needs are greater then there is a rich ecosystem out there to cater for you as Python is one of the most popular programming languages in the world.

Most Python projects will follow the PEP-8 coding style. Python's seemingly restrictive syntax has a great benefit; It makes looking at other peoples code easier since everyone has to use the same whitespace rules. The PEP-8 style guide allows you to quickly understand the source code of most python projects by removing coding style as a barrier.

Link for official docs for PEP-8 standard (they are kinda dry, so I recommend a tutorial instead!) - python.org/dev/peps/pep-0008/

All good Python programming courses deliver course content in PEP-8 coding style so you will build muscle-memory for this as a matter of course. They likely note this in the course description.

Good luck in your learning!

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

Yes, there are actually some pretty good linters for Python. The two most used are flake8 (mostly focused on coding style over anything else) and pylint (which covers coding style, but also covers a bunch of other things).

The off-sides syntax though is surprisingly easy to get used to because it tends very strongly to follow logically from where you would be indenting anyway in other languages. The only tricky part is remembering that you need to explicitly mark empty code blocks with pass and remembering that it is usually harder to read one-liners.

The big complaint for most people with Python is how the package management isn’t really designed in a way that makes handling of concurrent versions of the same thing sane. Essentially, packages default to being global unless you use a tool like venv (included in the Python 3.3 and newer standard library) to create an isolated environment, in contrast to how NPM defaults to all packages being local unless you tell it otherwise.