Hacker News new | ask | show | jobs
by wheelerof4te 1370 days ago
That "smooth learning curve" applies when you are learning the language, use it by yourself or work in the ML/Data science industry.

Once you get thrown in a big project that makes heavy use of type hinting (plus the whole environment of it, mypy et all), Object Oriented design and all those hidden things...you realize how much you really don't know.

And that 10% is way too small. To be productive in Python, you need to know at least 50%, or you will be reinventing a lot of existing things. Poorly.

2 comments

Using a different language isn't going to stop the vertigo of being thrown into the deep end of an existing project without a mentor to guide you through it.
If you make a big project, you will have to use that many things with every langagues. If the language is rich, you'll learn the language. If not, you'll learn the project patterns. It's not specific to python.

But 99.9999999% projects won't implement metaclasses.

Most won't event implement decorators, context managers or generators. Use them, sure.

The REAL power comes from the libraries. In the Olden Days, we would call these 'subroutines' -- libraries contain the gussied-up subroutines that make it possible to do amazing things in Python with that "10% of the language" we use.
Python already has a bunch of built-in libraries that make it a full-fledged scripting language. Basically, it is Node.js on steroids.

In the olden days, programmers would have to make 90% of that, alone.

Maybe this is the reason why everyone and their grandma can call themselves programmers these days.

Yes. And all this fancy 'metaprogramming' is just syntactic sugar for how one calls subroutines.

I agree: Python has Batteries Included. But additional Batteries are Optional.