Having worked on an IDE in the past (OctaveDE, and I hope to spend some more
time on it when I finish my PhD), I can tell you that it is a lot of work.
Especially to make sure it runs on all platforms. It was easy to get something
working on just my Mac or just in Linux, but when trying to get things working
across all platforms without any bugs and crashes was quite a bit more
difficult. OctaveDE is now at the point where it has the command line,
variables panel, history panel, and a very crippled editor (I wish I could just
embed Emacs as the editor, but keep it all one program). I mostly use the
editor for debugging and have Emacs open to edit.