I saw many people talk about IB activex API is not stable at all, while TWS itself is Java and very likely most of the technologies behind IB is Java base, so should we use Java instead of C# if we choose to work with IB API?
Unstable means exactly...what? Slow? Crashing your machine? I guess if you always update to the most recent rev immediately that could happen. I'd recommend getting a stable version of both TWS (or the gateway) and the API and then sticking with them until forced to update. If you're looking for a comparison, why not code up a test bench in both Java and C# and run some tests to evaluate the stability yourself?
FYI, I seem to recall reading that Interactive Brokers has created an opensource project for collaborative development of their API. I can't confirm this or find any project site, but it may be something you'll want look into.