I understand an "idiom" to be a common operation or pattern that in a particular language is not simplified by core language syntax, such as integer increment:

i = i + 1;


In C++, this idiom is simplified by an operator:

++i;


However, when someone uses the term "idiomatic", I am not sure how to understand it. What makes a piece of code "idiomatic"?

An idiomatic way of writing some code is when you write it in a very specific way because of language-specific idioms that other languages don't have.

For example, in C++, exploiting the RAII idiom leads to ways of writing C++ code managing resources that are idiomatic.

Another example would be using list comprehensions in Python to generate lists. It's idiomatic because you would have used list comprehension in idiomatic Python but you could have done the same using a generator function in any other language or even in Python. 

Often, someone trying a new language without using the idioms specific to this language will not write idiomatic code.
