People have trouble following Python's syntactic rules?
I'm struggling to understand what the author is trying to argue here.
If Python's whitespace takes getting used to, then you're probably poorly formatting your code to begin with.
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.
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.
Exactly this. At this point I'm not sure where I'd even go for the tasks I use this suite of tools for. I'd check out Julia but I haven't run into many problems that would inspire me to switch.
(this was a genuine question as someone who primarily writes code in Python for fun, not professionally, and is looking to level up for fun)
While its ecosystem is surely much smaller than even Julia's, Nim [1] has a lot of the concise, lexical feel of Python, but semantics more like Modula3/Ada and with Lisp-like syntax macros/metaprogramming to fill in other gaps.
Another possibility is Cython [2] which is basically a superset of Python with gradual typing..more targeted at writing new C-like Python modules/leveraging the Python runtime environment than "standing on its own".
1. Python Is Not Fast
It's fast enough and "fast" is relative
2. Python's Syntax Is Too Rigid
WTF???
3. Python Provides a Limited Programming Experience
I'm cracking up at this point.
4. Nothing Really Big Has Been Written in Python
Crying laughing at my keyboard.
Django, NumPy, just to start with
" 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
1. seems straightforward, it would be better if a language was faster.
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.
There are also many, MANY ways to make it faster if it actually matters, but it rarely does.
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.
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.
> 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.
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.
> Nothing really big has been written in python
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.
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:
1) lack of a typing system like Typescript
2) no agreement on a standard way of packaging and distributing python programs
3) too many ways to accomplish the same task
4) the GIL
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.
Easy to teach? Yes, but the language is getting bigger and more complex with each passing year. Add having to teach typing and it is already difficult.
Easy to write? Maybe, with a bit of getting used to.
But easy to read? Hell, no. In fact, it is one of the hardest languages to read, double that when you need to understand a big project. Triple it if that project has a bunch of classes entwined together.
You make good points on the other reasons, though. Python really needs a good and simple standard for packaging. Lack of good typing system is maybe a con if you actually can make good case for adding the whole typing complexity. In a language like Python, I don't really see it. The many ways of doing the same thing is also a major con, as well as the lack of good multi-threading options.
"However, I think python should be the top programming language simply because it’s easy to learn, teach, read and write."
Again, this was the case in the past. Now, things have changed for the worse.
But yeah, the article itself is nonsense. Speed? C extensions cover that if you need it. Bad syntax? Nonsense. What limited experience? The last argument is a sad joke, at least I hope it is.
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.
This article is not useful, and not-particularly well-reasoned either. Best to let it drop.
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.
It's massively useful to me and my organisation, complex enough to require coding, but absolutely sufficient as a quick command line script.
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.e., I cannot read that page without enabling JS in my browser... :-)
This person (bot??) has never used Python.
"1. Python Is Not Fast"
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.
"2. Python's Syntax Is Too Rigid"
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.
"3. Python Provides a Limited Programming Experience"
> 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.
I don't necessarily disagree -- although navigating the web of Python environment hell (obligatory https://xkcd.com/1987/) 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.
"4. Nothing Really Big Has Been Written in Python"
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++ !
OpenStack and Ansible are pretty large applications/ecosystems