Hacker News new | ask | show | jobs
by BiteCode_dev 1368 days ago
Python is easy, not because it prevent people from doing complicated things, but because with only a few simple things, you are productive.

Most python programmer use 10% of the language, the same 10% that is described in most tutorial, because that's enough, and they don't even know the rest exist.

This makes for a very smooth, but long learning curve which allow you to enjoy python in the early years, yet keep getting a kick out of it after 15 years.

I hear a lot of people raising the same kind of concern you do in comments, but in the field, I never do with people actually using the language.

1 comments

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.

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.