Sua definição não me parece correta. Um idioma é uma maneira de escrever algo que pode ou não ser possível em outros idiomas, mas que é comum nesse idioma. Geralmente, é mais curto que a alternativa, mas isso não é realmente um requisito.
Pode ser mais fácil explicá-lo falando sobre o que não é idiomático. No C ++, é bastante idiomático escrever:
Foo* p = SomeThingThatReturnsAFooPointer(arg, param, x, y);
if(p)
{
// whatever
}
É ainda mais idiomático escrever:
Foo* p;
if(p = SomeThingThatReturnsAFooPointer(arg, param, x, y))
{
// whatever
}
Esse código faz exatamente a mesma coisa - algumas pessoas que são novas no C ++ podem lê-lo como teste para ver se p é igual ao que a função retorna, mas não é isso que ele faz.
Compare com o que alguém pode escrever, de maneira não-linguística, que veio de outro idioma:
Foo* p = SomeThingThatReturnsAFooPointer(arg, param, x, y);
if(p !=NULL)
{
// whatever
}
Você também verá essas coisas como não-idiomáticas:
if (x>0)
return true;
else
return false;
Como a abordagem idiomática é
return (x>0);
As formas não-idiomáticas não estão erradas, mas geralmente levam mais tempo para digitar e sempre para ler, para quem conhece os idiomas. Se eu te chamo de "o garoto que chorou lobo" e você conhece a história, é mais rápido do que se eu explique sobre como os alarmes falsos fazem com que as pessoas o ignorem. O problema, é claro, é se você não conhece a história e não sabe o que os lobos têm a ver com o que estamos falando. Da mesma forma, pode ser um problema se você nunca viu return x<y;
antes e realmente não sabe o que faz.