The landlord Published in: 21:27:42 2016-01-19
The landlord is also a javar, no intention to provoke saliva dispute, just want to do java development of all students to enhance self-confidence.
The original ------------------------------------------- ------------------------------------------------------------
To be fair to Java
Some people ask me, in the existing language, what is a good recommendation? I told them: with Java. Some people are very surprised, I think people like me would recommend Java, so now I have to explain.
Java goes beyond all the curse of the "dynamic language""
Many people hate Java, see Java who can not afford. They say, Java huge, complex, bloated. However, they called the "complex", in fact, most of them are useful. Especially like the static type system, generics and other characteristics, it is very important for large engineering projects. Python code is generally not written a great project, so many Python programmers mistakenly think that the static type is a bloated drag.
Some Python programmers, in the forum to explain what is good for beginners Python, one of the reasons, actually is: because the Python is not Java!" I'm pretty silent about this. The python programmers hate for Java for no reason, superior attitude, resulting in the them to a very important advantage of Java, that lost their direction.
Although the momentum on the upper hand, but in fact, Python as a programming language, is completely unable to compete with the Java. In performance, Python is several times slower than Java. And due to the lack of static type and other important facilities, Python can not be used to construct large-scale, complex system. The lack of static type, but also led to the Python can not have a good IDE support, you can not completely reliable Python refactor code. PyCharm for the early Python programming environment is a great improvement, but the theory has been decided, it can not be completely reliable to achieve Java for IntelliJ can do the variable name, such as refactor operation.
In the design, Ruby, Java compared to Python, in fact, a lot of complex. The lack of a lot of important characteristics, there are many problems in the characteristics of a lot of. Due to the blind worship of the so-called "real object oriented" approach, there are too many can be "heavy load" of the semantic characteristics, Python and Ruby code is often a lot of complexity and uncertainty. The result is Python and Ruby code is not very reliable, is not easy to understand.
Java's "successor" failed to surpass it.
Recently, a lot of people are keen on Scala, Clojure and other emerging languages, they think these are the improvement of Java, is more modern, more advanced than the Java language. In the end, however, it was discovered that Scala and Clojure did not solve the problem they claimed to be able to solve, instead, they brought their own problems. None of these problems are Java.
I don't like personal attacks, but I'd like to tell you that I have a view of the designers of Scala and Clojure. Scala designer Odersky Martin, although in the field of procedural language achievements, published a number of academic papers, but he is the language of the design, in fact, is not particularly good at. So I was surprised to find that there are some very basic problems, Scala will make a mistake. Because odersky is a university professor, fame outside, a lot of people to find him to get a PhD, so ramble, like to scala inside add some without any "characteristics", so that a good paper. This leads to excessive complexity of Scala, adding a lot of features in the later proved useless, but to bring some problems. Students to add the code to the Scala compiler, and then leave it to leave, so the Scala compiler left a pile of historical garbage.
Come and talk about Clojure. When Clojure first came out, I looked at the Clojure's author Hickey Rich to do the propaganda department. I was for him a smattering of offerings of skill, was impressed. That style, as if the other language designers do not understand, only he saw the truth like. Only such a person, to create a "religion" it? However, clojure publicize the "properties" (what a lazy ah, pure ah, transactional memory), most of the coming from other languages to copy, but not in-depth understanding of, so in the end you find is half pot of water, cannot effectively play a role. Clojure community, has been busy from the Scheme and Racket of the community plagiarism, but also want to advertised as their own invention. For example, Typed Clojure, Typed Racket is a wholly intact copy. Even some people put SICP, Little Schemer The and other famous works are rewritten into the use of Clojure to write, the results completely lost the simplicity and essence of the original.
Blindly respected Scala and Clojure people, a lot of the last to find that these languages are the most important and most useful features, in fact, already in the Java. If you want to do a system, really Ning can be used Java do not go about what Scala or Clojure.
Java there's no special place to hate.
Java may be missing some handy features, but it has long been used for teaching Java, working with Java, using Java to develop PySonar, RubySonar, and Yin languages,...... I found that Java is not as bad as many people think. I found that I want more than 95% of the function, in the Java can be found in the use of more direct.
Many people hate Java, in fact, because of the early Design Patterns GoF, trying to put forward a stereotyped template, to the program has brought unnecessary complexity. However, Java language itself, in fact, is not equivalent to Patterns Design. Java designers and Pattern Design designers, is completely different people. You can use Java to write very simple code without using Patterns Design. So write out the code, compared with Scheme and other functional languages, in fact, there is no big difference, and even in some ways even more simple.
Java has excellent IDE support
I usually use IntelliJ to write Java code. I found IntelliJ inside, there are a number of very good design ideas. Many of these features, in fact, go beyond all the text editor (Emacs, VIM...). IntelliJ Java developed it feeling like a tiger with wings added, with on the fly.
With IntelliJ, you don't need to worry about "giving a variable name" or something like that. Because IntelliJ has a very powerful and friendly refactor function, you can change the name of the variable very quickly. So you don't have to take a perfect name for the first time you create a variable. With a still passable name, the code quickly write out successfully. And then go back to see the code, change the name into a more appropriate can.
IntelliJ can also be very rapid structural transformation. This makes programming the time, just like the artist in the construction of a sculpture. At the beginning of the most I can bold to code in roughly the shape, then tinkering, the code is kneaded into a better, easier to understand, more attractive shape.
In summary, if there is no special performance and resource requirements to use C + +. Now I suggest you honest with Java, I really can not bear watching someone is Scala and clojure flicker. Although not as good as some new language cool, but the actual system is really not what Java is not written. There are a few places that may be needed to circumvent some of the problems, but this is not a lot of.
If there is a language in the world beyond the Java, that is, I am afraid that is C#. My Yin language can be better than them, but will not be much better, because most of the most important advantages, Java has been.
Reprinted from Wang Yin "nonsense" in the blog of course I
#1 Score: 0 Reply to: 22:21:26 2016-01-19
For 100 face points's
#2 Score: 0 Reply to: 22:38:00 2016-01-19
As long as the reply of the landlord, the words are not abusive, are given points.