In my daily practice, I find the following limitations to be the most challenging ones.
* No generic type : that’s extremely limiting, especially when implementing math libraries.
* The garbage collector (using the XO2 real-time OS) does not collect array of primitive types, only array of pointers are collected. Honnestly it would be much easier to not have the garbage collector.
* extremely small standard library (but this is to be expected for a niche language …).
* the only tooling that you have is the tooling that you build yourself (editor, completion, debuting, etc …)
I often wonder how many other people work in Oberon. I’d love to share with someone else than me that does !