About the two-generation languages. C/C ++, java/c #

Source: Internet
Author: User

This is not what I wrote. I just posted it when I saw it as nice.
:

Don't think this question is sensational, but in the current situation, c/c ++ needs to exit the stage or be changed.
I think in the next one or two years, c/c ++ (whether it is mfc or bcb), one of the criteria for programmer level evaluation, will give way to three programming languages. c # 3.xml on sun's java2.windows Platform
In my opinion, the biggest reason is that the current applications are being transferred from an independent operating system to an internet-based platform.
We used to develop applications that relied on platform function calls. This was true for both mfc and bcb. the increasing popularity of internet programming is the least important thing about calling a platform. For example, to realize B2B e-commerce, we need to integrate different platforms, if I am a programmer, what I care about most is how to implement business logic.
Instead of communication and management between platforms. what we need most urgently is a language that has nothing to do with the call of various platforms. In this language, we only focus on the design of program logic rather than Platform calls. the c/c ++ we are familiar with is not designed for this (hehe cannot blame c/c ++ for knowing the internet in 1970s ). the purpose of c/c ++'s initial design was to design unix to generate a language that is highly efficient and inefficient for development between Assembler and advanced languages. he cares more about the physical structure of the system than any other advanced language, for example, the pointer that has always been a half of the reputation. the reason why the pointer is powerful is that it involves the management of the system's physical memory. he can make the programmer and the system a translucent state. however, this translucent state makes the pointer more unstable.
C/c ++ has no advantage in Internet-oriented programming. cross-platform E-commerce software is most afraid of taking into account the daily differences between various platforms for system calls, and is most afraid of crash due to memory leakage from time to time. the advantage of c/c ++ has become a disadvantage. even if you develop a solution based on windows dna on windows
The most commonly used dcom is vb rather than vc's atl dcom, because c/c ++ is efficient but easy to use.
An error occurs. If you release the memory nt accidentally, the resource will soon be insufficient.
Java is the first to see this situation. He uses jvm to implement platform-independent memory collection to ensure stability and robustness. however, many c/c ++ programmers complain that java is too slow. indeed, even when it reaches java2 speed, it is still a big problem. I used to be a strong supporter of c/c ++. I have been involved in many forums with java programmers. but I gradually realized that the speed problem of java is often a small flaw in the face of internet platforms rather than specific operating systems. we can imagine that an e-commerce website will use our pc as the server. They are neither sun's e1000 nor ibm's risc6000. on this platform, the speed problem of java is only a peice of cake. programmers only need to focus on programming with business logic, and do not need to worry about whether the array is out of bounds, whether the object memory is released, or not whether the unix and windows system calls are different.
Microsoft's c # can be said to be a combination of java and c/c ++. It can reclaim the memory, but it can be unrelated to the platform.
He can also implement some functions not available in java, such as using pointers to manage memory in the marked program segment, and implementing Operator overloading. why do I want to do this? Maybe c # still has some tasks for operating system development, such as winform. basically, the idea is similar to that of java, but the implementation method is different. Instead of interpreting intermediate code through jvm, instead, compile the source code into p code and then use the CLS library and JIT to timely compile the local code to 100% on the platform for execution. his pe code is independent of the platform, but cls and jit are designed based on different platforms. therefore, c # platform independence is a bit similar to c/c ++ porting on different platforms, making c # Faster than java. in addition, Microsoft also promised that cls and jit not only target c # but also target any language such as pascal and smaltalk. for basic, it is possible that all programming languages will be platform independent in the future (ms is really poisonous, all languages are platform independent. What advantages does java have? It is said that ms is developing asp + based on pascal smaltalk ).
Xml many people may think that languages similar to html and c/c ++, java, and c # are completely different from other languages. actually not. we know that both c # and java implement platform independence through unified ground computing. therefore, we must pay a price for performance. however, xml can be called between different languages. for example, one network uses java to implement one shipment function, and the other website uses dcom to implement one import function. if this website needs to implement B2B, the general method is to write the Conversion Program between them. xml uses markup language to describe their excuses. both ends call each other by parsing xml text, without any intermediate Conversion Program
Communication between bean and dcom can be realized as long as an xml text (to clarify the mechanism, we need a lot of xml concepts. If you are interested, please go to msdn.microsoft.com/xml?www.s3c.orgto see ). currently. net, the core technology of soap is xml-based Remote Process calling.
I have introduced so many things that may be difficult to understand. In fact, what I want to say most is that programmers in the 21st century should come out of the traditional methods for operating systems, learn a little about the technology and concept of programming for the Internet platform. do not argue about the fearless c/c ++ tools. I don't think bcb or mfc will be eliminated in a year or two,
At that time, we should argue whether bcb is better or mfc is better, but c # is better or java is better. as for xml, No matter sun or ms, any big IT company in the world, including Intel and hp, is struggling to study the technology. If they do not learn IT, they may be eliminated. as for c/c ++, it may fall into the current Assembly position, which can be seen in some sensitive aspects of system performance.
If you are a beginner in programming languages, I suggest learning java and paying attention to c #. First of all, they are simpler than c/c ++ and have no complicated macros or pointers, touch version and so on. moreover, it is completely object-oriented, and is much easier to learn than the object-oriented method of c/c ++. (I recommend that you study java now. After all, c # has not yet been released, and the newly released beta version of the compiler requires a high level of fear. Do not run the win2000 adv server without MB of memory. speaking of this, c # is the same as java. There is no big difference. I have learned how to use c # In the future)
For programmers in windows, the value of learning mfc is still a little bit, but not too great. at least be familiar with the internal mechanism of windows. however, I recommend that you pay attention to c #. In the future, windows.net will be based on c # Instead of mfc. moreover, c # is much simpler than mfc to implement the same windows desktop application c #. the development speed is two to three times faster than that of mfc and the performance loss is almost invisible. in visual studio 7.0, vc will be a secondary development tool. The most important development tools are c # And vb7.0. as for borland, I think it is impossible not to follow ms. At least on windows platforms. Maybe next year. there is a c # builder that serves as borland's main product rather than c ++ builder. speaking of a joke, wenny may soon turn it into www. c # help.net


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.