lunes, 25 de julio de 2011

Programar en español o en inglés

Llevo muchos años programando y aún no tengo claro que idioma debo utilizar para mis programas.

Vivo inmerso en un eterno debate sobre si es mejor utilizar el español o el inglés.

Esta entrada no pretende solucionar mi problema porque seguro que lo que dijera hoy no será lo mismo que diré mañana. En cualquier caso, como esta discusión es recurrente en mi oficina y nunca llegamos a un acuerdo, he googleado un poco y he pensado que sería una buena idea guardar ciertos enlaces que hablan sobre este asunto.

http://www.meneame.net/story/programar-espanol-ingles-opinion

http://jorgerubira.blogspot.com/2010/08/programar-en-espanol-o-en-ingles.html

http://geeks.ms/blogs/erodriguez/archive/2008/12/30/sino-sabes-ingl-233-s-no-eres-un-programador.aspx

http://cakephpilia.blogspot.com/2010/01/programar-en-ingles.html

Aunque he dicho que no tomaría partido, ahí va una lista de ventajas y desventajas que, según mi opinión, tiene cada uno de los idiomas:

Español

  • Lengua materna y paterna, vamos, que la domino…  o eso quiero pensar yo. Es decir, de forma natural, puedo encontrar sinónimos, antónimos, acepciones de una misma palabra, diferencias sutiles de apreciación, etc. Siempre encuentro la palabra “exacta”. En inglés sin embargo, te puedes meter en un jardín fácilmente, por ejemplo: ¿Es Customer o Client? ¿Es Mark o Brand? Te cuento que yo tengo una base de datos con más de 100 tablas con la palabra Mark (marca) y ahora resulta que es Brand… kagoen!!
  • Es español, nunca perderás el tiempo en wordreference o traduciendo en google, te dedicarás sólo y exclusivamente a trabajar y tirar código… que al final es lo que interesa, no?

Ingles

  • La primera y más importante… que es cool! Sí, sí, no me tomes por un friki, seguro que muchos de los que programamos en inglés es porque es más Cool, aunque otra cosa distinta es que tengamos la valentía de reconocerlo.
  • Si tienes que postear tu código en foros, más gente podrá entenderlo.
  • El 90% del código que lees en Internet está en inglés.
  • El 90% de la documentación que lees en Internet está en inglés.
  • Si tu empresa es una multinacional, tarde o temprano compartirás código y el inglés es el idioma de todos.
  • Si trabajas en algún proyecto colaborativo a través de Internet, de nuevo seguro que el inglés ayudará a romper barreras y a conocer a más gente para el proyecto.
  • Si contratan en tu empresa a algún foráneo (que ahora sabemos la globalización está muy de moda) ¿Cómo va a entender tú código sino está escrito en inglés?
  • Algunos servicios sólo están disponibles en inglés (por ejemplo, la pluralización de entidades de ADO.NET Entity Framework)
  • Muchos de los de mi quinta, nos moriremos sin saber inglés decentemente, así que, además de intentar ver algún capítulo de Dexter en V.O, ¿Por qué no aprender mientras trabajamos?

Lo dicho, yo nunca me quedo satisfecho con ninguna opción que tome, pero por ahora estamos programando en inglés… que es más cool! ;-)

Un saludo!

