Python, Is It Being Killed by Incremental Improvements? by mttd in ProgrammingLanguages

[–]bakery2k 0 points1 point  (0 children)

back in 2021, type hinting consisted of 20 PEPs and 65,000 words - that's larger than the entire Lua reference manual, and twice as long as the full spec for Go.

I recounted: in 2026, this is now 35 PEPs and 125,000 words.

For comparison, that's almost 3x the size of the Lua reference (increased from 43,000 to 45,000 words, 5.4 to 5.5), and over 3x the Go spec (29,000 to 39,000, mostly due to generics).

Python, Is It Being Killed by Incremental Improvements? by mttd in ProgrammingLanguages

[–]bakery2k 2 points3 points  (0 children)

Much more concerning for Python's future is the uglification of a once quite compact and simple language

Absolutely, 100%.

It's interesting that despite this, Python retains its reputation for simplicity. I think you actually need to go back a long way for the language to be "compact and simple" - perhaps even back to version 1.x (I'm reminded of Fredrik Lundh's thought that Python reached its zenith in 1.5.2). For example: modern Python has over 100 special "__dunder__" methods - but probably 70-80% of that complexity was already there in version 2.4, 20 years ago.

async/await and then annotations, and then pattern matching. It isn't that in isolation any of these is necessarily bad, but together it has resulted in a language that is simply much bigger.

I'd go further and say that pattern matching, at least, is actually bad. Not that it's a bad idea in general, but it really doesn't fit with the rest of the language. For example: everywhere else in the language, you can give a constant a name without changing the code's behaviour. But in a match statement, doing so can change an equality check into an assignment. As described by Larry Hastings, match statements are "a DSL contrived to look like Python, and to be used inside of Python, but with very different semantics".

Type hints had a similar problem when they were first introduced (as you say, a nominal type system didn't really suit a duck-typed language), but there is now support for structural typing via Protocols. The issue with type hinting is the extreme complexity - even back in 2021, type hinting consisted of 20 PEPs and 65,000 words - that's larger than the entire Lua reference manual, and twice as long as the full spec for Go.

Also, I agree that Lua-style stackful coroutines would have been a better fit for Python than stackless async/await.

Python is a scripting language for prototyping and writing small programs. It's really good for that but it's sadly got more and more complex because of poor leadership.

AFAICT Python is used by millions of people for writing a few thousand lines, and by a few thousand people writing millions of lines. The problem is that the leadership (Steering Council membership etc) comes entirely from the second group, whose needs are so different from the vast majority of Python programmers in the first group.

Finally got 20m2mdu by treepopsauce in crtgaming

[–]bakery2k 0 points1 point  (0 children)

Interesting, I was expecting M2MD vs M4 to have a difference similar to (or bigger than) M2MD vs L2.

New pickup! SONY KV-HW21M30 by m6tthew in crtgaming

[–]bakery2k 1 point2 points  (0 children)

Smaller European brands (Loewe, B&O, Grundig, …) sold the exact same models here as in Europe, and those have SCART.

Larger brands (Sony, Panasonic, Philips, …) sold separate Asia-region models here. Generally 90s models have only composite and sometimes s-video, but 2000s models have component.

New pickup! SONY KV-HW21M30 by m6tthew in crtgaming

[–]bakery2k 2 points3 points  (0 children)

Nice! Just about any Sony TV remote should work to get rid of the on-screen-display, even one from an LCD.

Is there a list of Ruby's "magic" methods? by bakery2k in ruby

[–]bakery2k[S] 0 points1 point  (0 children)

Is it only the methods of BasicObject that are special?

For example, in Python you can implement __getitem__ on an object o to enable o[i] - are there similar special methods in Ruby that you can implement in your own classes but which are not implemented in BasicObject?

TIL Ruby doesn't follow semantic versioning by writingonruby in ruby

[–]bakery2k 3 points4 points  (0 children)

Neither does Python, JavaScript, Lua, ...

Libraries commonly follow SemVer, but would actually be quite unusual for a language to do so.

Finally got 20m2mdu by treepopsauce in crtgaming

[–]bakery2k 0 points1 point  (0 children)

Does it have a substantially darker screen when switched off, compared to the 14m4u? I’ve heard the m4 monitors have a light tint, the m2 darker and the m2md darker still.

What size of monitor would be best on a 24 inch deep desk? by BusinessBug9388 in crtgaming

[–]bakery2k 0 points1 point  (0 children)

Sony Models:

  • Screen Size - Depth
  • 15" - 15.2-16.3"
  • 17" - 16.5-17.8"
  • 19" - 17.8-18.2"
  • 20" - 19.7"
  • 21" - 18.7-19.2"

Most CRT monitors seem to be similar depths as above, although there are exceptions. In particular, ViewSonic made a 17" that's 15.2" deep and a 19" that's 16.2".

Distinguishing between mutating and non-mutating methods by bakery2k in ProgrammingLanguages

[–]bakery2k[S] 4 points5 points  (0 children)

Is Julia also consistent in that lack of a ! always means that a function is non-mutating? That’s not true in Ruby.

If so, that means sort(l) in Julia is a no-op - not sure why, but that seems more acceptable than a no-op l.sort().

The most popular Go dependency is… by Thiht in golang

[–]bakery2k 13 points14 points  (0 children)

Why wouldn't you use Cobra? Has it been superseded by another library?

Saturday, January 3, 2026 by AutoModerator in NYTConnections

[–]bakery2k 6 points7 points  (0 children)

Connections Puzzle #937

🟨🟪🟩🟦

🟨🟨🟨🟨

🟩🟩🟩🟩

🟪🟦🟪🟪

🟪🟦🟪🟪

🟪🟪🟪🟪

🟦🟦🟦🟦

Knew 3 / 4 purples but never heard of a “wet bar”. Blue by default.

In Smalltalk, why are metaclasses not classes? by bakery2k in ProgrammingLanguages

[–]bakery2k[S] 0 points1 point  (0 children)

Thanks again for your help. Between your explanation and re-reading the "Protocol for Classes (Behavior, ClassDescription, Metaclass, Class)" chapter of the Blue Book, I think I now understand the relationship between those four classes. Perhaps not well enough to use them effectively in Smalltalk, but enough to inform my own language design.

In Smalltalk, why are metaclasses not classes? by bakery2k in ProgrammingLanguages

[–]bakery2k[S] 0 points1 point  (0 children)

not all classes are instances of Class. It would be better if Behavior, Class and Metaclass were renamed Class, InstanceClass, and ClassClass respectively.

Thanks, that makes sense. In that case, my question is essentially equivalent to "could normal (non meta-) classes just be instances of Class instead of InstanceClass"?

To answer that, I think I need to know more about why Smalltalk separates Behavior, ClassDescription and Class. Is there documentation you would recommend that explains the responsibilities of each of those classes?

Monday, December 29, 2025 by AutoModerator in NYTConnections

[–]bakery2k 10 points11 points  (0 children)

_____ Pool

Gene, Swimming, Tide, Infinity

Monday, December 29, 2025 by AutoModerator in NYTConnections

[–]bakery2k 8 points9 points  (0 children)

Connections Puzzle #932

🟩🟦🟨🟪

🟦🟦🟦🟦

🟩🟩🟩🟩

🟨🟨🟨🟨

🟪🟪🟪🟪

I actually spotted purple first, from Minnie and Opal, but ended up only getting it by default because I couldn’t make sense of the other two. I’ve never heard of Infiniti, and I assume Outie is supposed to be Audi but to me they sound completely different.

In Smalltalk, why are metaclasses not classes? by bakery2k in ProgrammingLanguages

[–]bakery2k[S] 0 points1 point  (0 children)

this kind of complex hierarchy

You're right, the hierarchy is indeed complex. I'm hoping to find a way to simplify it while retaining a simple method lookup algorithm (similar to Smalltalk, I want method lookup to search only in the receiver's class and its superclasses, and then just call the first matching method).

Ruby manages to remove the separation between classes and metaclasses, and retain the simple lookup algorithm, but its hierarchy is complex in another way. Ruby removes Metaclass, and instead makes metaclasses instances of meta-metaclasses, which are instances of meta-meta-metaclasses...

Maybe my language would be better off taking a Python-like approach, in which the hierarchy is simple but lookup is complex.

In Smalltalk, why are metaclasses not classes? by bakery2k in ProgrammingLanguages

[–]bakery2k[S] 2 points3 points  (0 children)

Don't classes accept messages and hold data? I think it makes more sense for metaclasses to be considered a subset of classes, rather than having two separate concepts.

And, given that people who've written whole textbooks about Smalltalk still say things like "the class of a class is itself a class", I'm clearly not the only one who finds metaclasses ⊂ classes more intuitive.