Yep, I agree. And I agree that designers can't "code", but to be more specific, it's more that they shouldn't be implementing functionality. So if a designer is designing a calculator, and the calculator returns 1+1=3, then the designer is not liable for fixing it.
On the other hand, if by "writing code" we mean the literal act of writing something that both a human and a computer can understand, then that's a different question. Designers need to express nuance, and GUI tools are limited in their ability to handle complexity. There's a reason visual programming tools haven't overtaken code.
What I'm getting at is that there very well could be a "language" specifically tailored for UI/UX designers, that allows them to specify their design decisions for the presentational layer of the application. If you had such a language, you could create a toolchain on top of it, which produces real code for developers to consume however they wish.
On the other hand, if by "writing code" we mean the literal act of writing something that both a human and a computer can understand, then that's a different question. Designers need to express nuance, and GUI tools are limited in their ability to handle complexity. There's a reason visual programming tools haven't overtaken code.
What I'm getting at is that there very well could be a "language" specifically tailored for UI/UX designers, that allows them to specify their design decisions for the presentational layer of the application. If you had such a language, you could create a toolchain on top of it, which produces real code for developers to consume however they wish.
I'm (slowly but steadily) working on this exact thing: https://matry.design