First of all, there is a need to understand the differences between some, most popular programming languages. For example, if programmers need to create a document database, most likely they would prefer to do it in Java, rather than using C++. A sophisticated garbage collector combined with JIT optimization, as well as astounding data structures, make the programming process much faster and more reliable.
While, for the creation of a binary or relational database, the choice would fall to C, rather than Java or assembler. The data structures at the byte level are much simpler to express, using the structures of the C programming language. The pointer dereference operation allows me to write incredibly clever code with which you can achieve excellent performance indicators during data manipulation operations. Doing this in assembler would take more effort.
For low-level hardware operations, they would rather use an assembler than C or machine code. Doing the same in C can be difficult to understand, what operations are taking place, while the user is in the critical section. In addition, it will be extremely difficult to diagnose and eliminate bugs.
Despite all the described above, all the technologies still exist. Even though, it was assumed that they are going to be “destroyed” by new substitutes. Still, we quite often use older tools, because that is easier to create a needed staff with their help.
Honestly speaking, when something new is coming to a specific sphere, everyone says that everything that was used before is going to die. The same situation occurred with the Ruby and Ruby on Rails, even though, after 10 years nothing had changed, people work with Ruby/Ruby on Rails. Still, there are some situations when it is not going to be used by the programmers: Machine Learning / Artificial Intelligence. Using the Python programming language, in this case, is more than obvious.
Tasks for which the calculations or execution speed are important. In this case, is better to start with Crystal, and if there are not enough tools, switch to C ++ / C / assembler.
Are you going to be the creator of the next Facebook / Google / Snapchat? Then, perhaps, it would be nice for you to review the architecture of the code and start reorganizing its critical moments.
Large companies that are involved in the cycle of 95% of all finance in this area and seek to make only sound decisions regarding the increase in income. These are those who, when everything goes awry, is looking for a professional to solve problems, and do not say something like “Look, Bob, it’s written on the forum that such a company had a similar problem and it helped them this is the solution. Come on and we will try it? ”.
Summarizing the above
At the same time, there is a huge amount of enterprise software that was written in Java and which is still being written in this language. Many companies do not recognize other programming languages as an alternative, because too few languages can give them what Java does.