OpenCL as implemented by AMD is definitely not very usable.
AMD themselves aren’t really committed to OpenCL given the state of their OCL 2.x drivers and went to their own AMD-only path (ROCm/HIP), which is broken... (and only supported on a single gen of customer GPUs today, Vega) It doesn’t even work on RDNA or RDNA2 officially today.
I'd say OpenCL is a pretty good API, it's just that because it's in C and it allows for quite fine-grain control, it takes a bit of orchestration to get anything off the ground. If you want more convenience, there are a few wrappers for it, in various languages.
OpenCL/AMD is a usable and mature platform, right?