Once upon a time, I heard from someone

the only difference between programming languages is the syntax

I wanted to deny it - to say that there are other fundamental aspects that truly set a language apart from others than just syntax.

But I couldn't... So, can you?

Whenever I search Google for something like "differences between programming languages", the results tend to be debates between two specific languages (I'd like something more general) - however, some of the aspects that people seemed to debate the most were:

  • Object-Oriented
  • Method/Operator overloading (I actually see this rather related to syntax)
  • Garbage-Collection (While it seems like a good difference, for some reason it doesn't seem that "fundamental")

What important aspects other than syntax can you think of?

closed as not constructive by gnat, maple_shaft Nov 1 '12 at 8:51

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.

  • Paradigms. Think of functional programming vs OO programming, for example. Haskell is an entirely different experience than C. – S.L. Barth Nov 1 '12 at 6:07

Computer scientists have long time been thinking about the ways to describe and compare programming languages. You might be interested in the field of formal semantics.

A description by John Longley from the University of Edinburgh:

A formal semantics for a programming language is a mathematically precise description of the intended meaning of each construct in the language. In contrast to a formal syntax for a language, which tells us which sequences of symbols are correctly formed programs, a formal semantics tells us what programs will actually do when we run them. The ideas of semantics are of importance for language designers, compiler writers, and programmers; they also provide a basis for mathematical proofs of the correctness of programs.

Several approaches to the definition of formal semantics exist. The most known are:

  1. Denotational semantics;
  2. Operational semantics;
  3. Axiomatic semantics.

I recommend you the book "The Formal Semantics of Programming Languages" by Glynn Winskel. It's a bit outdated, but still relevant and suitable for beginners.


There are many things that differentiate programming languages. However, any result can be obtained by using any general purpose programming language. The difference, however, is in the efficiency, both of runtime (more compiler-dependent) and development time.

For example, programming distributed applications in Erlang is much easier than in Assembly, or even C.

Mutability is another criterion that separates languages. It's essentially about making "pure functions", i.e functions that always return the same value for a certain input, just like mathematical functions. This belongs in (and in a way defines) the functional programming paradigm.

The list could go on forever. Anyone who says that the only difference between any X programming languages is the syntax, is saying that only because probably the only thing they know about the languages is their syntax.

Some programming languages only differ in syntax (for example, Javascript and Coffeescript); but more often, different programming languages suggest different ways to think about a problem. That's usually the major difference between them.


If you need only a counter argument to some kind of manager person, tell him that the most important difference between programming languages (besides syntactical differences) are the means of abstraction provided by each language.

That is surely not the whole truth, but easy enough to understand for a lot of people even when they are no formally educated programmers.

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