We are considering the programming language for a desktop application with extended GUI use (tables, windows) and heavy database use. We considered Java for use however the fact that it can be decompiled back very easily into source code is holding us back.
There are of course many obfuscators available however they are just that: obfuscators. The only obfuscation worth doing we got was stripping function and variables names into meaningless letters and numbers so that at least stealing code and renaming it back into something meaningful is too much work and we are 100% sure it is not reversible back in any automated way.
However as it concerns to protecting internals (like password hashes or sensible variables content) we found obfuscators really lacking.
Is there any way to make Java applications as hard to decode as .exe counterparts?
And is it a factor to consider when deciding whether to develop in Java a desktop application?