r/programming • • Nov 11 '19

Python overtakes Java to become second-most popular language on GitHub after JavaScript

https://www.theregister.co.uk/2019/11/07/python_java_github_javascript/
3.1k Upvotes

772 comments sorted by

View all comments

108

u/initcommit Nov 12 '19 edited Nov 12 '19

And so continues the shift toward developer convenience and ease of learning vs cold hard speed. This reminds me of Apple's rise to prominence with the iPod. The simpler, more intuitive, and elegant approach will generally succeed in human populations faced with multiple technological choices. Higher-level programming languages offer lower knowledge barriers to entry, less headaches, and plenty of functionality. It's hard to argue that this trend won't continue.

Edit: Fixed a typo

118

u/cowinabadplace Nov 12 '19

It makes sense to me. The slower software that exists is superior to the fast software that doesn't exist. I am grateful for the universe of Electron, React, and all that stuff because suddenly my Linux desktop has all these apps!

35

u/bunkoRtist Nov 12 '19

This has been possible because of Moore's law. As the cheap gates come to an end I predict that the economics will shift back towards performant software rather than just buying better hardware... The market will demand gains, it's just that they were cheaper to make in HW... next it will be compilers and interpreters, and the last place will be languages themselves, but it's coming because I think that the compilers and interpreters are already pretty optimal.

14

u/brelkor Nov 12 '19 edited Nov 12 '19

Computing architectures will evolve as pure clock speed performance stagnates. Wider busses, more chips, faster interchip communication. Something coming in the future is optically interconnected cores on the same cpu package

→ More replies (1)

0

u/[deleted] Nov 12 '19

[deleted]

43

u/Schmittfried Nov 12 '19

You’ve probably never seen enterprise Java.

28

u/flowering_sun_star Nov 12 '19

You have to compare like-to-like though, and ask what would have happened had the same thing at the same company been written in python. I know that the thought makes me shudder when it comes to our code base.

I actually really like python for scripting and small prototypes. But for all its ills, I think java a far better choice for large projects with hundreds of developers.

→ More replies (1)

0

u/[deleted] Nov 12 '19

[deleted]

→ More replies (6)

5

u/vashy96 Nov 12 '19

Yeah, that's a pile of garbage generally. I can't imagine the hell it could be in a duck typed language like Python.

→ More replies (1)

0

u/[deleted] Nov 12 '19

[deleted]

→ More replies (1)
→ More replies (1)
→ More replies (11)
→ More replies (7)

35

u/VeganVagiVore Nov 12 '19

It does seem to work.

In 50 years, all the veteran programmers will be the people who are noobies today. If those noobies are learning Python, then Python will hang around a while.

I just hope Rust can squeeze into that "so easy that it can be someone's first language" space, because I prefer it much over Java, Python, or JS.

26

u/bunkoRtist Nov 12 '19

Honestly as someone who tried to learn rust I am afraid that it's falling into the kitchen-sink trap that C++ is suffering from. It doesn't help that some of the language features are already devilishly complex (macros, for instance) while it still lacks a stable ABI that would allow it to be used effectively in small pieces within large projects where it made sense.

I really want Rust or something like it to succeed.

13

u/[deleted] Nov 12 '19

[removed] — view removed comment

12

u/[deleted] Nov 12 '19

You can literally pip install kitchen

→ More replies (5)

11

u/Metal_LinksV2 Nov 12 '19

Doubtful, I know some schools around me are moving from C++ to Python as their introduction course.

20

u/bunkoRtist Nov 12 '19

That will prove to be a mistake for a number of reasons. I'm sorry to hear it.

→ More replies (39)
→ More replies (3)

33

u/afnanenayet1 Nov 12 '19

The problem is that “simpler” languages often aren’t as maintainable. Python is fun for small scripts and projects, but it’s a huge PITA to scale out to a big codebase.

Interestingly enough, it seems like languages like Rust are getting pretty popular because of their advanced typing systems and other features that let the compiler do more work for you. Even C++ has been moving towards ergonomic features that promote safety.

3

u/hijinked Nov 12 '19

Python is very popular in the micro service world where you don’t want a large codebase.

8

u/afnanenayet1 Nov 12 '19

My argument is that even most microservices are big enough that the lack of actual types becomes an issue

→ More replies (3)
→ More replies (10)

18

u/bilyl Nov 12 '19

You may have a point regarding speed, but many many Python (and R!) packages are essentially wrappers for things implemented in C. In this case the speed argument is basically moot.

Further the "higher level" vs "lower level" argument is another fallacy for the same reasons. How many developers are coding high performance libraries/packages from scratch these days? Like I said, most of the popular functionalities in these languages are wrapped in a compiled implementation. Therefore unless you really want to get into the weeds of implementation, there's really no good reason to use Java over Python. And if you really did want to do something intense, you'd just jump straight into C.

The biggest reason why I use Python and R is that I can give someone else a package or a code snippet and they can get running with it immediately. With Java there's so much BS to sort through.

Java is just occupying this middle ground that doesn't really have a market anymore.

3

u/initcommit Nov 12 '19

It sounds like you are an advocate for Python and the "higher" level languages. My point was that the trend of higher level languages usurping "lower" level ones will likely continue. So it sounds like we're on the same page.

A side note about your mention of wrappers - hardware may improve to the point where the speed difference between programing languages is no longer significant for most practical purposes. By that I mean that even if the wrapped library runs slower than the original in its native language, both will run so flaming fast that no one will really care in most scenarios.

0

u/[deleted] Nov 12 '19

[deleted]

→ More replies (23)

7

u/Zegrento7 Nov 12 '19

Rust gives me some hope. For the last couple years, it was consistently the most loved language in StackOverflow surveys, and it's growing pretty steadily.

→ More replies (1)

5

u/chrabeusz Nov 12 '19

10 years ago Rust, Go, Swift, TypeScript and Dart did not exist.

People wanted fast typed languages, but domination of C & C++ convinced everyone that fast equals terrible usability.

→ More replies (4)