Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
Python Programming

Python Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages? (blogspot.com) 49

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 Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages?

Comments Filter:
  • 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)

    by jddj ( 1085169 ) on Saturday June 14, 2025 @11:19PM (#65450147) Journal

    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)

      by Tony Isaac ( 1301187 ) on Sunday June 15, 2025 @12:03AM (#65450189) Homepage

      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)

        by Creepy ( 93888 ) on Sunday June 15, 2025 @09:36AM (#65450695) Journal

        .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)

          by Morpeth ( 577066 ) on Sunday June 15, 2025 @12:02PM (#65450889)

          " .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]

        • So much nonsense, yet rated insightful.
          SAD
        • .NET is not a programming language.

          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.
    • Barely relevant but TFA links to the Wikipedia definition for Worse is Better, specifically the New Jersey Style vs. the MIT Style, which is notable for being written so badly that, for any given software projects, it's pretty much impossible to tell whether it follows their definition of MIT vs. NJ. Or more specifically if you ask five different people which definition it follows you get six different answers.
    • Hear hear... had to help out a colleague recently. She could not add an attachment in outlook. (We do not use outlook often). I noticed I was overwhelmed with all the buttons and features of the program. Took me half a minute to find the button. An email program should not be that complicated, as Apple clearly understands. Less is more. Looks like microsoft is moving more towards the simplification though. Winwows has become more oriented towards the (boring) average user.
    • Re: Yes. (Score:4, Interesting)

      by simlox ( 6576120 ) on Sunday June 15, 2025 @04:32AM (#65450389)
      As a software developer, I also hate over-complicated tools. I shy away from IDEs, I use a small subset of Emacs with hardly any customization, as a simple editor. One of the reasons I hate IDE driven development, is that it forces you into that box, instead of given you the freedom to integrate many small tools each good at a small task - the Unix way. When your world view is through a specific system (IDE or language) you demand hugely complicated tool that needs to do everything. All systems, unfortunately, tends to go in that direction ðYz
      • by Viol8 ( 599362 )

        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.

      • Get off my lawn!

      • âoeI also hate over-complicated toolsâ

        âoeI use a small subset of Emacsâ

        Hmm. . .

        • I know, Emacs was in its days a huge overcomplicated tool. It still is if you want to customise the hell out of it. But it is also usable as a simple editor - opposed to Visual Studio, Eclipse, etc. Visual Studio Code is supposed to be the new Emacs, but I never figured it out - at least not to a degree where it wasn't easier to stay in Emacs.
    • Great comment.
      >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:Yes. (Score:4, Interesting)

      by hjf ( 703092 ) on Sunday June 15, 2025 @10:52AM (#65450789) Homepage

      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.

      • by keltor ( 99721 ) *
        There's recently been changes to this with a number of larger websites and "high context" design is not universal in the slightest in Japan.

        At work I am actually dealing with this quite often unfortunately.

        Now how about documents all being created in Excel like it's Word?
    • There's absolutely zero reason you can't please both groups. The UI can be simple by default, with thoughtful choices for defaults, very limited options during setup, only core features represented by default in the UI. Then even a basic options page. Does it really make software *less* usable for the average person if buried under an advanced button, developer options , or even a config file, command line switch, etc , is the powerful features and customization options power users want? No. It's just an ex
  • by Anonymous Coward

    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.

    • by dfghjk ( 711126 ) on Sunday June 15, 2025 @09:51AM (#65450719)

      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.

      • by Jeremi ( 14640 )

        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.

        • Python is not dominant over Perl, it's merely used by more idiots.

          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.

  • 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.

    • by dfghjk ( 711126 )

      "...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.

      • You are, of course, completely correct.

        Idiots gravitate around all kinds of things. Confusing the popularity of those things with quality is a fatal error.
  • Maturity (Score:5, Insightful)

    by Fons_de_spons ( 1311177 ) on Sunday June 15, 2025 @03:57AM (#65450373)
    This is called maturing. Python is mature now. A lot depends on it. It can't fool around anymore.
    Time for someone young to reinvent the wheel.
  • I guess assembly, APL and (((lisp))) rule. I'm sure most programmers have a personal list of candidates for "worst" or, at the least, least favorite. Is there an opposite for the TIOBE index?
  • "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 will optionally use significant space or brackets.

    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++.
  • Open text files and interrogate file systems. Nothing to install. I could give the script ot anyone to run.

I have never seen anything fill up a vacuum so fast and still suck. -- Rob Pike, on X.

Working...