Personally I'm a fan of the Swift approach even if it does balloon the keyword count a bit.
Also better to trust the end used to decide what trade offs they want to make. For instance code that converts a user click to a database query, clean and understandable is more important than performance. If it takes 10ns or 10ms the user ain't going to know the difference.
SQLite has 147 keywords - https://www.sqlite.org/lang_keywords.html .
I see there's "ZERO", "ZEROES", and "ZEROS" - I didn't realize that both plurals are acceptable in English! - https://english.stackexchange.com/questions/3824/what-is-the... .
My favorite reserved word on that list is "KANJI". From https://www.ibm.com/docs/en/cobol-zos/4.2?topic=expressions-... :
> The class condition determines whether the content of a data item is alphabetic, alphabetic-lower, alphabetic-upper, numeric, DBCS, KANJI, or contains only the characters in the set of characters specified by the CLASS clause as defined in the SPECIAL-NAMES paragraph of the environment division.
And while some vb6 code is truly terrible, it isn't because of keywords. It's because beginners have no idea what they are doing.
So I imagine Swift code may be terrible because there are a lot of noobs out there doing whatever it takes to ship.
So it’s popularity tells us nothing about the language, and more about the fact that it’s the only language on the most popular platform.
So I’m not sure comparing any language to JS is useful to learn about the language.
From Wikipedia: "Some Lisp control structures are special operators, equivalent to other languages' syntactic keywords."
(You can't implement them all as macros, but IIRC there are disjoint built-in sets that can give you the full behaviour)