8 comentarios:

  1. Buenas,

    La verdad que yo muy pocas veces he realizado aplicaciones en español... y no me acuerdo de la experiencia, la verdad.

    En cualquier caso, creo que dependerá de la prioridad que tengas tú para con tu código. Me explico: si la idea es no pensar, y tener código legible, sencillo y que no nos cueste leer y sobre todo entender, claramente la decisión está en utilizar el español. Si nos ceñimos a libros en plan "Clean Code" y similar, pues eso... todos al español!

    La única razón que se me ocurre para utilizar el inglés son las que ya propones, y sobre todo tu tesis del "somos Cool y tu un piltrafilla" se me antoja bastante acertada.

    Otra cosa será que por costumbre (y nada más que por costumbre) funciones como GetNombre() o GetClientesConVentas() sólo "duelan" los primeros días. Al mes, seguro que ni te acuerdas del inglés...

    Y el tema de postear, etc... que pasa ¿que se nos va a olvidar el inglés de golpe? tampoco vas a publicar todo tu código, traduce la parte que toque y listo.
    Y si hay posibilidades de internacionalización... si lo único que crees que se va a cambiar es cómo se codifica... no vamos mal.

    Un saludo!

    ResponderEliminar
  2. Después de alguna experiencia en español (que casi se me estaba olvidando), ahora mismo apuesto por el español.

    Lógicamente, hay "ciertas" palabras que utilizaría como "Get", "Set"... y poco más.

    Digo poco más porque si empezamos a rebajar el listón y también incorporamos Insert (en vez de Insertar), Update (en vez de actualizar) y cosas así, al final tenemos un "spanglish" que no mola nada y es una güarreria.

    Y por supuesto, la base de datos también en Español!!

    Esa es mi opinión a día de hoy.

    Bye ;-)

    ResponderEliminar
  3. hola Sergio!
    no me habia puesto a pensar en eso..! agarro codigo y en el idioma que esta asi lo dejo. Si voy a comenzar alguna clase nueva o tablas, etc. prefiero el ingles y al final puede que me quede todo mezclado.. porque es un lio agarrar en un idioma e invertirle tiempo a la traduccion para que quede todo en uno solo. Yo asumo que los informaticos debemos dominar el ingles al menos el tecnico por lo que si alguien luego toma mi codigo y no le entiende es porque no ha leido o buscado lo suficiente. Obvio que las interfaces para el usuario siempre son en español , pero por dentro trato de usar el idioma universal. esa es mi tendencia al menos.
    Saludos!

    ResponderEliminar
  4. Preferiblemente en inglés, o al menos mi "pseudoinglés".

    Me resulta bastante más cómodo ya que las palabras suelen ser más cortas y veo todo algo más claro.

    Aunque reconozco que algún proyecto he tenido y tengo funciones del estilo GetOfertas o similares que como dice Sergio es un poco una "guarrería española".

    ResponderEliminar
  5. Al final está claro que este será un eterno debate!
    Yo, el mayor problema que le veo al inglés es el vocabulario específico del proyecto. Es decir, si por ejemplo estás haciendo un programa de gestión, ¿Cómo decir factura, albarán, prepedido, factura-proforma, etc.? Terminas buscando en wordreference.com y pones lo primero que pillas... y luego lo lee alguien nativo o alguien español que no domina este vocabulario y no sabe de que estás hablando...

    Y esto lo dice alguien para el que "Marca" de toda la vida ha sido "Mark" y ahora me entero que es "Brand" ¿Cambio el nombre a mis tablas, a mis clases, etc.?

    Por cierto, muchas gracias por vuestros comentarios!

    Un saludo.

    ResponderEliminar
  6. Definitivamente creo que depende del alcance de tu proyecto. Como bien menciona Sergio existen proyectos que tienen terminos muy particulares del dominio y el usar inglés solo te confundirá ya que el español es un lenguaje con un vocabulario mucho más amplio que el inglés. Por otra parte, si estas haciendo tu documentación como tus casos de uso, diagramas de secuencia, etc. es mucho más fácil hacerlo en el idioma del dominio que se programe.

    ResponderEliminar
  7. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  8. Ya sé que la entrada es antigua, pero al encontrar estas cosas en google, me dan ganas de cortarme las venas y no puedo evitar el comentario.

    Hay que programar siempre, siempre, y bueno, SIEMPRE en inglés. Uno de los pilares básicos (sino el fundamental) de la ingeniería del software es la "mantenibilidad". Para que un software sea mantenible, debes hacer de manera constante la asunción de que cualquier fragmento de código que escribes, mañana, o dentro de unas horas lo va a coger otra persona.

    Una de las herramientas fundamentales para mejorar la mantenibilidad es el uso de estándares. Desde notaciones en camelCase, líneas con un máximo de carácteres, etc...

    Para bien o para mal, programar en inglés es un estándar.

    Por favor, jamás programéis en spanglish. Hacedlo por vuestros compañeros de gremio...

    ResponderEliminar