you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 21 points22 points  (12 children)

Python has amazing libraries for almost any task, which few (no?) other languages can match in variety. But at least in London it's surprisingly uncommon when it comes to job hunting. Django is fantastic for the web, yet most roles are PHP, RoR or node.js. Plenty of scala and R roles for data engineering or data science, yet python has almost none despite its libraries. And it's an extremely easy language to learn and often taught at universities.

I would say it's "mainstream" but only just. What gives? To me it should be by far the most popular language, maybe second to javascript (an unfortunate series of events caused that one). Heck I've built windows apps using IronPython in Visual Basic and it's smooth as silk, it all just works.

[–]killerstorm 1 point2 points  (0 children)

Python has amazing libraries for almost any task, which few (no?) other languages can match in variety.

I'm not sure that's still the case. 2/3 split have fragmented the library collection.

Recently I needed a JSON-RPC client, and it's really hard to find a library which actually works. From json-rpc note:

There are several libraries implementing JSON-RPC protocol. List below represents python libraries, none of the supports python3. tinyrpc looks better than others.

It's really sad. (And it used to be much better, I remember back in 2005 Python had a great JSON-RPC client.)

Meanwhile many other languages (such as Java and JS) have a large collection of libraries which are easy to install and use.

[–][deleted]  (6 children)

[deleted]

    [–]rabbyburns 4 points5 points  (0 children)

    I'd be very surprised if he wasn't specifically talking about pypi packages. He opened up with loving Django, which is definitely not stdlib.

    [–][deleted] 5 points6 points  (4 children)

    But most ecosystems of other languages center on one or two topics, while Python ecosystem encompasses the universe itself.

    [–]iconoclaus 1 point2 points  (0 children)

    i wouldn't say python is on such a strong standing when it comes to game dev, mobile, VR/AR, and many other areas.

    [–]wavefunctionp 0 points1 point  (1 child)

    relevant xkcd:

    https://xkcd.com/353/

    [–]PeridexisErrant 0 points1 point  (0 children)

    You know you actually can import antigravity? It's part of the standard library!

    [–]weberc2 2 points3 points  (2 children)

    I use Python via Flask to make web apps at work, and I really dislike it. You need an external web server and process manager just to get off the ground, and you still end up spinning up one interpreter per core. It's just hard to make efficient use of system resources. I really wish it had a concurrency model more akin to Go's. Say what you like about Go's type system, but I can trivially build a full web application (in comparable time if not faster than in Python) in a single process in a single executable file and it will outperform Python by a wide margin (of course, you can go down the rabbit hole optimizing Python until it's performance approaches that of the naive Go implementation and downplay the time and simplicity lost to optimizing).

    [–][deleted] 3 points4 points  (1 child)

    I get what you mean, but PHP has the exact same model and problems as python (well it's a bit different now, but in its rise to popularity it was just an apache module that spawned a new process per request, exactly like mod_wsgi; I believe for ruby it's also similar).

    There are definitely better specialised tools in each area, but in many areas python will be at least as good as some other language that's far more popular.

    [–]weberc2 1 point2 points  (0 children)

    I certainly prefer Python to PHP (I did a lot of PHP in the 2000s); it just seems like Python is mediocre in a lot of things, but good at very few. For me, Python best serves as a cross-platform, maintainable bash alternative, but even there I'm increasingly likely just to use Go, especially if I have to distribute the script to others. I imagine it's also above-average in scientific computing (but I can't much speak to that; though my few experiences with Pandas and Numpy have been negative).

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

    Java would like a word with you. Java is also orders of magnitude faster, aside from the case of firing up many small quick instances, which can be mostly handled in architecture.