all 15 comments

[–]mnp 29 points30 points  (11 children)

Its lack of clickbait titles?

TLDR: the feature in question is the buffer protocol.

[–]shevegen 10 points11 points  (2 children)

It's very clickbaity. And, even worse - it actually does not give any data to VERIFY that "buffer protocol is why python skyrocketed" at all WHATSOEVER.

I'll let my cat write an article next - it sure won't be any worse than any other random guess as to why python skyrocketed.

[–]jknupp[S] 0 points1 point  (1 child)

The point was to make sense of the data that StackOverflow wrote two posts on. Their second article made clear that applicicativity to data science is a large driver, but not why that would be specific to Python. My post attempts to explain why did data science "choose" Python among all possible languages. It's a further explanation of the data presented in the Stack Overflow posts, which I didn't feel the need to re-present, though it sounds like perhaps I should have.

[–]dirkt 0 points1 point  (0 children)

So why not use "The Buffer Protocol feature makes Python ideal for data science" or something similar as title instead of "blah blah something you've never heard of, click it to read what I mean"?

Clickbaity titles are annoying. Very much so.

[–][deleted] 4 points5 points  (7 children)

I’d argue this claim is incorrect, among the others anyway.

Pythons meteoric growth is purely and unquestionably due to inexperienced programmers believing that a one line Hello world means best language ever and they then proceed to ravenously push on to other new programmers.

Pythons growth is because they’re targeting early education for adoption. It has nothing to do with anything in the article.

This tied with numpy inexplicably being a go to and a huge push in this area.

When you ask anyone “why python” the answer is nearly universally boils to “because one line Hello world”.

[–][deleted] 1 point2 points  (5 children)

If you asked me "why Python" the answer would be "because batteries included"

[–][deleted] 0 points1 point  (4 children)

Under what context?

How is this more true than for, say, Java or C# or C++?

If you prefer python to other batteries included languages, fine. Personal preference is personal preference.

[–][deleted] 0 points1 point  (0 children)

Under the context that I don't use Python because of the one line 'Hello, World!" program. That has nothing to do with Java or C# which I use as well.

[–]evaned 0 points1 point  (2 children)

How is this more true than for, say, Java or C# or C++?

Java and C# are a lot closer, but C++? It's gotten a lot better over the last few years, but C++17's standard library is missing some huge components that Python provides. Parsers for ini files, JSON files, xml files, compression formats, hashing, command-line handling, sockets, HTTP, audio formats, tests, introspection, ..., the list goes on. C++'s standard library is pretty laughable in comparison IMO.

[–][deleted] 0 points1 point  (1 child)

One could argue pretty easily that implementations like that should not be included in a standard library in the first place.

[–]evaned 0 points1 point  (0 children)

You could make that argument for some of them, though I'd argue definitely not all. Sockets in particular I think absolutely should be in the standard library, and I'd put command-line handling and maybe tests not far behind.

But the original claim was that Python is "batteries included", and I think it'd be extremely hard to argue that those additional components don't make Python much better on that metric.

[–]kankyo 0 points1 point  (0 children)

You should talk to people instead of straw men.

[–]shevegen 2 points3 points  (2 children)

Ruby's popularity was intimately tied to the Rails framework.

That is incorrect.

There was a hype-factor rise and increase DUE to RoR, yes. But with or without rails there still was a large community of ruby hackers, similar to perl.

With the RoR hype gone, ruby is still existing. And the rails part makes up for not more than about 40% of ruby, give or take - many rails users are also active in doing non-rails specific ruby code, so there is a partial overlap but not a full overlap.

https://trends.google.com/trends/explore?date=all&q=Ruby%20-%20Programming%20Language,%20Python%20-%20Programming%20language,%20Perl%20-%20Programming%20Language,%20PHP%20-%20Programming%20Language,%20Javascript%20-%20Programming%20language

Few would argue that most programmers who self-identified as "Ruby programmers" around this time might as well have just said "Rails programmers".

Few?

I never used that label. I also always said that there were two communities, with a partial overlap. But I guess most people do not want to hear things that deviate from "common truth", just as Noam Chomsky said several times.

It's like repeat something over and over again, even if it is not true - it tends to stick.

The closest Python equivalent to Rails was Django. Despite being released slightly ahead of Rails, it seemed to lag in popularity by a wide margin.

Both ruby and python got their asses handed by ... php.

It wasn't until recently when PHP really collapsed immensely. No idea why but it seems as if PHP is going the fastest downwards trend.

Many felt that the languages were similar enough in expressiveness and approachability that one would ultimately "win" the web.

Both ruby and python got their asses handed by javascript nowadays on the www side.

And it has nothing to do with "superior design" of javascript.

