I'm currently working on a programming language that will probably be very boring in practice (Algol/Pascal structure, C-ish syntax, traits/typeclasses but only modules can be generic, not sure if GC or borrow checking but probably a hybrid).
The idea is to have something efficient enough, with the least amount of implementation complexity (including codegen), and still being nice to use, which is a really interesting balancing act.
For example, instead of implementing loop optimizations I could add APL-style broadcasting; I could make a complicated but efficient GC runtime or a complicated but efficient borrow checker, but I could also make both a dumb GC and a dumb borrow checker that somehow complement each other.
It's kind of a researchy language, but not trying to be new or interesting. Just "globally simple".
Most features are in an theoretical design phase, but I'm currently working on a new backend (LLVM is too fancy to count, QBE is too basic).