KomodoDave, ArtRage is coded entirely in C++ (there are some very minor exceptions where we've been forced into using Objective C on the Mac, and generic C for some image API stuff)
We use Microsoft Development Studio 2005 on the PC, and Apple's XCode on the Mac.
We have our own UI and application toolkit (Goblin) that abstracts all of the platform-specific code, so the actual ArtRage application which sits on top of Goblin compiles unchanged on both the Mac and the PC.
Whever possible we avoid COM, multi-threading, .Net, or operating system dependence. As a result ArtRage is fast, small, monolithic and very easy to maintain.
If you're handy with Spy, you'll note there is only one window in ArtRage - the main window. Every UI element is managed by Goblin, which gives us enormous flexibility in doing our own UI object interactions.
The technology behind ArtRage is really all based around the oil tool - the most complex. The canvas stores physical properties of paint - in addition to colour there is volume, wetness and the like. Similarly the paint on the head of the tool has its properties. During the stroke the paint on the brush head reacts with the paint on the canvas just like in real life.
However we also avoid mathematics as much as possible, so a lot of what you see is the result of tricks and cheats that give the look you'd expect but not at the expense of the mathematics. (That's why I'll never ever be able to publish a Siggraph paper about my graphics code. It's all nasty cheaty code that offends intellectuals and cant be expressed in tidy formulae)
AndyRage's mantra for graphics engine code:
"Sure - how hard can it be?"