I'm writing a sort of kiosk / internet cafe manager (For Windows, but other things perhaps later). A while ago I asked about "locking the screen" and I managed to whip up a prototype in C using the information posted. My question is about architecture more than anything else.
Currently I have a client, which is an interface written in Java that creates a child process (Written in C) to lock the screen when required, they communicate over stdin/stdout using a simple IRC like protocol I designed. I also have another program, written as a windows service in C which communicates with the interface over TCP/IP using the same protocol I designed (for a coin validator).
Then I have the server which is written in Java, and a manager program that is written in Perl (web application).
So my question is, mainly with regards to the client, should I just write the whole thing in C? The reason why Java found itself in there is because it's portable, but cannot do things like keyboard hooks (to lock the screen). And if I went to say, a Mac all I'd have to do is re-write the screen locking program (in theory).
Ideas / suggestions?