

Python Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages? (blogspot.com) 67
In 1989 a computer scientist argued that more functionality in software actually lowers usability and practicality — leading to the counterintuitive proposition that "worse is better". But is that still true?
Python's original creator Guido van Rossum addressed the question last month in a lightning talk at the annual Python Language Summit 2025. Guido started by recounting earlier periods of Python development from 35 years ago, where he used UNIX "almost exclusively" and thus "Python was greatly influenced by UNIX's 'worse is better' philosophy"... "The fact that [Python] wasn't perfect encouraged many people to start contributing. All of the code was straightforward, there were no thoughts of optimization... These early contributors also now had a stake in the language; [Python] was also their baby"...
Guido contrasted early development to how Python is developed now: "features that take years to produce from teams of software developers paid by big tech companies. The static type system requires an academic-level understanding of esoteric type system features." And this isn't just Python the language, "third-party projects like numpy are maintained by folks who are paid full-time to do so.... Now we have a huge community, but very few people, relatively speaking, are contributing meaningfully."
Guido asked whether the expectation for Python contributors going forward would be that "you had to write a perfect PEP or create a perfect prototype that can be turned into production-ready code?" Guido pined for the "old days" where feature development could skip performance or feature-completion to get something into the hands of the community to "start kicking the tires". "Do we have to abandon 'worse is better' as a philosophy and try to make everything as perfect as possible?" Guido thought doing so "would be a shame", but that he "wasn't sure how to change it", acknowledging that core developers wouldn't want to create features and then break users with future releases.
Guido referenced David Hewitt's PyO3 talk about Rust and Python, and that development "was using worse is better," where there is a core feature set that works, and plenty of work to be done and open questions. "That sounds a lot more fun than working on core CPython", Guido paused, "...not that I'd ever personally learn Rust. Maybe I should give it a try after," which garnered laughter from core developers.
"Maybe we should do more of that: allowing contributors in the community to have a stake and care".
Python's original creator Guido van Rossum addressed the question last month in a lightning talk at the annual Python Language Summit 2025. Guido started by recounting earlier periods of Python development from 35 years ago, where he used UNIX "almost exclusively" and thus "Python was greatly influenced by UNIX's 'worse is better' philosophy"... "The fact that [Python] wasn't perfect encouraged many people to start contributing. All of the code was straightforward, there were no thoughts of optimization... These early contributors also now had a stake in the language; [Python] was also their baby"...
Guido contrasted early development to how Python is developed now: "features that take years to produce from teams of software developers paid by big tech companies. The static type system requires an academic-level understanding of esoteric type system features." And this isn't just Python the language, "third-party projects like numpy are maintained by folks who are paid full-time to do so.... Now we have a huge community, but very few people, relatively speaking, are contributing meaningfully."
Guido asked whether the expectation for Python contributors going forward would be that "you had to write a perfect PEP or create a perfect prototype that can be turned into production-ready code?" Guido pined for the "old days" where feature development could skip performance or feature-completion to get something into the hands of the community to "start kicking the tires". "Do we have to abandon 'worse is better' as a philosophy and try to make everything as perfect as possible?" Guido thought doing so "would be a shame", but that he "wasn't sure how to change it", acknowledging that core developers wouldn't want to create features and then break users with future releases.
Guido referenced David Hewitt's PyO3 talk about Rust and Python, and that development "was using worse is better," where there is a core feature set that works, and plenty of work to be done and open questions. "That sounds a lot more fun than working on core CPython", Guido paused, "...not that I'd ever personally learn Rust. Maybe I should give it a try after," which garnered laughter from core developers.
"Maybe we should do more of that: allowing contributors in the community to have a stake and care".
Re: I don't think anyone cares (Score:3)
First mention I can find is here
https://science.slashdot.org/c... [slashdot.org]
He is missed for sure.
Re: (Score:1)
Re: was there ever an obit as promised? (Score:2)
That was the clincher for me.
Re: (Score:1)
Re:Rossum (Score:4, Interesting)
Capek was Czech, and in Czech "robota" means a very specific type of work: corvee. Work for the feudal lord as a form of taxation.
https://en.wikipedia.org/wiki/... [wikipedia.org]
Re: (Score:2, Informative)
Nah, Paul Stanley and co were around in the 70s.
Yeah it's nice if all your users sit down the hall (Score:1)
Then it doesn't matter if there's a glaring bug or missing features because the glaring bug can be avoided by handshake agreement and the missing features simply don't exist in your little social bubble of geeks.
I've written and worked on several large (100kloc+) pieces of software like that over the past 20 years or so.
And then a commercial package comes along that costs something north of $50k/seat but actually fixes all those bugs and handles the corner cases y'all were too lazy to implement.
But of cours
Yes. (Score:5, Insightful)
Feature-itis is the death of usable, useful software, commercially or Open Source.
I don't mean you can't SELL such software (*cough*MS-Office*cough*), but the software sucks.
Apple's success is understanding that one simplifies by removing choice, and this helps _most_ people find the software more usable and useful.
(And no, Apple doesn't walk on water, and yes, they make tons of mistakes and bad choices. No fan-boi here.)
There are a number of constituencies who will _hate_ software simplified this way. One of those is the typical developer, who's an "ultimate customizer" and typically wants all the options available and discrete control over them.
This difference between developers and "most people" is one of the reasons so much software has awful usability: Developers build it for someone like themselves. If there's no one with the professional capacity of evaluating a design's usability, or no corporate will to understand and implement the findings of such an evaluation, the software is gonna suck, for most people.
Yes, there are a few unicorns out there: Developers who know that the typical developer isn't like most people, and can empathize with people who aren't customizers. But they're scarce as...unicorns.
And there are a few use cases out there (IDEs, for example) built for these customizer constituencies, which do well by providing all the options for them. It's often hell getting these expert-focused tools past the usability staff, who, obviously, aren't like developers, and can't see their own blind spot here.
Re:Yes. (Score:4, Insightful)
Since the article is talking about the development of the Python language itself, this would fall into the category of software used by "customizers" who do want everything.
Even in software development tools and languages, there is a such thing as too many options. Cygwin is one such developer tool, where you have hundreds of options at install time. At that point, I have no idea about half the options.
On the other hand, one of the reasons I *love* .NET programming, is that it has a million built in tools and classes. Whatever it is that I want to do, there's something already built that does that for me. That let's me focus on what I'm trying to achieve, instead of making my own nuts and bolts. Even there, Microsoft took steps to simplify their installer, so you only have to pick from a few options, but if you want to choose at the line item level, you can.
So it's a balance, even for the most option-hungry among us.
Re:Yes. (Score:4, Insightful)
.NET was actually designed as a programming language specific to Microsoft Windows. Python was designed as a scripting language because perl tried to be a programming language and grew into an unusable mess. Python then mimicked perl and did the same thing, becoming a travesty of a programming language, IMO. So many bad design decisions trying to make it a programming language, ditto with perl.
Re:Yes. WRONG (Score:4, Informative)
" .NET was actually designed as a programming language specific to Microsoft Windows. "
Wtf... that's wrong on so many levels, not sure how it was labelled insightful. .
NET is a framework, NOT a language. You can program against the framework using C# (most common), F# or VB.
https://dotnet.microsoft.com/e... [microsoft.com]
And it was specifically designed NOT to be platform dependent, MS woke up and moved away from being Windows dependent, .NET was intentionally architected to be multi-platform:
".NET is supported on Android, Apple, Linux, and Windows operating systems. It's available in several Linux distributions, like Red Hat Enterprise Linux and Ubuntu."
https://dotnet.microsoft.com/e... [microsoft.com]
Re: (Score:2)
It definitely was designed to be windows only.
But it evolved to support more platforms.
And that took: 20++ years!
The first ones putting .Net onto another OS was mono: command line only. Probably with bindings to some GUI lib like wxWidgets or GTK.
Re: Yes. (Score:2)
SAD
Re: (Score:2)
I love that you're currently 50% Insightful and 20% Informative, when in fact, you are wrong, and confidently spreading misinformation.
Way to go Slashdot.
Re: (Score:2)
The "Score:4" is a link to the breakdown (not Insightful).
Re: (Score:1)
Re: (Score:3)
Re: (Score:2)
Re: Yes. (Score:4, Interesting)
Re: (Score:2)
Same here. My dev toolset is vi-gcc-gdb-strace. Done. Can't be arsed with some IDE that requires me to create a friggin "project" or "solution" before I can write a line of code never mind compile it and buries some compiler options 2 or 3 levels down.
You kids (Score:3)
Get off my lawn!
Re: Yes. (Score:2)
âoeI also hate over-complicated toolsâ
âoeI use a small subset of Emacsâ
Hmm. . .
Re: Yes. (Score:2)
Re: (Score:2)
But it is also usable as a simple editor - opposed to Visual Studio, Eclipse, etc. Visual Studio
I do not know what your mental problem is.
In those three IDEs above, you open a text file. Start typing and save it.
What is the fucking problem?
Re: (Score:2)
An IDE does not force you into a box.
It is just the same as Emacs: with different keyboard shortcuts.
Aka: a fancy text editor.
You are an idiot.
Re: (Score:2)
I've ended up coming back to Emacs for the same reason. My customization is adding in Vertico and Consult, as I really love them for moving through large projects, and org mode. But I add as few commands as possible, just adding functionality to the basic way Emacs works.
And this allows me to pop in fzf and ripgrep for handling project searches and such, or not if I'm on a machine where such are not available, and it doesn't affect what I can do. Only to some extent speed and convenience. Very UNIX way. I r
Re: Yes. (Score:3)
>Apple's success is understanding that one simplifies by removing choice
It's not just removing choice. It's (presumably) designed to streamline the most popular use cases.
The rest of your comment sounds like the standard tug of war between engineering and marketing.
Simplicity is great... when you nicely fall into the use cases the sw is designed for. The problems and grumbling starts when you need something beyond the imagined use cases.
Re: (Score:2)
One reason I actually really like MacOS is theres this big glossy dumbed down but efficient UI but under the hood its basically UNIX with all the bells and whistles one would expect from UNIX (all your awks and seds and greps , everythings a file, etc etc etc). Which means my mother can drive MacOS happily clicking on the big colorful buttons that do precisely what they say they do, but I can flip open a terminal and start micromanaging the kernel execution scheduler. (I'm sure there must be something simil
Re: (Score:2)
I guess that would be gnu/linux. I'm not a purist on that issue.
In any case, while I jest, I take your point... MacOS is the same as linux in that respect, UI of your choice (whatever you call your desktop on a mac) and UNIX underneath.
Re: (Score:2)
The main difference is that with Linux, I can install Mint for my parents, meaning they pretty much never need any tech support at all, while I run a customized Fedora with Niri, so I have as little fluff as possible eating battery life and getting in my way.
I got really tired of MacOS changing things with every major version, so I no longer have any Macs. Yes, they have better hardware for my use case, but I just can't be bothered to keep tweaking and faffing with the OS. Once I have it set up as I want it
Re: (Score:2)
Total agreement here. I have a small library of virtual machines that crystallize development environments (main purpose) of older projects.. That way I can still demo the software without doing any language "upgrades" or any such waste of my time.
Re:Yes. (Score:4, Interesting)
It's actually dependent on culture.
When I was in Japan I noticed appliances had a TON of buttons. The remote control for the hotel room AC was wild. It had all sorts of buttons for every function. My house AC has a MODE button that switches between modes. The japanese remote had one button for each mode (color coded even). I actually have a Daikin AC at home (japanese brand and actually the same brand that was in most hotel rooms - either Daikin or Mitsubishi). The "western" remote has fewer buttons.
If you ever visit a store like Yodobashi Camera, the number of signs is absolutely wild. There is no attempt to try to make it into a nice, organized boutique (except the Apple section of the store, of course). No. everything is just there. Things have a sign with descriptions. Signs say a LOT about the thing they're selling you.
Restaurant menus are just as crammed, most even have pictures. Every ingredient is listed.
According to some youtube video, this is because the japanese are a "high context" society. Meaning you are always fully aware of your surroundings (meaning you are aware of who you are and who you're speaking to - using the wrong honorific is not just a faux pas, it can cost you your job). So "things" in japan are super explicit about everything. Because in that culture, hiding things makes people suspicious (so to speak).
Other examples are japanese websites. They are absolutely crammed. Take a look at Yahoo jp or Rakuten.
Funfact: western media sold us Marie Kondo as some minimalism maximalist. Look at her social media for the west and for japan - the japanese one is way more crammed, the complete opposite of her image in the west.
Re: (Score:2)
At work I am actually dealing with this quite often unfortunately.
Now how about documents all being created in Excel like it's Word?
Re: (Score:2)
Re: (Score:2)
This is why everything should be written in C. C++ makes it annoying to maintain.
PHP has feature creeped into being unusable
Javascript has feature creeped into being unusable. Nobody asked for WASM, Nobody should use WASM
Python has been feature creeped into being difficult to read
Like the programming LANGUAGE itself should have as little functionality as needed, and anything you need that isn't part of the core, should be provided by a library. Hence "C++ STL" is a thing.
There are several core features that
Re: (Score:2)
I love people ranting about stuff they have no clue about ... ...
It is so amusing
So JavaScript has a feature you do not like ... so what is so damn hard in not using it?
So, what exactly has WASM to do with JavaScript? Strictlty speaking: nothing. Yes, there is a remote connection ... if you want to nitpick.
Re: (Score:2)
Developer tools are usually the most awful ones.
Starts with the right mouse menu. It once was called "context menu". As in "show me what I can do in this context".
Click into a source code panel and look what you get ... now select a word, and click again. 99% chance the menu is the same.
Some things are excusable, e.g. if you show a menu entry on the top level in the context menu, you might want to keep the submenu *looking* the same. However a sane person would gray out the items which produce no result.
How
If worse is better then Python wins (Score:2, Insightful)
If worse is better then Python wins because even minor version updates break everything. Morons.
Not to mention everything else wrong with it. Slow, whitespace syntax, etc.
Re:If worse is better then Python wins (Score:5, Insightful)
Guido van Rossum is confused as to what makes Python successful. Guido van Rossum thinks his shit don't stink.
It's all those libraries that he's complaining about that lock in Python's dominance, not his childish views on fun and ownership. Python is a crappy scripting language that commands incredibly powerful software NOT written in Python. Guido van Rossum is a dipshit we put up with, not a visionary that guides us.
Re: (Score:3)
Python is a crappy scripting language that commands incredibly powerful software NOT written in Python.
There are plenty of crappy scripting languages out there. Why did Python rise to dominance over AppleScript and Visual Basic and bash and MS-DOS .bat files and Perl and Tcl and all the rest?
I suggest that it's because Python is significantly less crappy than its competition.
Re: (Score:2)
I suggest that it's because Python is significantly less crappy than its competition.
I think this could only be written by one of those idiots.
Re: (Score:2)
Python is a crappy scripting language that commands incredibly powerful software NOT written in Python. ... wait ... I have to google, will take a day or two to find a few more examples.
You can command that incredible powerful software that is not written in Python with: PERL as well. Who had thought that. Or
Oh, WTF sed has no FFI interface to call C libraries. That is odd! Which other language except Python and PERL can call a c-library? I am sure, you can do it from asm, I did that long ago. But there mus
Re: (Score:2)
White space syntax is not "wrong".
It is a matter of taste.
There are hundreds of languages with "white space syntax".
If you do not like them: don't use them. Do not work in areas where you NEED TO USE them.
Not being able to at lest READ Python makes you close to un-hirable.
More high level concepts just for the sake of it (Score:1)
With all major feature already present in the core of the language, useful idiots turn to all these exotic theoretical high level concepts as if they come at no cost.
In the end your language will be slower and less understandable.
It is just like sticking to indentation as part of your syntax because in the 70's all you had was this 40 character CRT to program on and never could image one day working on a 5K 32 inch display.
Re: (Score:3)
"...It is just like sticking to indentation as part of your syntax because in the 70's..."
I don't think justification for TABs as a semantic element is nearly that intelligible, but the real offense is continuing to insist on a sub-80 character line length. A total joke. I stopped doing that before Python even existed. Yes, I know Python doesn't enforce it, but the community does.
Python is liked, and chosen, because it is easy to learn by non-programmers. Scientists could more easily do their own coding.
Re: (Score:2)
Idiots gravitate around all kinds of things. Confusing the popularity of those things with quality is a fatal error.
Maturity (Score:4, Insightful)
Time for someone young to reinvent the wheel.
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
No, you are maintaining different versions because you are using different versions at the same time.
If you have problems with that, you should figure how to tackle those problems.
Hint, there are some helpful concepts in unix like systems, that also translate a little bit to Windows.
They are called: directories, environment variables, and start scripts.
For hobbyists, that do not know how to do stuff, there is Anaconda.
Re: (Score:2)
There are Mojo, GDScript (the scripting language of the Godot Engine), and Nim, and plenty of others.
Elixir comes to mind.
I like Dart, but it is static typed ... Well, Nim and GDScript also static typed.
Does that mean assy lang rules? (Score:2)
Re: (Score:2)
In general the agreement is that JCL is the worst language. My personal second worst one is indeed PERL. I loved it when it was new. And started to hate it when it was around version 5. Extremely difficult to do bigger projects in it (probably the reason why /. is not evolving), when OO got introduced I used it a bit more again. But suddenly I did not need it for a year or two. When I came back to it: I had forgotten everything about it. I could not work on the code without google. So the only thing left is
who? (Score:2)
"In 1989 a computer scientist argued"
Um, the name of that computer scientist was Dick Gabriel.
The way I remember it, part of the argument was that garbage software with lots of features -- the Microsoft way -- is more successful in a mass market.
The next python (Score:2)
The next python will work interpreted or compiled to machine code.
The next python will have an optional, built-in, cross-platform, object oriented UI.
Until then, I will code in Python and C++.
VB script was perfect (Score:1)