opinion on operator overloading ?
I don't necessarily see the need to have operators at all at least in high level languages, like why are some operations supposedly special (for example in Rust or Haskell programs, scalar arithmetic is not that much more common than other things). If operators have a strong intent attached to them like in Rust with traits I don't think overloading is harmful either tho (it's not very confusing what an operation does, for example, unlike C++, where the shift operator might refer to writing to a stream). One thing I don't like is that with operators (both overloaded and not) usually one version of an operation is emphasized as the default, instead of offering different failure modes (for integers, overflow behavior: wrap-around, checked with explicit failure type, returning a carry, saturating, UB etc.) and actually encouraging the user to pick whichever fits their use case best. However I think what's necessary for an operator-less language to function is some sort of chaining syntax where a function can be written after its first argument, such as the dot .method() syntax in OOP-inspired languages or |> in elixir (?).
Revospring uses Markdown for formatting
*italic text* for italic text
**bold text** for bold text
[link](https://example.com) for link