Here are the symbols that have meaning in say, Java:
{ } - Denote code blocks (for classes, methods, loops, etc.). [ ] - Array indexing and declarations. " - Delimits strings. @ - Annotation indicator (e.g., @Override). ^ - Bitwise XOR operator. & - Bitwise AND, and logical AND (&&). ( ) - Surround method parameters and denote precedence. ! - Logical NOT. | - Bitwise OR, and logical OR (||). < > - Less than, greater than, and generics.
In kcats, it’s just [, ], and ". So 3 vs 14. It’s a real effect.
I get what you are saying about python but I respectfully disagree. There’s way less a beginner needs to learn to use kcats vs python. There’s way more for YOU to learn because kcats is very unfamiliar to most programmers so they are to a large degree starting over, vs a language that’s similar to one they already know. But put yourself in the shoes of a beginner and it’s a different story.
key@lemmy.keychat.org 9 months ago
Maybe they meant core syntax? The other symbols are mostly operators that defined at a separate layer I’d guess. Definitely agree with you that it’s a strange claim to make given those are mandatory for any newcomer. I think they might be thinking in contrast to clojure or a similar lisp language given the syntax structure. Compared to the cluster fuck that is clojure this is symbol free and approachable.
skyrod2@programming.dev 9 months ago
Yes, exactly this - the language itself does not care about any symbols other than quotation marks. I admit I should have included the string delimiter ", I’ll update that.
It’s true that there are some standard library function names that have symbols in them, but the names are not part of the core language, you could easily alias them to something else and it would work just fine. In fact you could alias every function name to emoji if you want, the language doesn’t care. That was my point about lack of symbols.