Я думаю что Java, не самый лучший способ для каких то программ, Java хорош тем, что он может подойти под любую платформу, но без установленной JRE, ты ничего не сможешь запустить (если не скомпилишь в машинный код, но это муторно и не надёжно в плане работоспособности) и Java не рассчитанная на сильную нагрузку, на пример фарм биткоина не по силе :D. C# уже куда лучше, его уже стоит использовать, но есть свои нюансы.