I did an exercise once, I took an existing C# app that read from a USB dongle and updated a screen and ported it to C++ with the assistance of Qt. The original motivation was to be able to get the same functionality on Linux and the original, not exactly greased lightning on a Windows machine, was like cold treacle when run under Mono on Linux. Then I ported the C++ thing back to Windows (as in tweaked the HW-specific bits and recompiled it) and it was easily way more responsive than the original. C# is OK for slow-and-dirty hacks but a real pain otherwise. Yes, Perl is probably preferable.