Maybe I am asking the wrong guys or the wrong question but i don't really see why java is liked so much. first and for most, to executed programs one needs a JVM, second, its slow and third, its not used in hacking unless the other side has a JVM.......maybe i need some inspiration the only thing little bit of motivation i have for it, is that Android apps are basically java based.....help me out guyz...some inspiration.
Java and liked: The question is by whom?
Schools like to teach it, because Java was considered as an easy language to teach OOP. Schools are usually slow with implementing new stuff once something worked out, so they stay with Java. There are a lot of people who are able to code in Java and for the same reason you have a lot of tutorials, libraries, forums, teachers, books and so on. Java is used A LOT in enterprises. I mean almost every job advertisment I see at my university is either for Java or C#. And schools like to say, that they teach something that is actually needed.
Some other people probably like it, because they got taught in school and it is something they are familiar with.
And reasons mentioned above are valid here as well. Once a language is popular it stays popular.
Why enterprises like it? I honestly don't know. I am disgusted by their framework bullshitting. I have been working in enterprise development and it was horrible. It is just glueing frameworks together, glueing stuff together, making the right settings. There is almost no coding involved. You just take pieces and put glue on them and hope that it works. And these people from human resources, they really like those terms like Hibernate, Seam, Java, JSF, OOP, ... They get a glare in their eyes if you name them and they love to talk about them although they have no clue what they are talking about.
Note: I know that this is very subjective and just my experience, but arrrgh.
to executed programs one needs a JVM
No, you don't.
1. The JVM is not the only VM that is able to run Java. Just have a look at:
https://en.wikipedia.org/wiki/List_of_Java_virtual_machines2. This is implementation specific and has nothing to do with the language. Everyone can write a native compiler for Java and so you get binaries that have no dependencies at all. Example:
http://gcc.gnu.org/java/3. You can create executables with a small embedded VM, so the other side doesn't need a JVM as well. That's actually also a pretty good reason for some malware writers to use Java. I.e. I have seen a crypter code that used Java and an embedded VM as stub and as the writer claims this wasn't detected by any AV for a very long time.
4. How is a JVM a disadvantage for a language that was created with portability in mind?
second, its slow
This is one of the myths that had truthfullness before 1.2, which was before JIT was used (assuming the most popular implementations here and in the following lines -- languages per se are not fast or slow).
Java can be much faster than Python, PHP, Ruby and similar languages at the same abstraction level and no one ever complains about these language being slow. I would like you to read the highes voted answer here:
https://stackoverflow.com/questions/2163411/why-did-java-have-the-reputation-of-being-slowOf course if you compare it with the capabilities of C, Fortran or assembly, Java will be slower, but so will other languages as well that are not that low-level.
Not to mention the drawbacks that low level languages have. Most people are not able to write more efficient code with them. You might have the best tools that give the most control over the code, but if you don't know how to use them right, your can even make it worse. One example is memory management. People who are bad at that, will probably write more efficient code in a language like Java than in C.
In most cases you don't need that little performance gain you are able to get with lower level languages. What you need instead is stability, scalability, maintainability and fast development and that's where you are better off with a high level language.
its not used in hacking
You don't know what hacking is.
And even if you only look at it security related: what do you think why people look for security flaws in the language implementation? Does "Silent Java Drive By" ring the bell?
And what about reverse engineering? Or malware (like mentioned above)?
Hacking--even if only security related--is not tied to any language, any operating system, any software or any single skill. Limiting the idea of hacking to only a few of all that just limits yourself and action radius a lot. You need an open mind and creativity for hacking. Not limitations.