// Devil blows the flute: This is my reply to myan (Note It is the last letter of the Software Development Dialogue (1)>, which expresses my initial ideas for Oo and GP. Of course, it is not very mature. Dream: Devil from software development costs to see people's choice and evaluation of the development language and tools, indeed make me refresh, but it is difficult to fully accept.
MYAN Hello:
Sorry to reply to your letter so late, these two letters I waited for a long time (a bit exaggerated :)) I am eager to get your view of my GP view. Because I said GP, I am also known for the 9CBS in the past few days, I only know when I was discussed in 9cs these days. It is said that it is basically not written by the process of the GP now.
STL is just a heard but there is no time to learn. I just gradually explored a little shallow view from your discussion of GP and OO, so I was eager to get the verification of your GP expert. Of course, I am also very happy that my opinion can get an expert in the GP circle. The so-called Python's GP is actually just what I have created. It is still not gp in Python, and there is no GP. No one is doing this. I just saw you after the discussion of GP, Python I was learning suddenly came out: Python dynamic semantics function can implement GP. But I think two days but are all inheritance of java.utily. Later I saw Python
There is an article on Mixed_in technology on .org. This makes me suddenly openly use the concept of Python's canable matching classes to implement a flavorful GP with Python. So because Python just learned so, the debugging program is written for you to give you a Bubble Sort.
You said that you were a language, very unfortunately I was also a language in the second grade of our university. It may even be better than you, think that VC is the best development tool to exclude all things other than MFC. After half a year, I gradually changed the view, I believe that the problem is not that the language is more advanced just to use the language achievement. I want to be a language that is a programmer that is inevitable. Because the programmer programmers programmed by the beginner is invested in too many sink costs (SINK COST) The cost of learning language cannot be recovered. Of course, the higher the SINK COST, the more you enteg your new competitors (programmers). BJARNE is not said. "I design the purpose of the C language is to let the programmer have a meal." When the new technology new language has made Sink Cost getting lower and lower, then "Culture Wu Wei" on the program language on the BBS "It will be more and more.
You said that GP didn't go out or said that the road is still unclear, but I don't agree with this view. I think the GP's outline is very clear. I don't think it is necessary to turn all things into a universal key. Since the abstract algorithm and the data structure are unique, the GP should let him play a function on the design of Componet & Module as a description of the world is OO task. We don't have to expand his feature as long as it is enough. We should remember that OO's chaos and cumbersome greater reason are abuse. Use Oo to write Componet is killing chicken with a cow knife.
In your other letter, I talked about the issue of the current OO river day. I have two views
1. Here I delete 200 words (mainly, I think everyone is not able to accept it without seeing it)
2. If the OO's river day is not necessarily a good thing if it is from the perspective of demand law. The design and development cost of OOD / OOP has been declining in the past decade, then it is easy to speculate that the average quality of procedures with OO design and writing should be reduced.
OOD / OOP design and development cost is very high, and the crudely missed procedure has not returned. Now, regardless of the size of the demand, the cost of OO programming is very low, so more and more low design and procedures have emerged. This does not mean that OO's ability to decline, but only indicate the cost of designing "lower" procedures in design. The design of the design is declining itself, making all types of programs increase. However, low quality and high-quality programming costs are reduced, which will increase the share of low-quality design and programming, because it is now designed with a reward. The lower quality is more than some of the original choices, because of something lower, its price is lower. It should be said that there are some low quality things, better than some low quality things. At the same time, things are more likely to get it, although high quality stuff is lower than the proportion of low-quality things. Today, OO is not good, and even the phenomenon of the river day, from the perspective of demand law, it is a comfortable picture.
In addition, you mentioned the ADA language, I used to have ear heard. Today, I am looking for it online, time is rushing to find it.
SIGADA83 SPEC. After reading, I think the ADA is indeed a very beautiful and very robust language. But I found out
One problem may also be the reason for ADA, ADA does not support type extension and dynamic edience (at least I see the ADA83 version is this. I don't know if the ADA95 has improved). The reason I think about the failure of ADA is this. I wrote a writing and I found out so much thing. I hope not to have nonsense, and I hope that Sina's server is stable, let me see your letter.
good luck
Ian.king
/ Demon blows the flute: This letter I pulled the topic to the Java GC. However, I gave him a nickname called a dream. Is it very caul? ///
Hi Dream:
Sorry Your Chinese name comes out in Microsoft Pinyin. First, I feel very cool, I want to be bad.
Magic dreams are indeed full (how is Diablo haha :)).
Today, I turned over the column you on 9CBS and read you a few articles. I don't think you are an expert on C / GP. But when I read the "Garbage Collection" criticized> I think you are an arrow that fired a shot to Java although the arrow is powerful. But it didn't aim at Java's nature, so I only whistled.
The weakness of the Java GC you discussed is that only program idle GC will recycle resources. First, I don't know how Sun's person answers this question. The second question, I think Sun is absolutely no speech on the performance of JVM. They don't know how others are running in their expensive sun server.
I have been a period of Java's Performance Tuning specially responsible for Java's Memory Leak (this Leak and the question you said). If this question is to answer. The answer is that the GC thread of this 1.JVM can do not interrupt the program running 2. The JVM of SUN is a huge problem with his memory recycling algorithm.
The first JVM GC thread does not require the operation of the interrupt program to use the -xingc parameter to reduce the parking time of the GC, if you have a dual CPU you can use XINGC to simply connect the GC thread to an idle CPU, so that GC does not interrupt The program runs.
The performance of the second Sun's JVM is very poor. If you use IBM JVM, you will find that his performance is three times the sun. Moreover, IBM-based unique algorithm Its JVM's GC interrupt program runs time than SUN short 5 times, especially on the AIX platform, IBM's JVM can do the asynchronous GC. Just mention the asynchronous GC function in the plan of Java1.4.1.
On the one hand, Java's GC is to solve most of the Memory Leak issues but more important aspects is to prevent memory's error operations. Java's GC is indeed very successful, because Java's JVM and operating systems independently lead to slowness of performance, but that is just a start, with the .NET's appearance of OS bundled JVM will come out of water, performance is getting better and better The GC will appear .NET GC is 10-20 times that of Java, more flexible. Of course, Java is not a Memory Leak. In fact, Memory Leak still exists, and Java's Memory Leak will be more terrible than C Memory Leak, more terrible, more hidden, debugging. One of the typical examples is that there is no release in this long periodic object in this long period of NEW in a long period of survival cycle.
If you want to point out the shortcomings of Java, I think there may be the following points.
1. It is possible to quickly and easily establish an app, but if the program has strict performance requirements, it will be the cost of optimizing this program will be two-three times the application.
2. The GC mechanism will lead to a more unscrupulous code, making the performance of the program greatly decreased. based on my experience
Java's 80% performance issues are derived from the low-efficiency code written by the programmer too dependent on the GC mechanism. Therefore, if you use Java written in plug-in (like servlet, jsp, ejb), performance It is still acceptable. If you write a server program with Java yourself, you need to spend a lot of time to optimize.
Ian.king
// Devil blows the flute: GC in the way, I think this is a relatively large change in I know. Later, the code that carefully reviewed Share_Point and STL's auto_ptr in Boost did this is a method of safe and efficient but relatively simple. But I personally prefer AUTO_PTR reasons to achieve relatively simple. Dream: In addition to std :: auto_ptr, scoped_ptr and shared_ptr are available in the Boost library. With these intelligent pointers, we can avoid most resource leaks in the program. However, it is still a high request for programmers. //
Snowfalcon brother:
Hello there!
I saw your analysis of Java GC performance, very admired. I have no substantial understanding of JVM. The article is summarized from the Internet, and the principle analysis, and the inference of pure theory, in front of practice data, definitely is pale. In fact, there is a little possibility that you don't know, I have been in favor of GC solutions for resource issues. Because if the GC design is good, its performance should exceed the Reference Counting Smart Pointer. But my point is that the GC must be controllable, the call is coming, and you will go. Therefore, I agree with the library, not the mechanism of the core language to present GC. At present, C is working on this matter, and there is a standard multi-thread library in Boost.org. I believe that in the 200X version C , this problem will have a better answer.
In fact, I wrote this article, I don't say to hit Java. Just think about things. Java is so slow, long, it is to eat big loss. Propaganda offensive can be successful, but it can't last long. There is too much foam around Java and .NET, I don't want to talk about them now. Still waiting for the bubble to spread, come on the line. I don't plan to chase the trend. In fact, there is always an anti-anti-anti-reflection in my idea, when everyone rushes to one direction, the real opportunity is often in another direction. So I talked to the ADA, which is suitable for developing large systems and embedded systems that are extremely reliable, high efficient and long-lived. I think this is precisely an important need in the future China software market. Unfortunately, I have no efforts to study the system, and I am afraid it is difficult to find enough Ada scholars. I have seen your number of Mail, which is indeed a big inspiration. For example, you will mention the Java GC mechanism for programmers, talk about OO's abuse, indeed cutting the key. I am now more and more, pure technology is limited in actual software development, and the quality of technicians and the management of teams are actually much more important than technology. It is also very unique to analyze the idea of analyzing software technology development trends from economic perspective. I hope to hear your point of view more. I am very busy this week, and I will tell a paragraph next Monday. I hope I can talk to you again. I hope to help you learn more about the GP implementation mechanism that is currently C , then analyze this direction of development trends and prospects from your own unique perspective.
Mengyan
10/19
// Demon blows the flute: Give Myan's reply, this letter is some questions. /
Hi Dream:
This holiday is over? I saw a relatively rushing, I have a hurry, in order to facilitate our mutual
Discuss me, I want to hear the specific opinions of your previous letter (mainly for the development direction of GP, OO, and some
Other opinions such as OOD / OOP transformation issues) At the same time, I hope you can introduce some of the development direction of GP and some problems with current existence, and some views of your internal processing mechanism for GP.
You said that "GC must be controllable, calling," Then I want .NET's unsaFed code should be able to meet this needs. I don't know that there are other better solutions in this way. In addition, I have thought about it, and the GC problem is solved by adding a keyword similar to Lifecycle to define the generation cycle of memory, but this is nothing to distinguish between this and the delete method.
You talk about economics, economics and science philosophy of philosophy, I am currently interested in two disciplines outside of Computer Science. The scientific philosophy of Popper has a great help, and the new institutional economics of the Chicago School is a standard for I know the understanding of the world. Economics is often misunderstood as a blurred discipline, or discipline that is dealing with money, but my understanding of economics is the science of explaining human choice behavior. He not only explains the currency, the supply and demand problem of enterprises. What is more important is that he explains the behavior of human choice, as long as human beings have a choice, there is economical to explain, such as marriage, loyalty, Lei Feng spirit and interest. I often think about it from this aspect. For example, why is the software engineering for most companies in China, why is the software quality river day is a gratifying picture, why the network economy is In his coming, why is Linux not going out. Herch is of course that the answer is not everyone or even most people can accept.
I really want to talk to you, the process of email is too slow, if you have chats such as OCIQ or MIRC
Tools, I think our communication may be more profound.
Thank you.
Ian.king