I. Introduction 1 I want to write this article 1 My story 2 Topic 3 IT 32. Text 32.1 Programming Language 32.2 Desktop Application Framework 52.3 Enterprise Application Framework 62.4 COM Technology 7 Conclusions 9 Gossip 10 Getting Started Programmer Recommendation 10 India's Software Industry 11 Appendix 11
Analysis and summary of mainstream technology MyEmail: bjhua@etang.com
I. Introduction, I want to write this article. First, I have to limit the scope of my article, I discussed the problem of desktop application development and corporate application development, so my conclusion is not applicable to the entire software development world, such as I said that the C language has exited the historical stage, which is obviously wrong for people who write in embedded systems and those who write operating system kernels. The purpose of I wrote this article is: * Simple introduction and evaluate the current mainstream technology * Compare current mainstream technology * Expected technology evolution If you want to make a programmer or is already a programmer, you may face these confuses: * What language is learned? Delphi, C , VB, Java, C #, PHP, PYTHON? * Select what development tool? Delphi, VC, C Builder, JBuilder? When you have already entered the door, you have a certain basis (may have been taking a few languages), you will face further confusion: * What is the relationship between MFC and VCL? ? * What is J2EE? What is .NET? What is the difference between the two, which one should I learn? * COM is so complicated, why are you used in many places? Do I have to learn it? If it is a software company, if it is not so big, if your company still doesn't have a real technology soul, then you will face the same confusion. Technical issues are complicated, so you don't know, and the real proficiency of each technology requires huge time and human investment, what do you do? Which technology is selected as the mainstream technology of the company? Whether the direction in which the direction is correct is a problem with your company's life and death. Do you face these confusion? If so, please let me try to see the cloud for you.
My story has never seen the computer before I go to college. At the time of the University, it is DOS and FoxBase's age, and it is also the time when the computer software develops a few great things: (Windows3.1, Borland C 3.1, Visual Basic 1.0 launch is also great, but then I don't know if the computer is from WidNows95, and started the application; Visual Basic 5.0 launched, the first time in the development tool, the first time, the extensive application of Auto Code Completion technology; Java launched; ASP technology began to prevail, Windows DNA technology is understood and accepted; standard C is born; Visual C 6.0 is launched; J2EE specification is launched. Become a programmer, it is not going well, because I am not a class. The language of my entry is FoxBase, which makes me have special feelings on FoxBase, and I am also transferring Windows programs through Visual FoxPro 3.0. If there is no, I may not be a programmer. Later, in the university period, I contacted InterDev. It was a development tool for the ASP program. There was Java. It was also in contact. At that time, I was a bit blindly worship. I thought that I like Java is a reason that I may have started learning C. It is very frustrated). After graduating, I found my first job with an ASP website written in myself - saying that I have never become a C programmer. I really familiar with Java is a book I have translated a book of Java data structure and wrote a complete GIS system (talking about this, I would like to thank my company, but because these stories are not related to the theme of this article. , So there is not much to say here). Later, I learned the standard C and COM technology. Is it a bit like a resume? When I mention these, I just hope that as a reader can understand my knowledge system, I can know what I have to talk about; I hope you can forgive me the mistake I may commit - I said here, not It must be the final conclusion, although the word "common discussion" is almost a dedicated language of the author of the crude book, but I am here to quote it is sincere, I am willing to see your feedback. The topic to be involved Before the topic of starting articles, I will probably introduce which knowledge will be involved. If you are an initiator, I hope you don't be intimidated. This is a technical article, but I will not discuss technical details. If you don't understand what I said, it doesn't matter, I have hoped to pass My article helps you make a choice, no longer walking a detour, you have to remember the conclusion, with your knowledge, you will gradually understand; if you have already dawn these Technology or most of them, then I believe that you will have some additional gains. Mainstream programming language: C , Delphi (Object Pascal), Java, C # desktop application framework: MFC, VCL, QT, Java AWT / SWING, .NET Enterprise Application Frame: Windows DNA (ASP, COM, COM ), J2EE, .NET Framework Development Tools: Visual Basic, Delphi, Visual C , C Builder, Visual C #
Second, the text is good, let us start my text. First, I will complete the first goal of this article: introduce and evaluate the current mainstream technology. The mainstream technology I refer to: * Programming language: C / delphi (I should be Object Pascal, but for simple, I will talk to the language and tools) / Java / C # (although he just launched, because Microsoft It will become a large number of hearts, will become an important development language) * Desktop Application Framework: MFC / VCL * Enterprise Application Framework: Windows DNA / J2EE / .NET * COM Technology: I separately put this technology, is Because it cannot be considered as language, desktop application framework or enterprise application framework, it has related relationships. 2.1 Programming Language 2.1.1 The evolution of the C language initially begins with binary code and compilation, but that is too far away. We tried from the process-oriented language (including Basic / C / Fortran / Pascal). This high-level language-oriented advanced language has finally brought a computer into the usual application. The C language is made by its simple and flexible creation of great software such as Unix and Windows. Object-oriented language is a logical evolution in computer language, because there is a better way of organizing data without excessive influence efficiency, simplicity, can be easier to understand, easier to manage - - This may lead to different opinions, but the fact is better than else, C finally makes the ternation of the C language, and the computer language that is still alive is more or less to object-oriented, so this is not It will cause too much confusion. C success is largely due to C, C has become a logical product today. Because in the era of the process, C is almost uniform. Today's famous language icon Java / C # borrowed a lot from C, C # The meaning of C . In fact, C has been very reason to unify the world of objects for the object design language, but unfortunately, C is too complicated. Even a skilled programmer, you will clearly explain some problems, you will also have a headache. What is the difference and connection between = overload / member conversion function / copy constructor / conversion constructor? Define such a class member function private: virtual void memfun () = 0; what is meaningful? Int (* (* x (int)) [4]) (Double); What does it mean? There are other features, such as the typefef and macro that can be used to make a new language (although the macro is not part of C , but it is too close to C , let you accidentally wrestled the memory problem ( As long as New and Delete can be? Is there a case where an object is stored in a container?) ... Such, C is so complicated to learn that it takes a long time, and you will find that you will use it C has been for several years, you will also find new things to learn.
You want to solve problems in an application area - such as querying data from the database, changing data, but you need to first C headache for a while, yes, you are proficient in C , you can answer your ability My question, but have you ever thought about how much you pay? I don't want to condemn C , I am like C , I even suggest a serious development of ordinary application system to learn some of the features in C , C , such as pointer operation / template / STL almost people Love is not released, macro can replace a lot of code with several characters, for system-level programmers, the status of C is irreplaceable, Java's virtual machine is written by C . C will continue to exist and have strong vitality. 2.1.2 Java and C # Java and C # relatively two points relative to C : the first point is that they run in a virtual environment, the second point is simple syntnary. For developers, Java and C # can be considered as the same language at the perspective of grammar and language mechanisms. C # More is a political product rather than the technical product. If Sun is a difficulty, I think Microsoft will not pay for the C of Java, remember WFC, remember WFC? Look at those things will know how much Microsoft has poured for Java. And from a broader perspective, both are also very similar - C # and Java facing the same problem, facing the application field: transaction, remote access, web service, web page release, graphics interface. So in this paragraph, I temporarily refer to Java and C # two languages with Java - although the two are indeed different from the details. Java is a language suitable for solving problems in the application. The biggest reason Java is very simple for users. Think about you learn and can use Java how long, learn and can use C how long it takes. Since Java is largely shielding memory management issues, and there is not much for minimal performance improvement definitions (for example, there is no virtual in Java, Java does not allow you to create objects directly on the stack. Java clearly distinguishes between BOOL and integer variables), he lets you operate all things as much as possible, in addition to basic data types, all things are objects, you must operate them by reference; except these, Java It also provides a rich class library to help you solve your application problem - because it is an application-oriented language, it provides you with multi-threaded standard, JDBC standard, GUI standard, and these standards do not exist in C , because C It is not directly to solve the application problem, some people try to join these contents in C , but not successful, because C itself is too complex, using this complex language to achieve this complex application framework I am one Difficulties, we will mention this attempt. Gradually, people will not use C to develop applications software, like MFC / QT / COM, things will eventually exit historical stations. 2.1.3 Delphidelphi is an intermediate product from the Java development application system from the C development application system.
It is simpler than C , almost like Java, because it is possible, definition, and useful class libraries, and Delphi is also done, the result is VCL and other component libraries. On the other hand, it is more efficient than Java running on the virtual environment, so in the balance of simplicity and efficiency, Delphi finds its own living space. And it is expected that this living space will still exist within a future. It will be apparent that Microsoft gives up this field, and he focuses on two aspects: system language C and future Java (actually .NET). Perhaps this is a lucky thing for Borland. If I can give Borland some suggestions, then don't make Delphi get more and more complicated, if so, I have rushed my users to C or Java territory. Delphi and Delphi users will still live very well before virtual machines do not eventually occupy all application development areas. 2.2 Desktop Application Framework The real successful desktop application framework is only two, one is MFC, one is VCL, and some other, but in fact, there is no importation. Unfortunately, I am not proficient in two desktop applications. But this does not prevent me to make a correct evaluation of him. 2.2.1 MFCMFC (still OWL) is the result of the normal evolution of SDK programming, like C is the evolution result of C. The MFC itself is a task but not so successful work, and it is outdated. This is my conclusion. The MFC condenses a lot of wisdom of genius - of course, OWL and VCLs, Houjie's "deep-in-depth MFC" put these wisdom in front of us. But this thing is used to estimate that someone will feel very comfortable. If you have been using Java, VB or Delphi, then go back to use MFC, uncomfortable feelings will be more intense. I can't explain why MFC can't eventually develop as simple and easy to use the VCL. Maybe Microsoft is not energetic or no power, and the MFC is that look, and it will not have development, it has been abandoned . I sometimes think that there may be a C such complex language to develop MFC this is wrong - can develop such a frame, but should not require the person who uses it to be familiar with the entire framework before you can use this system. But it is clear, if you don't understand the internal mechanism of MFC, it is unlikely to use it well, I can't explain why this phenomenon. 2.2.2 VCL is much more successful than the VCL. I believe many people using VCL may not have the MFC to study the internal mechanism of VCL as MFC. But this does not prevent them to develop a good-looking app, this is enough, what else is it? VCL provides you with a simple and consistent mechanism that allows you to write complex applications. In Li Wei's Borland Story, I have said that after Borland C 3.1 launched, Borland proposed to develop software similar to C Builder, and did not row. Yes, if C Builder appears at that time, what will be the world today? It really can't be imagined. Maybe there will be a while, these will no longer be important. Because new languages such as Java and C # provide a desktop application framework similar to VCL.
At that time, plus the simplicity of Java and C # itself, if their speed has enough blocks, even Delphi language has to disappear, what else is there? Just for today's desktop developers, VCL is indeed the best choice. 2.3 Enterprise Application Framework 2.3.1 The origin of Windows DNA Windows DNA has no exploration. With the launch of .NET, in fact Windows DNA will become a history of history. WINDOWS DNA although almost all corporate application developers know a noun, I believe that Windows DNA is the most extensive application of the application is ASP instead of COM . How many people are really mastered, don't mention COM (I need to explain: COM is a COM executive environment, which provides a series of basic services such as transaction, security, let application developers Try to find the infrastructure design, I'm doing it in the infrastructure) - Of course, the COM development here does not refer to the COM development under VB, so I have to say this, because I think if I can't use C , I can't really real. Understand COM technology. If there is no extensive understanding and application of a technology as a flag of failure, the Windows DNA is actually failed, but this is not its own fault, but based on C COM technology failure. Multi-layer applications, the concept of system development role separation is still outdated. 2.3.2 J2EEJ2EE is the first set of successful enterprise applications development frameworks. Because it brings transaction, remote access, security these concepts into ordinary people's home. This success I think it is due to the simplicity of Java. Java is simple, as important as J2EE container vendors. Developing a Java-based application server is more easier than C based. And due to the simplicity of Java, the opportunity for application system developers will be less, and there will be so many setbacks like C developers. Developing a Java-based enterprise application system is shorter, this is probably an uncomfortable fact. No matter how it is J2EE to make transaction, remote access, security these is almost almost all concepts in the financial system are also used by general enterprise users and benefit from them. 2.3.3 .Net .NET does something good? In fact, it is just Microsoft J2EE. Transaction processing, security, remote access, these concepts are found in .NET. More powerful instructions is that Microsoft also uses .NET implements a PET Store. Therefore, .NET and J2EE are almost completely right. But Microsoft is indeed a company worthy of respect - I refer to the technology, like web form, I believe that many web application developers have dreams, but Sun has always been indifferent, but it seems that Borland has no I have made too much effort for this, it seems that there have been something similar, but it is definitely not very successful - Orland is already very admired, we may not ask too much. 2.4 COM technology COM should be a broader vocabulary, in fact, I feel AXTIVEX, OLE, Automation, COM should be mentioned, because if you don't understand COM, you can't understand it. Moreover, I just want COM is a technology that is about to die, just talk about COM's complexity and his problem is enough, so it will not mention those things. Why do COM technology? The fundamental goal of COM is to implement the code of the code-based binary reuse, and then implement the software componentization, the division of software development work. This requires him to do two points: First, can span different languages, second, to span different compilers in the same language.
COM technology has paid heavy costs for this goal, especially in order to span different compilers, so that he is a painful technology regardless of whether the user is still a developer. But fortunate things, this is all ended. Let's take a look at this purpose, why COM will become it now. In fact, COM is not a new thing, the initial DLL is a technology that reuses binary code. The DLL may not be good in C, but it will not be in the era of C . The reason is that if you change the class definition (increasing or decrease member variable), the code base user code must be recompiled, otherwise the user's code will press your new class by your old class. Allocate memory, which will give it what will be imagined. This is why the inheritance of the interface is inherited and the interface operation object has become a COM, and the code can organize code by the object of COM. So what is the famous iUnknown interface? This is to allow C developers using different compilers to share labor results. First look at QueryInterface, because COM is based on an interface, then a class may implement a few interfaces, and for the user, you can only operate the class by operating the interface so you must make the class into a specific interface. Do you use Dynamic_cast? No, because this is the compiler. So, I have to put it in the category of the class, which is the origin of queryinterface. As for addRef and release, the first reason they produce is that DELETE is required to have a class with a false preframe function (otherwise, his parent class's destructor will not be called), but unfortunately different compilation In the location of the false argument function in VTBL, the location in the VTBL is different. This means that you can't let the user call DELETE directly, then your COM object must provide yourself to delete your own method; another reason is that a COM object may be used as a few The interface is used simultaneously by the user. If the user has deleted an interface, then other interfaces cannot be used, so that users have to notify the COM object through the AddRef when they want to use an interface. "I want to use you." , You have more users ", and after you don't have to call Release to tell COM object" I don't have you, you have a user ", if the COM object finds yourself without users, it will delete yourself. Take a look at the strange HRESULT, which is the price of a cross-language and cross-blocking. In fact, exception handling is the result of the game life - even the C that has been advertised, it can achieve this try-catch, it can be seen, but COM has abandoned this characteristics in order to take care of those low-level languages. - The result is HRESULT. We can see how stupid thing he is. First, we have to pass an incorrect information through an integer, find a real error description through IerrorInfo, which is a problem that a try-catch in a modern language can solve the problem, but now we need to let users and developers will take a lot of way to solve How do you evaluate this result? Second, since this return calculation result is occupied, we have to return the result with a weird OUT parameter. Think about a simple int Add (int OP1, INTOP2) in COM, it is necessary to turn into HRESULT ADD (int OP1, INTOP2, INT * Result), I don't know what you think about this.
And because the COM method cannot return an object, you can only return a pointer, in order to complete a simple std :: string getName (), how many turnover you cost - you need to assign a memory space, then Copy a string into this space in the COM implementation, using you to delete this space, don't know if you feel that this kind of work is very happy, anyway, I feel very painful. There is also COM in order to take care of those interpretative languages, adding Automation technology. Do you feel painful? Originally a simple method call, now you need to pass a logo variable, then let you perform the corresponding operation based on this logo variable. (I still don't understand this now, why explanational language needs to perform a method in this way). "I am enough, I feel headache", you will say, yeah, I think all people are enough, and all these factors actually turn COM technology into a monster that can't be controlled. The human control of complex things is limited, C itself is complicated, COM complex has exceeded our most people's control capabilities, you need to endure all kinds of painful things that are more painful than the cost of paying. Isn't it too not worth it? We have learned to solve the problem, but now we need to take too much energy to learn this matter itself. These painful things are too much, I am here, actually just a small part. Computer technology is for human service, not a few people's game (I think COM technology may be his designer and some technical author's game), is we willing to be a slave of a computer? Through an over-complex technique, all people are discarded by all the people. People who choose J2EE in so many years I believe that there is no shortage. Do you choose J2EE because COM is too complicated? Because it can achieve almost objective goals in a simple way - "binary" reuse, componentization, professional division of labor (container developer and application developers). In fact, you are abandoned by Microsoft, and you also abandoned Microsoft. Let us come back now, I bring you into the maze of COM, let me lead you back. Let us look at what go to COM want to achieve what goals. It is actually very simple, but the binary reuse of the code, that is, you don't have to give someone source code, and your components can "plug and play" like computer hardware. When we came back to see Java, in fact, this binary reuse is brought by C (this is not the fault of C itself, but the static compiler), when Java appears, many problems have no existence . You don't need a header file, because Java's bytecode is self-explanatory, it shows what you are like, what you can do, don't need a header file like C to explain these things; don't need to know prior The memory structure of the object is allocated when the memory is running.
What do you do if we will go back to a problem now? First, you will no longer choose C language to implement the "binary" reuse of the code. Second, you will compile all the language into the same "binary" code (actually, it should be a byte code), which is obviously A smarter approach, from the previous COM attempted the difference in the secondary binary level of the source code, this is actually what people should do if they should be made by the machine, is it stupid? But they have been doing so many years, and bring this pain to the entire computer world - because they have the standards of facts, for users, for profits, in order to be able to run on Windows, although you know that you are doing a very Don't smart, but you still do it. COM technology is astaining too much energy in order to take care of VB and realize the ambition of unified secondary world. First, the demise of backward things is inevitably, like C, Pascal in the application field, Basic's right to improve the movement is the practice of historical trends, advanced things and backward things together, or Advanced things are dragged behind, or they are equally lagging, obviously we are more willing to see the latter, now Basic is finally assigned by modern computer language. Second, the unified two-way world seems to be less simple things, and there is nothing necessary, Microsoft's COM technology is fighting for 10 years, and now only himself and borland support, .net finally gave up this ambition. All this is finally over. In the past, J2EE high songs occupied the territory of application development, and COM had a pale weakness in this kind of attack. Now Microsoft has finally have a longer .NET with J2EE .NET, for developers, the binary reproduction of the bytecode-based component is now the meaning of the sky, you don't have to make so many messy in order to publish the components in class. Things, because everything is now classified; realizing the division of software development is also natural, you are a professional, just use C #, you are an application developer, you like to use vb.net, you will use it, Anyway, what you wrote, I was finally translated into the same language (in fact, I think this is not big, because some less easy language is eliminated is normal, C style has mainstream the mainstream style of programming language, affirmation If there is any reason, the unity of the language is actually a general trend, just like the Chinese people, the same thing is to speak Mandarin, so I think Java does not support the shortcomings of multi-language - it is a very good-looking language. Why do you complicate simple questions?). CoM will not die in the short term, because I estimate that Microsoft will not immediately use C # to develop office and windows graphical interface part, but I believe that COM technology exits the history stage is not far away, as a general developer, forgot This unpleasant history - you will not deal with COM directly in your world. After a few years, I think COM may become a joke, used to satirize the stupid smarter of the ambition, the rumor horn. The conclusion is much more, it should be a conclusion.
I seem to have a big thing that has taken the world, because I evaluated mainstream technology, but also try to compare, as if a celebrity said: "C Builder is also, Visual C is also good, can be in the market On the foothold, it is definitely there is your own experience, and some people are proficient in developing languages, and several development tools are impossible. "The meaning of the words is to say that you don't comment on these things, But how can you not comment? It seems that the master dismisses which language is good, which language is broken, I don't know when to form this atmosphere. Simply put C better than Java or Java is obviously stupid than C , but if you let you write a driver with Java, is it a stupid behavior to develop a MIS system with C ? Obviously stupid. I think, as an independent person, the outside thing is always good for you, and your life is limited, you still have to enjoy your life, so you have to make a choice. Therefore, at least the evaluation These things are correct for myself - as long as I have the ability to evaluate, then I said my evaluation. For computer languages, the true important language in the future is only three C , Java, and C #. C will be more suitable for professional computers to write graphical interface systems (such as KDE), virtual machines (such as Java virtual machines or .NET running environments), anti-virus software or other boxed software (such as Photoshop, Dream Weaver) this Class of things. And C is suitable for programmers to do learning, and programmers who have a certain understanding of C often understand Java, C #, which helps write better software. If it is developed to develop application system Java, C # is a better choice. Includes desktop applications and web applications. As for other languages, such as VB.NET, there is no great significance. Delphi will continue to exist in the next few times, and it is very good. The most important reason is that the first there is a rich set of component libraries, the second is relatively high, and the third is simple. If the execution efficiency of the virtual machine can't be up to Delphi, it has the reason, but from the past Visual J , Microsoft's virtual machine is really good, plus the simplicity of .NET component library and C # is not Poor, so from the long run, Delphi may not be so optimistic. In fact, the above comparison also includes comparison of desktop application frameworks. In now, VCL is undoubtedly, and MFC has exited the historical stage. The desktop application framework belled in .NET will eventually unify desktop applications (but do not include Microsoft and Borland professional companies because they have to make the best use and the highest efficiency software). As for the desktop application framework belled in Java, it is really a crying. This conclusion varies the performance efficiency of the .NET operating environment. If the virtual machine icon in .NET is the same as that Microsoft is unlucky, it is equal to abandoning the field of desktop application development tools, but according to Microsoft's achievements on Visual J and the driving style of the .NET The possibility of failure in the desktop field is not large (but not, the COM-based technology can almost talk about the whole army in the enterprise application field). In the field of enterprise application framework, only J2EE and .NET can decide a foot.
I didn't mention CORBA, it can also be an enterprise application framework, but his situation and J2EE or .net really can't talk to day, and the most important thing is that only Borland family supports it (Sun, IBM, BEA, Borland Support J2EE, Microsoft does not have to say it), so he will not tell him in detail. So, who will win? I think Microsoft will win the possibility of winning. This is said that many people are unhappy, and IBM is very obvious. But this is not a pure technical issue, just like Windows NT eating the UNIX territory, then Microsoft is also a fight. J2EE's question is the first: confusion, second, high price. I believe that many people have experienced these two points. You know that applications written to WebLogic can be ported smoothly to WebSphere, which is the same. However, .net is different, that is a work of Microsoft, and there is no transplant problem. If the J2EE camp does not want to defeat this, there are three ways. The first is to completely eliminate transplantation issues through the development of unified standards, the second is to develop a good deployment tool (not as big as JBuilder, so slow: ), The difference between the different application containers, the third, is also the most impossible, that is, some people can one in the world. Obviously, these three solutions are not very realistic. The second price is high, this is Sun, IBM, BEA, Oracle tradition, and they have always made Microsoft's offensive skills. I have never understood why they are so expensive. Think about it: Microsoft's .NET SDK is sent to you, BEA's WebLogic a CPU's license 20,000. If you have two technologies, if you give the customer's system quote, which development technology do you choose? This is really a good time. J2EE has something, .NET also has (except for cross-platform), what is the significance of the technique in front of the huge price difference? Of course, SUM, IBM these big companies are not waiting for the world. Just like Windows NT, J2EE should coexist like Windows NT and UNIX, but I want .Net I will occupy the wind. Gossip said that the technical problem should be said, talk about gossip. If you feel in your heart, you don't say something uncomfortable, and let me live fast :) Give the introductors' suggestions I don't know if I am learning the computer. But I think if I let me start learning to write a program, I will adopt some different ways. If you are also wanting to be a programmer, these may help you. I think it may be probably a few phases. The first stage should be to find a simple language entry, such as Java or C # should be more appropriate, select a simple book book (preferably not too thick), According to the class, you will learn the book. At this time, there may be some understanding, but it doesn't matter, you can start making a small software. Important things you have to think about the way you use the language. If there is a project, it is better. After that, you will feel a little feeling. If you are not born like I am, you should take the computer professional courses. I think the most important thing is the data structure - those things you may never do it yourself, there is beautiful STL in C , Java It is also for you to achieve most things, but I don't think it is necessary to learn those content, which will strengthen your ability to think about problems with your computer language.
Further, if your entry language is not C , you can try C , although you may never use the C development program. C is like Mandarin in the current computer world, and it makes it easy to understand problems in other languages. After learning C , you should not be a primary programmer, you are welcome to enter the world developed by computer software. India's software industry I remember seems to have seen an article on 9CBS, and the powerful software industry that highlights India. And I remember that he seems to say a very moment of mind. "Our company B is big and t big, a special cattle, cattle can't see people ... do the interface is very miraculous, you can ...", Such as this, in short, the programmer is only like India's high school students, knowing UML, will see Function Specification is a real programmer. I felt very uncomfortable. I think this person should not be B or T big - oh, don't misunderstand, I am not - but I think it seems like B big T big people are not like him. And I don't understand why China's software industry must be in India? As a company, you want to get commercial profits, learn India is not thick, you can find a big high school student training into programming blue collar (I don't despise high school students, I believe there are many "high school students" in technology field achievements. It is desirable to make me like it), but you shouldn't make a flattener that has a person with blood, and a personality is not worth it. To be honest, the so-called programming blue-collar is just the assembly in the factory. If there is a factory replaced the automated equipment, these people have become a wasteman! And you have to know that these assemblers invenously invented the automation machine. I think this kind of words don't say more, and the son "" I can't ", you can like to become a blue collar, but don't push the problem to the extreme, push the problem to the extreme, often make mistakes. We can learn from India to some extent, but it seems to be more likely to learn the United States - just we are not so rich - but Microsoft is not from the beginning, it is such a great empire, IBM is the same.
Appendix Reference Bibliography Reads the following books help understand this article. And these books are good books, it is worth reading. * "Standard C Collection" * "C Programming" * "in-depth light-out MFC2E" * "COM technology insider" * "COM nature" * "Java programming" * "Jinglong EJB" second edition * "J2EE Programming Guide" * "Delphi 6 Developer Guide" * "C # Collection" * "Microsoft .NET Strategy"