I think a "compiler" isn't too bad — certainly easier than an IDE by a long margin. An optimizing compiler OTOH, can be a bit of a beast. Because the optimization passes self-interact, on every line of code, repeatedly, any small error in the passes can dramatically amplify (or cancel out!). It means the level of quality of the optimization passes is (by necessity) much, much, much higher than plain old SW. It's just ... very tedious.