Designers should definitely code. Too much of design is siloed in fanciful thinking, and fancy people competing with fancy people over fancy things perpetuate delusion.
I am a designer who codes, in fact my background is UX and my job is as a developer. It's easy to think about implementation during design, for example, designing a web-app and knowing it will be implemented in Angular leads to thinking about how Angular will implement it, leading generally to modals everywhere, just everywhere. If I knew nothing about the technical implementation I wonder if it would be a smoother design process, possibly better results. But then I see so much poor design everywhere that I can never be sure if something was designed by a coder who knows little about design or a designer who knows nothing about implementation.
Imagine if Apple hardware designers depended on their manufacturers to tell them what's achievable with aluminum and glass. Instead Apple has a small manufacturing facility in their design studio so the designers can iterate rapidly and actually understand what is possible.
Also, it's far more common that organisational culture, law, or the marketing department is a bigger constraint than the code stack. As a designer, I should consider my "medium" to be far broader than knowing some CSS, or I'm not doing my job.
Being a good designer is inherently being a generalist, and in being a generalist, the designer should understand some basic things about programming in order to have common ground. But that is certainly not the same as saying "designers should code". If designers should be programmers, then they should also be accountants, customer service, marketing, operations, lawyers, c-suite, and every other profession they interact with to solve a problem.
Designers have their own tool chain to prototype UIs and user interactions, but these are not UI devtools.
You mention that designers have their own toolchains for prototyping, but these has nothing to do with UI dev tools. I've often wondered why this would have to be so.
Look at other advanced design fields like architecture and industrial design. It would be unthinkable today that professional architects would just draw a facade and not use CAD to actually model the structure. Similarly, it would be very unusual for an industrial designer to model a product using a toolchain that is entirely separate from manufacturing. The assumption today is that CAD and CAM work together, not separately.
Why can't we have the same in software? For my part, I've been trying to work on a solution in the form of apps like React Studio [1]. It's not there yet, but I'm convinced that proper software modeling tools will happen eventually.
> Why can't we have the same in software?
Because devs and designers have different needs.
I make products that ship, people like, and can be further developed in both design and code by specialists. That's good enough.
Designers should definitely work with devs, if they are surprised their designs can't be implemented in the end, then that organization is REALLY dysfunctional.
We definitely need better UI development tools, but this is orthogonal to UX design, much of which doesn't even involve the aesthetics of the UI anyways.