Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

With such a rapidly growing user base and wide array of capabilities, Python might seem destined to become the lingua franca of coding, rendering all other competitors obsolete.

I realize it is weasel worded not to mean what it implies but statements like this is a surefire way to lose any credibility. Not that there was much underpinning besides some search engine popularity.

Nevertheless I'm baffled by python's popularity. With my admittedly limited exposure I would not reach for it again any time soon. When it is the right tool for the job?



How does that make The Economist "lose any credibility", when the very next sentence is

> That is unlikely, according to Grady Booch, IBM’s chief software scientist, who compares programming languages to empires.


Coming from a data science background, I wasn't surprised by this.

* From doing Engineering problem sets in Matlab and also using Java and C/C++ in CS classes, Java's inability to overload operators made it unbearable for anything math related.

* C/C++ wasn't bad to write small algorithms but as someone wanting to look at data, I really wasn't up for solving memory leaks.

* Then the big problem with languages like Matlab is they aren't general purpose programming languages. This meant things tooling around things like sending an email notification, creating a light web framework, etc. were limited, meanwhile, numpy's eco-system began offering many of the same benefits to the commercial data science libraries.


On the testing side of things it’s a really good option. It’s what I’ve mainly used and the Pytest test framework is incredibly flexible and powerful. I personally find it a much cleaner and more readable option when compared against Java. I’m migrating over to Websriver.io now only because I feel there is finally a good JS option that offers the flexibility needed for UI tests.


Python is in part a "quick and dirty" language that nevertheless has many advanced features, which means it's a great language to easily hack something together.

Whether to use it afterwards in production... it doesn't shine in the maintainable aspect (it allows for some killer one-liners close to perl level), or in the low level performance aspect, so there might be some better alternative for a particular case.

Still, Python and in particular Python 3.x is a decent compromise between hackiness and something more serious, so it's no surprise that many choose it as a starting point.


> When it is the right tool for the job?

Anytime you need a simple web app.

Writing powerful CLI tools. Take a look at AWS's Python API.

Data wrangling -- it has libraries for handling so many data formats.

Quick and dirty scripts. I've used it for many one-time scripts that need a bit more than regex.

Data science / analysis -- it has so many great libraries for math and data wrangling.

The biggest pain-point I have with it is around module handling. I'll often run into issues the first time I'm deploying a new pycharm project. The second biggest pain-point I have is around concurrency/multi-threading, but I think the concurrent.futures module might provide a decent solution.


> lingua franca of coding

In my very bubble, it kind of already is though, not because Python is so good in and of itself, but because you can express general coding/programming ideas in a readable and concise manner. The syntax provides a general way to get your ideas across to programmers with all kinds of backgrounds and to proove they also actually work, anyone can open a shell and see for themselves and tweak and play with your idea.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: