this post was submitted on 24 Apr 2025
46 points (92.6% liked)

Python

7041 readers
106 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 1 points 5 hours ago* (last edited 5 hours ago) (1 children)

I did not say it's not semantically well defined.

https://en.wikipedia.org/wiki/Brainfuck#Hello_World! -- this is semantically well defined, but it's still vague. Vagueness is a property of how well the syntax is conveying intent.

[โ€“] [email protected] 1 points 3 hours ago

It's only vague if coming from a language where it's invalid or vague semantically. For example:

  • Javascript - [] is truthy for whatever reason
  • C - int x[] = {}; evaluates to true because it's a pointer; C only evaluates to false if something is 0
  • Rust - invalid because you cannot convert a vec -> bool directly, and there's no concept of null (same w/ Go, but Go has nil, but requires explicit checks)
  • Lua - empty tables, zero, and empty strings are truthy; basically, it's truthy unless it's nil or false

The only surprising one here is Javascript. I argue Lua and Python make sense for the same reason, Lua just decided to evaluate truthiness based on whether the variable is set, whereas Python decided to evaluate it based on the contents of the variable. I prefer the Python approach here, but I prefer Lua as a language generally (love the simplicity).