Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There are language wars saying one programming language is better than other.. Consider Lisp and Java; and we can argue that the meta programming capabilities of Lisp is better than that of Java. But that does not mean Java cannot have meta programming capabilities without being another dialect of Lisp.
Basically all programming languages are Turing Complete. So doesn't that mean we could solve any solvable problem in all those programming languages?

share|improve this question
What else would we argue about? –  Chad Thompson Nov 30 '12 at 4:18
Compared other wars, language wars are definitely good ones :) –  Jayan Nov 30 '12 at 4:20
If all cars have wheels, why would anyone prefer one car over another? –  Charles Salvia Nov 30 '12 at 4:30
Because 'Turing complete' is not the only way in which people measure and judge a language. –  GrandmasterB Nov 30 '12 at 4:40
Not all the languages are Turing-complete. Some of the best languages are actually not Turing-complete at all. –  SK-logic Nov 30 '12 at 9:59
show 6 more comments

closed as not constructive by World Engineer, Michael Kohne, GrandmasterB, Yannis Rizos Nov 30 '12 at 6:10

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers

up vote 5 down vote accepted

Programming language "wars" are not about what can be done with the language regardless of the effort (since most mainstream programming languages have equal power in this sense), but about what the language is most suitable for; what is easier or more elegant to do with a given language.

Consider assembly language and C: everything that can be done with C can be done with assembly. Yet between the two, in most cases we would pick C because it is easier to understand, less error prone, and more portable between platforms.

Similarly, languages of equal power might favor different programming paradigms. Or one might be higher level than the other.

share|improve this answer
"Or one might be higher level than the other.": This statement is also the source of holy wars sometimes because some maintain that the levels of abstraction of different languages cannot be compared. Typically this opinion is supported by fans of languages that have a low level of abstraction. ;-) –  Giorgio Nov 30 '12 at 8:33
add comment

Well, have you ever tried writing a non-trivial program using a Turing machine?

If a language is "Turing complete", it means (in effect) that it is theoretically possible to write any program that could be written in any other language. But is does not mean that it would be practical to do it ... yet alone easy to do it.

Programming languages differ in the ways that they allow you to express programs. These different ways are better (or worse) for different situation, and different types of computing problem.

Language wars (at their best) are actually a debate in which different languages are compared to figure out what is applicable, what can be improved and what can be learned from other peoples' experience in programming in different ways. This is a useful exercise.

share|improve this answer
add comment

Maybe if all we were building was infinite tape machines that could go left and right, we would only need one language and chuck the rest but that's not what most programmers do.

Different languages have certain advantages and trade-offs there will always be need for various ones depending on the business domain they are applied to. But further than that, even when there's a number of applicable languages to a specific problem, you've got to remember that human beings (and yes, technically programmers are human beings) have preferences and tastes. Put another way, your question could be, "if Ford Taurus gets where I need to go, why are there other brands? or better yet, why does Ford make other models?"

And having many languages is a good thing. Just like with cars, it introduces healthy competition and that leads to innovation. From competition we get ideas which then get spread through the industry. If you only had one language, and no one could say, "why do we keep doing _ in X when language Y makes this so much easier", no one would ever think of improving X. Or deciding that Y is so much better that they should just ditch X and move on.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.