I did this a couple of years ago. Script debugger was written in C#, and ran on PC; script runtime was written in C++, and ran on everything we supported at the time -- PC, PS3, Xbox360, Wii, DS, PSP and PS2.
Whatever you're targetting, I'd recommend putting in some kind of layer so that the debugger and runtime are insulated from the underlying protocol. Keep the API calls where you can keep an eye on them! This //leaves your options open, and (if done right) simplifies the code at both ends. Some kind of packet-based system, with packets of 1K or less, maps tolerably to just about anything. (Transmission of >1K can be accomplished at a higher level, using only the public API.)
If you're only targetting PC, I recommend TCP/IP. It's network-transparent, everybody is familiar with its IP addresses and ports, it's no harder to use API-wise than named pipes.
For a next gen title, if you want to strike a good balance between cross platform compatibility and ease of coding, TCP/IP is still the way to go. Works on PC, Xbox360, and PS3.
(Regarding named pipes, SN's Target Manager will give you named pipe support for PS3 and PS2, as I recall, and it goes via the dev LAN port rather than the game LAN port, but Xbox360 doesn't support it at all. So it might be worth supporting it -- and it's your only option in PSP, if I remember rightly! -- but it's not a universal panacea.
Personally, I stopped after implementing TCP/IP support, and I'm quite glad I did! As a summary, the Wii and DS are both horrid, but in different ways, and unlike anything else. The PSP only supports named pipes, for some unknown reason. The PS3 and PS2 support TCP/IP, but only via the game LAN port. (The dev LAN port works differently. Don't use it. Ask your producer for more network cables and save your sanity.) The Xbox360 supports TCP/IP, but only if you're using the debug libraries, and only via the game IP. (The debug IP works differently. Don't use it.)
In short -- whatever you do, you'll need that insulating layer.