C ++ development history in the eyes of a skeptical person

Source: Internet
Author: User
Tags ocaml

C ++ development history in the eyes of a skeptical person

Author: Chad Perrin
Translation: purpleendurer, 1st
Categories: C/C ++, go, Mac OSX, objective caml, objective-C, programming ages
Tags: C, apple, Apple inc ., c ++, language, Bjarne stroustrup, objective-C, C/C ++, programming language, programming ages, software development, software development, software/website development, software/Web Development

 

Bjarne stroustrup designs the C ++ programming language as a simplified version of the C language and integrates some enhanced features. The most important thing is the built-in object-oriented programming mechanism, as shown in the tentative name of the early development stage of the project: "C with classes )".
It is widely used in performance-oriented software development, especially in very complex application development fields. using OOP is very helpful for such complex processing. Unfortunately, C ++ itself is an extremely complex and annoying language.
At first, the designer promised that C ++ would become a C language superset with an object-oriented programming mechanism. At about the same time (less than three years later), another language (objective-C) was developed for the same purpose.

To a large extent, the differences between languages can be divided into two points:

▲Impact on their design
▲Their degree of implementation of earlier goals

In Wikipedia, C ++ is affected by a large number of languages, including C (which is natural), Ada 83, Algol 68, Clu, ML, and simula. For most common C ++ users, it may be difficult to list these languages without thinking about them, and even if the common C ++ programmers can list them separately, then, two lists are randomly selected for comparison. The languages listed above are generally different. The impact of these languages on C ++ is masked to some extent by their submission to the new language, and some may propose absinthe) is another important impact.

* Purpleendurer Note: C ++ entries in Wikipedia

Http://zh.wikipedia.org/zh-cn/C%2B%2B

 

In contrast, objective-C has two major influences, even the most dish objective-C programmers (may not include those who do not know the programming language's history longer than MacOS X) and I will immediately think of C and smalltalk. These two are provided in the objective-C document on Wikipedia, and they have obvious impact on objective-C language design.
To achieve the early design goal-to provide a hyperset with an object-oriented programming mechanism in C language, objective-C demonstrates success in all necessary details, c ++ seems to have abandoned these goals in some ways to pursue the results of a brilliant alternative.
Since objective-C is more affected than C ++, language design is easier. The reason why Apple (and previous next) chose objective-C as its main Object-oriented Application and system development language seems obvious, it is because it provides concise and elegant design-at least in comparison with the c ++ design. In addition, the language selected on Apple's platform (such as MacOS X and iOS) may make it more outstanding, but C ++ is a clear winner in terms of popularity and influence. Even now, C ++ has been widely used after so many years of publication, and has not experienced great ups and downs like objective-C. For example, it is the core implementation language of all the most popular Web browsers on the non-Apple platform; chromium, Firefox, ie, and opera are all created using C ++. Even Apple's Safari browser is mainly written in C ++, although other browsers on MacOS X are developed in objective-C language.
The fact may be that C ++ entered the market about three years earlier than objective-C, which led to the great success of C ++, objective-C, however, lost the lead in popularity. In the end, although we can find programming books related to objective-C on the shelves of every major bookstore, these books focus on the development of MacOS X and Apple IOS platforms. The idea of using objective-C as a universal, platform-independent language is obviously not very popular, and books are naturally not favored by Book Sellers.
C ++ seems to have received much more criticism than it has. At the same time, people who talk about objective-C (mostly) are developers of Apple's software platform. Developers who focus on the Apple software platform are often held unreliable by other programmers who are biased against the Apple software platform. As a result, their high praise for objective-C has little impact on non-Apple platform developers.
The possible two best criticisms of C ++ language are all attributed to stroustrup itself. The first one is that he claims that "It is easy to use C language to lift a stone and smash his own feet, and it is more difficult to use C ++ to lift a stone and smash your feet, however, once you do, the whole leg will be reimbursed." (C makes it easy to shoot yourself in the foot, and C ++ makes it harder-but when you shoot yourself in the foot with C ++, you typically blow off your whole leg .) the second is his interview with IEEE Computer magazine, which was shelved for being determined not to be published. In the interview, he "admitted" C ++ was a joke from the very beginning, and he praised its defects with humor. Stroustrup has denied the article, called it a scam, and said he thought it would be more interesting if it was written by himself.


* Purpleendurer Note: For details about this interview, refer to: Is Object-Oriented a scam ?!
Http://sd.csdn.net/a/20100929/280061.html

 

When reading this fictitious interview article, people may not be able to give up their accountability for "C ++ is a joke from the very beginning. If so, the joke seems to be at the cost of objective-C damage, it lingers in obscurity until the recent age-the age of computer technology-finally comes to the right position of the Apple software development community. The fact is that without objective-C and cocoa, Apple will almost certainly encounter real troubles when seeking to support developers on its platform; developers who are constrained by Apple's legal and marketing departments can overcome some of their doubts when using these tools for development.

Some people may think that C ++ has only a few days. Alternatives that seem to be more suitable for the same job have emerged, while objective-C, as a clear direct competitor, is in some ways the most insignificant. Objective caml is often cited as a good example of a high-performance language. It not only often leads C ++ significantly in benchmarking, but also provides more concise and well-organized source code, it also provides developers with a cleaner and more interesting development model, which is not even originated from the same programming language family. Language D is intended to compete in the same field, but its proprietary roots may impede its widespread adoption. Although Google's go language has made a controversial trade-off, there is no doubt that it is designed to provide a huge advantage for some types of software development, including concurrency.

 

* Purpleendurer Note: For details about objective caml, refer to ocaml-Wikipedia, a free encyclopedia.
Http://zh.wikipedia.org/zh/OCaml

 

However, from the lessons learned, I tend to think that C ++ has a long and stable term of office in the future. It even sneaked into the operating system kernel development field for many years, which is a terrible idea for those who care about the reliability of the operating system. Without a doubt, C ++ provides some advantages over C for some programming types with high performance requirements, and its library support is extremely broad-it is a legend. Nevertheless, at least some of its power to hold developers seems to be based on ignorance of alternatives, which is a feature that will not easily be pushed aside by potential competitors. (End)
(Http://blogs.techrepublic.com.com/programming-and-development? P = 3379 & tag = leftcol; post-3379)

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.