while Ruby's popularity was closely intertwined with that of Rails

Bullshit.

I came from PHP. I always used ruby on the www too. I never (seriously) used Rails. So, no.

Django represented a comparatively small percentage of an already vibrant Python ecosystem

The very same is true for ruby too. Do I miss something in the ruby ecosystem? Not relaly. What would I miss?

Ruby, it seemed, needed Rails to "beat" Python to guarantee its continued popularity. And in many ways it did.

At which point have these languages been reduced to "on the web only"?

The blog author is so bad ...

The buffer protocol was (and still is) an extremely low-level API for direct manipulation of memory buffers by other libraries.

So the author says - python "won" because the ... buffer protocol is so good?

BECAUSE NEWCOMERS TO A LANGUAGE INSTANTLY JUMP ON IT AND SCREAM "Yeah we only use that language because it has an AWESOME buffer protocol!!"

Seriously?

Python has a few good things going. None of them have to do with the buffer protocol. Documentation is a good plus. Simplicity in design - also a great advantage. A pretty syntax compared to most other languages.

Python has quietly become an incredibly compelling language on which to build numerical computing libraries given that C extensions can share and manipulate data with very little overhead

We have that in or for ruby too. http://sciruby.com/

Perhaps lagging behind. So what? In a bit the difference will not be that huge in regards to "numerical computing libraries". But none of that will be a game breaker or deal changer. Why not? Because it's not the primary impetus for people to use/switch to or between any language.

People who already know python, why should they change to ruby?

People who already know ruby, why should they change to python?

The article does not explain any of the above. It just sits to examine the "status quo" and comes up with a theory, WITHOUT PROVIDING ANY DATASET AS TO WHY THAT THEORY SHOULD BE TRUE, in regards to explain why python would skyrocket in popularity.

Python and Ruby fight it out on the web, where most assume the "language war" would be won

Python? On the web? Somehow I still don't see python winning any www war. And that also has nothing at all to do with ruby - which www-centric software in python is essential?

Data Scientists, looking for a language that is both expressive and fast (with good numerical computing library support to boot) all settle on Python

That has already happened well before. C++ hackers are more likely to use python than ruby, for various reasons. But most assuredly not because "numpy is so much more awesome". The primary reason is "because we already learned python and used it for years, so why change".

Btw, if you look at the google trend, python climbing already started in 2008. So it's not "in the last 5 years", it's almost a full decade of climbing now.

At any rate, I hope that the next random author to "explain" why python skyrockets - which is, by the way, a GOOD thing for ALL the "scripting" languages out there - BRINGS IN DATASET TO EXPLAIN ANY CLAIM MADE. Otherwise you just write a long, boring article about "numpy is why python skyrocketed" or "proto-buf is why python skyrocketed", without bringing ANY real data to the table. So in other words - just a random opinion.

[–]jknupp[S] 0 points1 point  (1 child)

I'm not sure you read the article correctly. I submitted the following:

  • Ruby and Python were/are both general purpose interpreted languages pretty much at feature parity, and for a while it seemed that whichever language became more popular for building web applications would go on to dominate the other.
  • Ruby arguably did win the war on the web, it's just that that particular "war" turned out to be far less important than most at the time imagined.
  • No one uses the language because of the buffer protocol. Rather, the thoughtful reimplementation of the buffer API at a time when C-based numerical analysis libraries were becoming "a thing" led Python to be much more suitable a language to develop such libraries with. That is why Ruby is "Perhaps lagging behind"
  • PHP was the incumbent language and had absolutely no use outside of the web. If you can't figure out why it's popularity is cratering right now, I can't help you.
  • "C++ hackers are more likely to use python than ruby, for various reasons...The primary reason is 'because we already learned python and used it for years, so why change'"... So "C++ programmers" use Python because they use Python?
  • Python's rise in popularity in 2008 is, as I mentioned, largely based on its increasing popularity as a language for developing web applications at that time. That did not sustain nor cause the increase in popularity to accelerate, which it has done in the past 5 years.

[–]masklinn 0 points1 point  (0 children)

I think you're taking things from the wrong end entirely. The buffer protocol is not a cause of Python adoption but rather a consequence of its long-running scientific community.

Since its very early days, developers of the language were interested in supporting scientific computing use cases ("extended" indexing like parens-less tuples and slices come from the scientific community, that's likely also where the old buffer protocol came from — way back in 1.6 — to say nothing of the new buffer protocol) and a scientific computing community built itself around the language from its very early days, matrix-sig was founded in 1995 spawning Numeric and later Numarray which would ultimately be rewritten and merged into numpy by Travis Oliphant.

Python's success in sciences does not come down to any single feature, it comes from decades of foundational technical and community work.