I <i>need</i> this to be satire or bot-generated.<p>1. Python Is Not Fast<p>It's fast enough and "fast" is relative<p>2. Python's Syntax Is Too Rigid<p>WTF???<p>3. Python Provides a Limited Programming Experience<p>I'm cracking up at this point.<p>4. Nothing Really Big Has Been Written in Python<p>Crying laughing at my keyboard.<p>Django, NumPy, just to start with<p>" you'd think someone would have done something more interesting with it by now than write scripts and simple apps. But they haven't, and they probably won't." AAAAHAAAHAHAHA
I see Python as the BASIC of the 2020s.<p>It's not to knock it, but the real strength of Python is as a language that the non-professional programmer can pick up right away and use to put their non-programming skills on wheels.<p>Jupyter, numpy, pandas, scikit-learn and such are the center of the ecosystem for many people. You can point your finger at these people and tell them to try Julia because it is better on paper... And they will, and they won't like it and they'll go back to Python.
2. and 3. sound like advantages to me.<p>1. seems straightforward, it would be better if a language was faster.<p>4. is debatable, most programs are not big, so most programmers shouldn't need to use a programming language better suited for big programs, as long as it provides other advantages, if they are not going to build a big program.
><i>This is great if you don't mind taking the time to follow all of Python's syntactic rules. But if you just want to churn out code quickly, Python is probably not the best language.</i><p>People have trouble following Python's syntactic rules?
“There are only two kinds of languages: the ones people complain about and the ones nobody uses.” ― Bjarne Stroustrup<p>This article is not useful, and not-particularly well-reasoned either. Best to let it drop.
These arguments don’t really make much sense. Python is easy to read, write and teach that’s why it’s a top programming language.<p>The point about speed is nonsense, python is fast when it needs to be due to the ability to optimize python with C/cpp extensions. Also the idea that “every millisecond counts” in 2022 is dubious at best, IoT is just one domain of programming and not even the most popular one.<p>I have never heard anyone comment about python’s syntax rules being hard to learn, in fact when I first coded in python I just jumped right in with my knowledge of Java and reworking snippets from stackoverflow. I know non-technical people who have jumped into python directly and they run more so into basic errors in logic like accidental quadratics than syntax errors in python, in fact that’s one of the strengths of python.<p>> knowing how to code in Python is merely one step up from knowing how to run programs in a Bash shell, which is not coding at all.<p>This is a silly point as well, the strength of python is beginners and even non-technical experts in other fields can program in a simple interactive environment via the REPL or jupyter and do real work. When they want to ship their software they can use the plethora of tutorials to deploy with docker or learn how to distribute wheels. 90% of my software development skills I learned from working on a project in production so I don’t really understand what your choice of programming language has to do with it.<p>> Nothing really big has been written in python<p>This is not correct, I think that python is not the best tool for writing a complex web application or web service. However there are many large complex Django apps for instance or ETL pipelines that are written in python.<p>I think if you were to write a fair version of this article the reasons why python shouldn’t be a top programming language are:<p>1) lack of a typing system like Typescript<p>2) no agreement on a standard way of packaging and distributing python programs<p>3) too many ways to accomplish the same task<p>4) the GIL<p>However, I think python should be the top programming language simply because it’s easy to learn, teach, read and write. No matter what problem you have in your python code you can usually google and find an answer or a tutorial. Like I said anyone with a little bit of coding experience can pick up python and accomplish real work in a few days and that’s powerful.
I think the assumption here is that programming is about making applications, which it's not. Python provides a fantastic way for moderately technical users to interact with the web, their computers, and their data.<p>I built something this week that takes a source document, extracts entities from the text, uses that to build a query, ranks the results and returns a load of relevant documents.<p>It's massively useful to me and my organisation, complex enough to require coding, but absolutely sufficient as a quick command line script.<p>I'm not a CS grad or a serious developer, I only got into coding in the last few years, but I can make all this awesome stuff without worrying about compilers, garbage collection, pointers and whatnot. Python rocks.
"I don't see any truly large, complex, momentous applications or platforms written in Python."<p>Except YouTube LOL. Don't get me wrong, Python is not fast. But every time you run into a bottleneck you just rewrite it in C/C++/Rust and move on.
Someone writing an article in 2022 about Python's speed, and only citing articles from 2020 is not being honest about Python's speed. There were major speed improvements in Python 3.8, which was quite new then -- the linked article was not specific about which subversion of Python it was using, so we don't really know what the comparison was. In addition: The article that actually compared the speeds of the languages did a really bad implementation of a speed test in Python. The time library in Python includes a function for performance testing, which wasn't used, so much of the speed difference could well be due to using the wrong resolution clock. Also, if you're doing numerical calculations for speed, you should be using numpy. So, yes, if you tie Python's ankles together, and time it using an analog clock on the wall, it will not post a faster time than an NCAA Division I sprinter at a track meet. Thanks, that's helpful.
Seen the same argument a decade ago over PHP for the same reasons a) PHP wasn't professional and enterprise ready, b) PHP cannot be taken seriously because it didn't have "this feature or that feature", and now look where we are. We at version 8 and PHP has still stood its ground in the face of how many other languages? Python is where PHP was a decade ago in relation to the points being argued over, and I believe Python will evolve enough to maintain its top place in years to come. And the reason for that is two points. First the huge community that underpins Python and secondly the continued development of the large library or module base it enjoys. And it has been said before. Each language is a tool and you apply the tool to the appropriate job best suited.
This is a very poor "article." When you write something today, you can't just say what you want without backing things up. In the first point "Python Is Not Fast" you would expect a table with one of many language benchmarks out there. Instead, you get the TIOBE index table. It makes no sense. And it's clear the author is not an expert in the field when he writes that Java is "not especially fast."
I appear to have very different taste is programming languages than most programmers. The languages I think of as amazing don't tend to gain traction, and the ones I dislike tend to be very popular. I've never gotten the appeal of Python, but a lot of people I respect adore it so try to see what they see.
I don't wholly disagree with the title of the post, but I don't understand the reasoning at all.<p>"1. Python Is Not Fast"<p>I'm not a software engineer and I don't have a background in computer science, but in my experience the question of "speed" is always a subtle one. Are you doing scientific computing? If so, there are plenty of Python wrappers that make it easy to run vectorized operations (instead of, say, running for loops). I don't buy the argument that "every millisecond counts" in every scenario. I can't distinguish between 1ms and 10ms when I'm throwing a basic script together.<p>"2. Python's Syntax Is Too Rigid"<p>Someone will have to explain this to me. I've never heard Python's syntax being called "too rigid". Python is not a good language to churn out code quickly? I've only heard the opposite ("it's too easy to churn out junk code quickly"). The only qualm I might understand is tabs vs. spaces.<p>"3. Python Provides a Limited Programming Experience"<p>> you could argue that Python is creating a generation of programmers who don't necessarily know "complete" programming. They just know how to write interpreted code.<p>I don't necessarily disagree -- although navigating the web of Python environment hell (obligatory <a href="https://xkcd.com/1987/" rel="nofollow">https://xkcd.com/1987/</a>) does force you to learn a thing or two -- but I don't see why Python being a popular programming language necessarily means everyone who uses Python is a programmer.<p>"4. Nothing Really Big Has Been Written in Python"<p>I'm not qualified to judge, so I'll just go back to studying C++. Big things have been written in C++ and everyone loves C++ !