Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Congratulations on your book! I am fortunate enough to know quite a few languages, so I decided to pick one for all my needs and it seemed Python fit them. Then I recently read on HN "Why Python is not the Language of the Future"

https://news.ycombinator.com/item?id=27562931

The arguments put forth seemed weak, but wondered what you thought



sort by: page size:

Python seems to me like an infinitely better choice. Every language has its warts but bringing up a new generation on a language that even the author admits was a quick and dirty hack takes "worse is better" cynicism way too far.

Python received much of its latest praise from introductory level college students that haven't done much programming other than "import numpy". I've used python and sure i like it better than other "bad languages" but when you look around in the real world you see that it's not the best or the most popular choice.

- cloud/ops space has moved to Go

- Java/C# are overall better languages and more productive environments than python for large scale services.

- A million websites still use php and the community is thriving. Billion-dollar companies use ruby to transact billions of dollars (stripe,shopify).

- Js is eating the world

Python found its niche in AI/ML space and sure is a great language but that's it?


I have a few questions since you have a broader view.

What other languages do you prefer ?

What python traits do you think are weak ? (I'm no python fanatic but I like it as a tiny swiss army knife)


I think Python definitely has its drawbacks, and it's not fast. The other downsides listed in that article (whitespace, variable scoping, lambdas, mobile, etc.) may also be get in your way sometimes, but seems doubtful that they are language killers...I agree the argument presented in that article is weak.

I'm biased, but I think Python as your daily driver language is a great choice.


That was partially the author's point. However, he came from the other direction: If you want a statically typed language with powerful asynchronous tooling then maybe Python is not the right choice. There are already languages that are great at that. So why make Python that's already great at being Python less good at being Python and instead into something that other languages are already great at?

the reason this is a conversation is because of how massively successful Python has been at the intersection of "reasonably simple syntax, reasonably simple language, reasonably simple runtime, reasonably simple builtins".

Python is the biggest victim of its own success. There have been warts in Python since the beginning, but they mostly only look like warts in retrospect because of how much Python has shifted the conversation about what a language _could_ be.

I hope someday something truly better along all the relevant axes will replace Python. But Python has maximized utility along so many of those axes that it's an (observably) uphill battle for everybody who is currently trying.


That article makes some really good points, but I disagree. To me, Python is quickly becoming a good middle ground where I can use these powerful functional ideas, then drop down to imperative whenever I need to. In particular, this means that I can use Python to do scientific computing or to easily work with native libraries while still maintaining a lot of the functionality of more pure languages.

The reason I am annoyed with Python is simple.

It isn't that Python is a bad language--it's just not very good. Which is fine: plenty of languages are not very good and I don't mind. The issue is that it is extremely overrated, especially here on HN. And this translates to real inconvenience for me--I am forced to use Python when I would be better off with something else.

So the issue is not that I'm not willing to learn--I am! I even know Python fairly well (I do use it both at work and in classes, after all). And I am familiar with plenty of other languages, some worse but several better. So it is going to annoy me when somebody--yet again--presents Python as the best language you absolutely have to learn.

If you already know some similar languages, learning Python next is not your best option. Learn something interesting and different: Scheme, Scala, Clojure, Haskell, C, Go, assembly, Smalltalk...etc.


I have never got serious about python until very recently(I mean about one week), the more I dive into it the more I am convinced yes python is the future in the sense it does the below:

    replacing BASIC(i.e. good for beginners)
    replacing Java in colleges for intro to programming
    replacing matlab(ipython jupyter)
    replacing R for ML and big data
    great for web scraping
    replacing Perl and probably shell scripts for CLI scripting.
    strong backend framework candidates such as flask and django comparing to php/javascript frameworks too.
    micropython runs on resource constrained systems so it can replace Lua there.
    C friendly so you can optimize performance bottleneck when there are any.
The only missing area I can see, is that it is not designed for html/css/js frontend, so you have to use javascript there.

yes, Python could be the future of programming.


It was not designed to those things and there are many other languages that are way better in many aspects of software engineering than Python ever will be with type checks and other relatively minor improvements.

I consider Python as the lingua francua that gets the job done, easy to train new programmers to use it and there are several C/C++/Fortran/Rust libraries written so it can do things performant enough to be relevant. There was nothing new introduced by Python that other languages took from it which shows that there is nothing groundbreaking about it.

I think Python is the quick and dirty, not too smart glue languages with a mediocre module system and many footguns. I think Sussman pointed out that the world needs more library gluers than it needs very smart software engineer who create those libraries. Python is the proof of this theory.


The subtle overtone here is the rather sensible conclusion that Python is not going to be an "everything language". I think the defining characteristic of a successful language designer is the ability to recognize and acknowledge the inherent limitations in your own language.

Python is a very widely used language, and like any popular thing, yes many many many like it , and many many many dislike it .. it is that big, python can be disliked by a million developer and still be a lot more liked than disliked

but i also think that its true that python is not and have not been for a while considered as a modern or technically advanced language

the hype currently is for typed or gradually typed languages, functional languages, immutable data , system languages, type safe language, language with advanced parallelism and concurrency support etc ..

python is old , boring OOP, if you like it, than like millions of developers you are not picky about programming language, you use what works, what pays

but for devs passionate about programming languages, python is a relic they hope vanish


I don't think Python is a bad language, it just often gets used where it shouldn't.

Python is one of the few languages that has a balance of ease of use, ecosystem, ubiquity, and useable type system. It's a fantastic glue language and it's extremely flexible.


And that's exactly the problem. In liberal arts educations (such as the one I'm receiving) or even at universities such as MIT, Python is the language of choice. It's great fun to teach, very easy to learn, but it's not an industry standard, and many would argue that it's too easy to use.

I like how the article breaks up the headings into "Where Does Python Work Well?" and "Where Does Python Fall Short?" Asking whether Python is better than language X is like asking whether a screwdriver is better than a wrench; it's entirely determined by what you're trying to do.

One thing I've noticed in four years of using Python professionally is it changing rapidly. Even just the difference in the role of types in Python has changed to answer to where Python works well and where it falls short. Anyone reviewing articles like this should keep a keen eye on the publication date for this reason (which unfortunately this articles does not have).


Python seems adecuate, big ecosystem in many domains, language gets out the way for quickly writing stuff.

Note: not a fan of python as a language.


Python is more accessible in modern times than C, assembly, and Fortran.

But we are SO far past that now. My argument isn't for what should have happened in 1995, it's for the complacency which has allowed Python to become the top 1 or 2 language in 2022. It's like having proximity detectors on the back of your car, but you still start the vehicle with a crank at the front. We can do better; we have the technology.


These are the kind of comments that really made me feel insecure when I started out to program. Every programming environment/language has its advantages and drawbacks and python is obviously not a terrible language. People build amazing stuff with python.

I don't claim that Python is the perfect language and it will never be replaced, in popularity, by something that is better.

What I'm saying is that considering Python a bad language, just because there are some languages that improve on some of its shortcomings, is just wrong.

As of today, Python is the most popular, hence (as a corollary) the best choice for most people. One day that might change, sure. These aren't mutually exclusive.

I don't agree with the claim about the market not being "rational". Someone who adopts Python even when given requirements that are clearly beyond the language's capabilities isn't going to last long in such market (and neither will their choices).

On the other hand there are plenty of people (myself included) who prefer using Python whenever possible, even though they have been "educated" in the use of other languages (I'd say I'm fairly comfortable with Typescript or even C building non trivial systems). I guess I'm not innovative enough :)

next

Legal | privacy