
Python Is Eating the World - somebehemoth
https://www.techrepublic.com/article/python-is-eating-the-world-how-one-developers-side-project-became-the-hottest-programming-language-on-the-planet/
======
js2
Huge discussion last month:

[https://news.ycombinator.com/item?id=20672051](https://news.ycombinator.com/item?id=20672051)

~~~
crtlaltdel
o? thx for the context!

------
_jal
My personal theory of "why python" is that it broke with the unixism of
recycling syntactical conventions. While the conventions were useful, the
line-noise aspects that were perpetuated turned a lot of people off as
unnecessary obfuscation. Python was more than a clean break from that, it was
pushing towards actually trying to enforce a certain amount of readability.

I default to python for scripting at work because it is popular - we are more
likely to find folks who have at least seen it before. Most of my throwaway
and experimental code is Perl5, just out of long habit.

~~~
m463
I think you're right.

It "downgraded" regular expressions, which are entrenched as first-order
citizens in most of unix, and made you use function calls instead.

Although it would seem to make regular expressions clumsier to use, it made it
easier to encode and decode them.

One of the most frustrating and painful things is trying to figure out if
something in a regular expression is a literal character, a matching character
or an escape character, and it can be deeper, such as a variable or other
syntax character from the enclosing language. This kind of stuff trips up
beginners and seasoned folks alike.

Python did the same thing with path manipulation, which suffered from the same
sorts of problems.

------
_bxg1
What's the static-typing landscape look like for Python? JavaScript, the other
dynamic language that's eating the world, has the well-known TypeScript to
help it scale. I couldn't imagine maintaining any large codebase without a
good type system.

~~~
mav3rick
It kind of feels wrong when dynamically typed languages add "hinting". It
means they admit that strongly typed is the way to go. Edit: typo statically
typed

~~~
shabda
Python designers have some thoughts on this :)

$ python -c "import this" | grep purity Although practicality beats purity.

------
netfl0
I remember betting hard on python in 2008. I was all in.

I watched as the ML space embraced it as the lingua franca. It was exciting.

Best decision of my career :)

~~~
eweise
I bet hard on java in 1998. Still winning... or am I?

~~~
manishsharan
depends on what you call winning. Java will continue be to be used for boring
enterprise applications, which are basically glorified CRUDs with pretty HTML
GUI.

Meanwhile, interesting stuff is being done on Python, Julia and R and Rust ,
if you also include system programming.

~~~
kamaal
Java is still where the excitement is. Also a few people would use Python for
serious production facing applications.

Python didn't even reach the fame Perl had in the 80s to mid 2000s.

Python is for beginner programmers, who absolutely don't want to learn
anything new at all.

~~~
shabda
> Python is for beginner programmers, who absolutely don't want to learn
> anything new at all.

Python is used by the largest companies as well as the smallest one person
company who need to get shit done. You can continue liking Java, without
becoming bitter about Python.

------
tus88
Do people who complain that Python doesn't have typing are effectively arguing
against the very existence of every scripting language and Lisp in the world?

~~~
silentsea90
Scripting languages are for writing scripts. Production code is much better
served by typed languages.

Use a Ferrari on a racetrack, use a fortified tank on the battlefield.

~~~
bArray
I'd go one step further, I would accept the existence of both typed and non-
typed "runtime" versions of Python (i.e. a run-time flag or program argument).
Writing a quick script? Reach for the non-typed version. Writing production
software? We ought to make sure we're type checking. Default to non-typed to
stop beginners breaking their code.

The same with something like JIT vs compiling, I don't want to find out that
some edge case a quadrillion loops in has some simple error a compiler could
have found.

~~~
L0stLink
mypy can be used to achieve the same effect, but I would also like the ability
to enforce types at run-time, and it would be great if more tools made use of
PEP 484.

------
leoc
Python, the World's Okayest Language.

~~~
kumarvvr
It's not okayest. It's a great language.

I cant really pin it down, but when I am programming in Python, the language
flows along with my thoughts.

During intensive programming sessions, I never really feel the difference
between my thoughts and the language flow.

I hope I make sense.

Often, I start solving a problem, solve a core part, then have to tack on
additional conditions or workflows and I can just think about them and build
them in python.

I have never had that happen in other languages and I have used C#, JS, C,
C++, Java, Scala & VB.

~~~
vinceguidry
You might find more luck with Ruby.

~~~
kumarvvr
Forgot to mention. I did try Ruby on Rails once, but somehow Ruby never grew
on me. Especially the symbols part. But I guess it was because, by the time I
tried Ruby, I was well over 10 years into Python stuff.

~~~
thunderbong
Ruby on Rails is definitely _not_ Ruby!

Is like saying I know Python because I've worked with Django. Yes, I'd know
the Python syntax and I'd be able to read Python code, but in my opinion I'll
really not get to know the soul of the language

~~~
dragonwriter
> Ruby on Rails is definitely not Ruby!

Rails is definitely Ruby, though not all of it. Non-trivial Rails work
requires non-trivial understanding of Ruby, though there is some of the
language and more of the standard library you can probably get by without in
most Rails work. That's true of work in any application domain, though.

