Thank you for your reply. I don't want to start with arguing about programming languages, but I think that most scaling issues come with bad design and/or bad programming technique, not so much because the chosen language is Java or C++. But obviously I have to learn a ton about Bitoins scaling issues
Yep its not time and place to argue about programming languages but if got to this point, i will add one fact.
Same application written in JAVA and C++, works 10 times faster in certain cases on C++ due to JAVA virtualises everything before executing. Its overhead that you can't overcome. Its JAVA design :/. You can run applications on EVERY enviroment, every system, but with a cost on performance.
Most scaling problems with Bitcoin is its first synchronization, due to verification of all signatures and blocks.
Second biggest problem is decentralised nature, you can't use too many resources because common user hardware won't be able to run bitcoin node etc.
Its very tricky stuff which is amazing by itself, love it, i spend years optimizing databases and applications, there is no limit to it, you can ALWAYS optimize better.