Code-enabled language models can outperform reasoning models on diverse tasks