Concatenación
Unir dos secuencias — normalmente cadenas — una tras otra en una sola.
La operación existe en todos los lenguajes, pero casi cada uno eligió un símbolo distinto: + en Java, JavaScript y Python, . en PHP y Perl, & en Visual Basic, .. en Lua, <> en Elixir. Que una misma operación acumule cinco símbolos es un ejemplo nítido de lo poco que el diseño de lenguajes suele construir sobre lo anterior.
La trampa es el rendimiento. Las cadenas son inmutables en la mayoría de los lenguajes modernos, así que s = s + x dentro de un bucle asigna una cadena nueva en cada vuelta y copia todo lo que ya había — tiempo cuadrático. La solución es un búfer que crece de forma amortizada: StringBuilder en Java y C#, strings.Builder en Go, o simplemente una lista a la que se le hace join al final en Python. Al mezclar cadenas y números la cosa se enreda aún más: 1 + "1" da "11" en JavaScript y un error de tipos en Python, que es toda la diferencia entre tipado débil y fuerte metida en una sola expresión.