Stop. This question generates much much more heat than light. Please read the following before posting some variant of
this question.
In 99% of the cases, programming language selection is dominated by business considerations, not
by technical considerations. Things that really end up mattering are things like availability of a programming
environment for the development machine, availability of runtime environment(s) for the deployment machine(s),
licensing/legal issues of the runtime and/or development environments, availability of trained developers, availability
of consulting services, and corporate culture/politics. These business considerations generally play a much greater role
than compile time performance, runtime performance, static vs. dynamic typing, static vs. dynamic binding, etc.
Those who ignore the (dominant!) business criteria when evaluating programming language tradeoffs expose themselves to
criticism for having poor judgment. Be technical, but don’t be a techie weenie. Business issues really do dominate
technical issues, and those who don’t realize that is destined to make decisions that have terrible
business consequences — they are dangerous to their employer.
The most widely circulated comparisons tend to be those written by
proponents of some language, Z, to prove that Z is better that other
languages. Given its wide use, C++ is often top of the list of languages
that the proponents of Z wants to prove inferior. Often, such papers
are “published” or distributed by a company that sells Z as part of a
marketing campaign. Surprisingly, many seem to take an unreviewed paper
written by people working for a company selling Z “proving” that Z is
best seriously. One problem is that there are always grains of truth in
such comparisons. After all, no language is better than every other in
all possible ways. C++ certainly isn’t perfect, but selective truth can
be most seductive and occasionally completely misleading. When looking
at a language comparison consider who wrote it, consider carefully if
the descriptions are factual and fair, and also if the comparison
criteria are themselves fair for all languages considered. This is not
easy.
Stroustrup refuses to compare C++ to other languages for these reasons given in The Design and Evolution of C++:
“Several reviewers asked me to compare C++ to other languages. This I have decided against doing. Thereby, I have reaffirmed a long-standing and strongly held view: Language comparisons are rarely meaningful and even less often fair. A good comparison of major programming languages requires more effort than most people are willing to spend, experience in a wide range of application areas, a rigid maintenance of a detached and impartial point of view, and a sense of fairness. I do not have the time, and as the designer of C++, my impartiality would never be fully credible.I also worry about a phenomenon I have repeatedly observed in honest attempts at language comparisons. The authors try hard to be impartial, but are hopelessly biased by focusing on a single application, a single style of programming, or a single culture among programmers. Worse, when one language is significantly better known than others, a subtle shift in perspective occurs: Flaws in the well-known language are deemed minor and simple workarounds are presented, whereas similar flaws in other languages are deemed fundamental. Often, the workarounds commonly used in the less-well-known languages are simply unknown to the people doing the comparison or deemed unsatisfactory because they would be unworkable in the more familiar language.Similarly, information about the well-known language tends to be completely up-to-date, whereas for the less-known language, the authors rely on several-year-old information. For languages that are worth comparing, a comparison of language X as defined three years ago vs. language Y as it appears in the latest experimental implementation is neither fair nor informative. Thus, I restrict my comments about languages other than C++ to generalities and to very specific comments.”
That said, C++ is considered to be the best choice in programming language for a wide variety of people and applications.
No comments:
Post a Comment