OTOH, Rails is highly opinionated in ways which aren't universal in Ruby, so
it's quite possible for Rails to not click but Ruby to be a good fit for a
particular programmer. I personally like Ruby as a language more than I like
Rails as a web framework. Of languages of their general type, I go back and
forth between preferring Ruby and Python.

------
ggregoire
Seems more like it's eating the ML world. 80% of the new questions on
StackOverflow tagged Python are about pytorch, tensorflow, anaconda or pandas.

~~~
WilliamEdward
I noticed this trend too.

Python has immortalised itself in ML because it's extremely important to be
easy and clear if you want to write already complicated data science, and it
has the data structures that other languages just can't compete with.

Plus it's very close to pseudocode, and a lot of ML is spoken in algorithms.

~~~
nikofeyn
> it has the data structures that other languages just can't compete with

mind elaborating?

~~~
WilliamEdward
List comprehensions, dictionaries, as well as libraries such as pandas and
numpy with their linear algebra data structures are some of python's strong
points, i think.

------
breakerbox
I love HN so much for threads like this.

It is seriously one of the best places in the world to grab some popcorn,
hangout, and watch beginners, students, CEO’s, experts, consultants, etc rant
and rave about company X or programming language Y.

Genuinely love the spirit of HN, even if people say it’s different for the
worse now.

I assume there aren’t many places on the internet for nerds to publicly hang
out with experts and executives in their field.

On another note, many of these arguments talk about typing. Why say a language
must be static or dynamic, etc, when you can achieve both. Making a C# MVP is
much more verbose than python. Maintaining an untyped 3 million LOC monolith,
is likely harder than C#.

Everyone here is working on pretty different projects and codebases, so why
argue for one?

Anyone have gripes about mypy, or experience successfully using it(or an
alternative)?

~~~
m463
One of the biggest reasons I detest stack overflow.

I would see really interesting questions shut down with:

"this question will likely solicit opinion, debate, arguments, polling, or
extended discussion."

I wondered why they couldn't be inclusive and possibly just move the questions
elsewhere but let them live.

~~~
Avamander
It's basically the culture on SO to take what were meant as guidelines as
rules. Trying to question why should the rules forbid x or y will often end up
on tautological "because it's the rule", I've seen it multiple times.

------
nikofeyn
i feel like python is just the next c++. everyone rides the hype train and
thinks it’s gravy until 10 years later everyone realizes it’s full of mistakes
and yields unwieldy codebases readily. i have never developed python code and
said “this is fun” like i do with scheme and ml dialects.

~~~
smt88
Python is 28-ish years old. We've had plenty of time to realize its mistakes.
The current source of Python growth is its excellent ecosystem, which wouldn't
exist if the mistakes were that terrible. We are clearly not in some kind of a
Python hype bubble that will burst -- not that C++ ever was either, honestly.

(This is coming from someone who loathes Python, btw.)

------
buboard
It's not really "Eating" it the way that javascript was eating into the server
space. Python is a de facto fallback language, and is being used wherever
there isn't a better domain language, because it s well known. i dont think
developers with superior DSLs switched to python. it's like a broken clock
that s right many times a day. Even their graph shows that it's not really
cutting into any other major language

------
lostgame
As someone who has never used Python, has never had the need to, and doesn't
know the first thing about it - can someone quickly sell it to me?

And also, perhaps, recommend something for pure beginners to the language? I
know C/C++/C#/Obj-C, Java, Swift, JS, PHP, et al, to give some context.

~~~
silentsea90
Python is a language that feels natural and easy to read/write, and helps you
get sh*t done quickly especially for scripty/ml use cases.

~~~
Avamander
Also helps you get s*it done in small service cases, e.g. you need a small
HTTP API that returns you some database value, very easy to make compared to
majority of other languages.

------
tarsinge
I don’t know why, but my brain refuse to work natively with Python. I wrote
countless projects in more than 10 years of professional experience, from
small scripts to advanced ML, libraries are fantastic, and I still fight the
language.

In comparison with Ruby, even after years I can write complex expressions and
get standard library names just by guessing and be right. In Python it’s like
my brain is wired at the opposite of every convention. Even JavaScript feels
more natural.

I have 0 joy programming in Python even if I get the job done, whereas in Ruby
(or other languages) I’m instantly in the zone.

I know it’s purely a taste issue but I’m sad Python “won”.

~~~
out_of_protocol
Same here. And i even started with Python first. Something fundamentally
different here, "brain is wired at the opposite of every convention" is on
spot

------
xuesj
I like python.Python makes programming easy and efficient.python program is
easy to read.

------
segmondy
tons of things are eating the world. it depends on your world.

c/c++ are out there, crushing it. so is python and javascript and java and go
and c# and so on and so forth.

------
foobarbecue
Techrepublic is republishing last month's Zdnet article?
[https://news.ycombinator.com/item?id=20672051](https://news.ycombinator.com/item?id=20672051)

------
Iv
Good.

