Thinking In Java 3rd (TP0CS Translation) Foreword I suggest that my name is ready to go to the software from the hardware to the software, the next big revolution will be in the genetic engineering.
We can use microorganisms to produce food, fuels and plastics. They will clean up pollution. In general, we can accurately control the real world as long as we spend the original cost. I think the computer revolution is very small compared to him.
But I realized that I have made the same mistake in my science fiction: Lost in science (it is easy to achieve in science fiction). A empirical writer will recognize that the story never just about things, he is about things Human. Genetics will have a big impact on our lives, but I am not sure that he will make the computer revolutionary change, or at least not to make the information revolution too much. Information is to communicate with others: Yes , Shoes and rides, especially genetic treatment methods are important, but those are decorated. How do we contact the real world is the most authentic thing. As you are as important as him, there is only to communicate.
This book is a left certificate. There are a lot of people think that I have a little bold or generous. They ask: "Why do someone bought it?" If I have a little more conservative It will not be done so, but I really don't want to write another computer book in the same way. I don't know what will happen, but I confirm that this is my wise decision I made to a book.
At least one thing I can determine, is that people have started to send me corrective mail. This is a shocking experience, because the reader will see every corner in the book, and the hiding is very deep. Technology and grammatical errors. In this way, and other books issued in the traditional way, I can correct all known categories of errors in time, rather than letting them finally print the lead, and the emperor appears in front of you. As the saying goes, "the authority is fascinating, the bystander is clear". People are very sensitive to the mistakes in the book, often point out: "I think this is wrong, my opinion is ...". After I study it carefully, I often found that I did something wrong, and this was not realized at the time of writing (how many times didn't do it). I realized that this is a gratifying reflection of group strength, which makes this book look different from the public.
But I have heard another voice: "Well, you are really creative in the electronic version of you, but I want to print a version of the real publishing house!" In fact, I made Many efforts have allowed it to get a good reading effect with ordinary printers, but it is still not just like truly print books. Many people don't want to look at the whole book on the screen, and I don't like to take a stack of paper. Regardless of how well the print format is, these people like it is still a real "book" (the laser printer's ink cartridge is too expensive). It seems that the revolution of the computer still does not allow the publishing world to completely get out of the traditional model. However, there is a student to recommend a model for the future publishing: book will first publish on the Internet, and then print it on the paper only under absolute necessary. At present, numerous book sales is not very ideal, and many publishers are losing. However, if you publish this method, you will be much flexible, and it is easier to ensure profit.
This book also gave me deep enlightenment from another angle. I thought Java "just another programming language". This idea is established in many cases. But over time, I have more deeper my studies, and I have a difference between its basic purposes with all the other languages I have ever seen.
Programming and a large relationship with complexity manipulation: For a problem that is prepared, its complexity is used to solve its machine's complexity. It is because of this complexity, our program design project has repeatedly failed. For all programming languages I have touched before, they have not skip this frame, which determines their main design goals to overcome the complexity of program development and maintenance. Of course, many languages have taken into account the complexity of complexity when designing. But from another perspective, there will be other problems in the actual design that you need to take care of this complexity.不避 不,, other problems will eventually become the most headache that makes the programmers. For example, C must be kept backward compatible with C (so that the C programmer can adapt to the new environment as soon as possible), while ensuring the efficiency of programming. C is designed in both aspects and has won a lot of reputation for it. But they also exposed additional complexity and hindered the success of certain projects (of course, you can blame programmers and management, but if a language can help, why not provide help by capturing your mistakes, why not Do you do it?). As another example, Visual Basic (VB) is closely related to the original Basic. Basic has not intended to design a language that can fully solve the problem, so all extensions plus a headache and difficult management and maintenance. On the other hand, C , VB, and other languages such as SmallTalk have a hard work on complex problems. The result obtained is that they are very successful when solving a particular type of problem. I understand that the final goal of Java is to reduce the burden of programmers, I really feel shocked, although its subtext seems to say: "In addition to shortening the difficulty of generating robust code, we don't care other Anything. "In this primary stage, the consequences of achieving that goal is that the code cannot be run very quickly (although there are many guarantees to say how fast Java will run on one day), but it does shorteblow to the development time Surpectedly - almost only one equivalent C program half or even shorter time. This saving time can produce greater benefits, but Java is not only just available here. It is even more complex and more complicated tasks, such as network programs and multi-threading, etc. Java's various language features and libraries can make those tasks easily completed at any time. And finally, it solves some complex problems that really have some difficulty: cross-platform programs, dynamic code changes, and security protection, and more. For the time, anyone can make your head. So no matter what performance we have seen, Java's guarantee is still very effective: it makes programmers significantly improve the efficiency of programming! In my opinion, the maximum impact after programming efficiency is web. The network program is very difficult to design, while Java will solve this problem (and Java is constantly making progress, making it increasing). The design of the network program requires us to communicate more efficiently, and at least more cheap than the telephone communication (only electronic correspondence has brought benefits for many companies). As we have more and more frequent online communication, the shocking thing will happen slowly, and they are surprisingly unparalleled.