-------------------------------------------------- --------------------------- Statement: This article is my own time to think, understand and speech self summary pure personal opinion, experience Description, the refer to the reference, of course, you also welcome you [to your] and [view]:) -------------------------- -------------------------------------------------- -
Some people think that the late C tend to send a style, entered the pursuit of technology and difficulty mistakes, gradually separated from the mainstream Programmers. Some people think that C is constantly shrinking in modern software engineering, and some people think that C no All of the application or research on specific areas is enough.
I. Faced with language such as Object-Pascal, Java, C #, is also C ?
First, in terms of methodology, it is undeniable that the OO methodology itself has a constructed system amazing as the complexity of the project is amazing. Moreover, in order to build an OO system, in the OOA, OOD phase, Designers need a very high level. Taking OOP as a model, it is also a strategy for C representing the syntax semantic design in OOP. However, this is complex, naturally brought benefits. , Including the scalability, reusability of the system. It seems that there is a very subtle relationship, and the upper size system is to select OO method for scalability, reusability, etc., however, in OOA, OOD phase It takes great input (perhaps in 00 Methodology, the status of A and D in software engineering is more obvious ~).
The world's discussion may always be performed, and individuals have always believed that: 1. First, each language has its own applicable field, in terms of application, there is no need to compare the language. Build enterprise information system, Naturally, Java, DOTNET or other programs will naturally choose (in fact, this system should generally develop in a variety of languages to obtain the best components performance). Maybe multiple languages are suitable for a project, then specifically For example, as a information management system, select the C environment, PB or Delphi, VB is a good choice. In the initial learning phase, "chooses to love (more with accidents or related to the environment) For developers, it is basically "because of being used". After maturity, "learning" I feel is also the most practical guiding principle.
2. Regarding the problem of language complexity: language is tool, it is not necessary to be too complicated. I have been supporting the language should be specialized (here, refer to obligations and specific applications) and simplified direction. This is the language The essence is the essence. The business is the foundation of the software implementation. For software development, the business is the most difficult to get it, or the software is very difficult to simulate the simulation business. A few days ago, The teacher of the School Management Department also told me that their student status management software made two graduate students constantly improved, three years, [completely conforming to his business requirements]. If you just heard how a certain language is complicated, difficult to learn And learned, then you may be wrong ~ I am concerned about the technology, the technology is not advisable :)
3. However, this world is real, not as you think. It is not a simple, powerful, close to the language of the business. At this level, for enterprise information application system developers, Java, C #, Object-pascal, etc. is indeed a gospel ~~ However, in the system software and other performance, the level of control system, high performance computing, real-time system, military software, etc. can not be lack of C (c) (not these Obvious expertise accounts for the weight of the absolute part). It is visible, tightly, C (c) still occupies a world. Strictly, C is a competitor of C (no matter these :) ).
Second, C really walked into the misunderstanding of the pursuit of technology Since, GP thinking was officially incorporated into standard libraries on C , and the rumors of C into technology misunderstandings did not stop, Boost, as GP leader One of the Andrei Alexandrescu advocates and practices (Loki) compile time programming, introducing the design pattern ideas into the library design, making the rumors quickly discussing :). However, GP is really just technology? I have always thought that, For OO, I have made this kind of thinking: ------------------------------------- -------------------------------------- true object should be at least: autonomous Adapt to the environment (maintain enough "consciousness") 1. Self-issuing awareness is stronger 2. More reactivity is stronger 3. There is enough independence now OO, more like build it on PO, but it is an object. Function. But in fact, no matter how high the ability of the object, the process is absolutely less. The agent: I want to be the most expressive .com: The object is expressed, reaction, reaction, and adaptation ability than Object-based. But is no magic. It's still a general skill to construct it. I don't know anything:) GP: I can't think of it as an unnecessary technique, [From this node talking about it, its substance I Think [at least] Yes]: Improved a means of adaptability of the structure (not self-line). Andrei Alexandrescu's "Generic Programming: Type ELSE-IF-THEN Mechanism" This article can be a wonderful Certificate. ----------------------------------------------- ------------------------------
Third, C ? First, statement: I can only say one of them (C too big :)) Mang Yan once mentioned "C urgent heart", I want to say "C needs freedom Heart and hand, "I dare to sure my freedom and Melong's freedom is different. Because my freedom is:" Use their own ideas to freely write verification usecase "on individual learning experience Forward:
1. In the process of learning C , you first need a solid practice of a C basic tutorial, this tutorial is not deep. Make you can fully exploited. It is best to practice in combination with basic data structures. Don't stay all day Hello World ~~ Hello MM.
2. You need "more" Effective C ", which makes you think more about C , and you can understand some techniques and misunderstandings. However, you need to synchronize practice, or you may not really master these Skills, avoid the misunderstanding.
3. Improve, you need: (The book below may have already spoken :))
"Design Pattern": personal feeling, designed mode is a way of thinking, concrete implementation, just the discovery and clever combination of OOP languages. And here is the main, characteristic, this book Mode does not use virtual character? C Standard Document: When you use it to do special studies, you will experience what is really complete (naturally refer to grammar and semantic). "STL source code Analysis ": There is no deep skill, I want to have a closed door to pick up the STL source code. However, this is also important in key technology explanation and guidance ~~ This is a lot about GP and STL, I didn't see it. Over. Do not make a review. "Inside THE C Object Model": The most valuable book, there is no, C is always a fan, even if you get the n-load ~~ "MODEN IN C Design": Here's a lot of ideas is your own thinking It's hard to get in touch ~~ :) I have to admire Andrei Alexandrescu. Other C books on the market can be car, I feel that in addition to "The Design and Evolution Of C " is a foreign product, it is worth reading. Other no suggestions Too much time, even the works of Bjarne Stroustrup, Stanley B.Lippman, etc. Natural, you have time to read better, anyway, I have a little regret now, I only take Gu more, I read it, I repeatedly read. The classic book is not in the number Every time they read more. One experience, I often have people on BBS, when introducing COM technical books, I don't want to point out, entry level << inside the com >>. Is this this? I think I think As Dale Rogerson said, let this book understand, you are COM experts ~~ Book, the author may not pay attention, because you don't understand, don't feel it, turn down again, Feeling ~~ Simple ~ full look :) These books, the biggest difference between many books in China is the author written by the author of the domestic book, maybe I don't understand:) Copy what information :) ?? ??
4. The grammatical language of the immersing a language itself has long been long, you don't necessarily go deep into its exquisite. You need to learn the real work (technology) to apply this language, you can study some Framework or some specific technologies Such as CORBA, COM, etc., in person, have a heart contact C for ten months, there have been several large changes for Virtual's understanding. For the first time in "INSIDE THE C Object Model", in "COM nature "On the Solution of COM on the Double Binary Compatibility Layout Demand Use the virtual mechanism to solve the second time, so far, so that I am most impressive to Virtual flow is that the components in Automation technology are caused by the environment due to the environment to analyze the Virtual structure. Do you need a problem with the interface. If you have a book in "C syntax" in the whole day, I don't know when you can really understand the characteristics of C . Even if you can say a big set of people, this is ~ That's not good ~~ Yunyun ~~ :)
During this whole process, I like this to say this, you need to often mix C 's various features in your brain, this is the reason why I emphasized the knowledge of the textbook. Come often In order to study some characteristics and free write, modification, increase USECase is a habit I think is very good. The experience of the experience of others is, I don't know how many layers after a few months :)?
Perhaps the above narrative is summarized :)?
In short, I think I have to learn C , I need more thinking (for example, what do you think of the template inheritance does not support Virtual, template inheritance, base class instance, and inheritance instances, what is the relationship generated by instances, more written Usecase, more Stack characterization, such as template membership, multiple nested template members signature, nested classes and parcel life control, etc.) To select the application direction as soon as possible (this is very important, additional personal view: Most People think that theory is difficult, but I want to say: Application is difficult :)). Put the theoretical theory in 00 Engineering to our behavior.
Later: mentioned above, it is applying, it is nothing to apply. However, I want to say is that I can't imagine that there is no C tempered person, I can study C # (in fact, I have always been Artificial C # is better than C , but their deep entry is different, take the liberty, there are many difficulties in C ), and there is currently because of C history, community, resources and other factors.
Site: Because of the use, because of love, you should not choose to learn, not :)