Cuando aprende un idioma extranjero por primera vez, piensa en su idioma nativo y traduce desde y hacia el vocabulario y la gramática del idioma extranjero. No es fluido, pero después de un rato puede mantener una conversación simple. Se vuelve fluido cuando puede pensar en el idioma extranjero y omite el paso de traducción.
Algo similar ocurre con los lenguajes de programación. Una vez que haya interiorizado las construcciones y las abstracciones lo suficientemente bien como para pensar en ellas en lugar de traducirlas a otro idioma, tendrá una buena comprensión del idioma. Cualquiera que haya aprendido un segundo lenguaje OO que tenga un modelo de objeto diferente al primero debería entender este fenómeno. Hay un período durante el cual estás pensando en los objetos en tu primer idioma y traduciéndolos al segundo idioma. El segundo idioma es una fuente de frustración e irritación durante este tiempo porque la falta de coincidencia en los modelos hace que trabaje más y probablemente resulte en diseños subóptimos. Tiene una buena comprensión del segundo idioma una vez que asimila el modelo de objeto y puede pensar en él directamente.