I'm trying to develop a program like Windows Live Messenger for fun and personal use, using Node.js for the backend part of the messenger, and I've come up with two questions:
Thank you very much.
The backend language doesn't matter at all. Python, node.js, ruby, perl, c#, java, scala, golang, as long as you expose an interface that can be consumed by the client. (generally a RESTful web service interface, but it doesn't have to be.)
The frontend language depends on the target platform. You should use the native language for the client platform for the most streamlined development experience. C# for windows, Java for android, Swift for ios, javascript for web. If you want to "write once run anywhere" consider React Native.
But be aware that any "write once run anywhere" strategy is going to be plagued by hard-to-debug cross-platform bugs, in practice it's almost always cheaper to maintain a client for each platform, because it's easier to debug in the native language.