Castellano o Inglés?
Bue día a todos!
Tengo una duda en la cuál me gustaría me pudieran orientar un poco. El punto es que en las Normas de Estilos que tiene el lenguaje Java muy claramente especifica la nomenclatura de cada elemento del lenguaje sin embargo hay una en específico que me llamó la atención y es la que dice "All names should be written in English." (Todos los nombres deben ser escritos en Inglés) y explica lo siguiente: English is the preferred language for international development, (El idioma Inglés es el idioma preferido para el desarrollo internacional.), señalado en la siguiente página, el punto número 10 en la sección 3 llamada "Naming Conventions".
La cuestión es, siendo un desarrollador en el idioma Castellano/Español ¿se deben seguir estos estándares? A mi me suena controversial como es que teniendo el idioma Español tengamos que codificar en inglés, no por que me desagrade el inglés de hecho se que los proyectos se abren mucho las puerta al ser desarrollados en este idioma (código) pero al menos si el código está en inglés como lo señalan los estándares la API de dicho desarrollo debería estar en el idioma natal del desarrollador no? o de que forma se manejan estos conceptos? Aquí en el mismo foro lo han mencionado mucho, que deben ser en inglés y que esto y el otro pero jamás han dado una explicación del por que? En mi caso no hay problema al codificar en inglés ponerle a mis clases Employee en vez de Empleado o a mis métodos getName() en vez de obtenerNombre(), ese no es el problema, más bien sería una cuestión de cultura o eso creo yo.
Puede sonar muy moralista o hasta idealista, pero pues me gustaría ver mas apoyo a la comunidad latina o al menos al idioma Castellano que es el que nos pertenece e identifica. Por que así de que forma nuestras comunidades en Castellano van a tomar fuerza?
Bueno pues ahí les dejo para que comenten sus opiniones y de igual forma expliquen el por que de esta Norma de Estilo :D y yaa los dejo con mis ideas locas, pero creo que debemos cuestionar lo que nos hes puesto como regla para así entender lo que hacemos.. jiji buen día!!
- Inicie sesión o regístrese para enviar comentarios
Idiomas
Las comunidades en castellano no van a perder fuerza por usar código en inglés, ni van a tomar fuerza por crear código en español.
El código de mis proyectos de software libre está en inglés, igual que los comentarios y la página. Podría ponerme mis moños y portarme muy nacionalista/regionalista/idiomalista/loquesea y hacer todo en español para que únicamente la gente que habla español lo pueda usar. Pero creo que le cierro la puerta a muchísima gente.
Cuando programas, tienes que saber al menos algunos términos en inglés. Es algo que ya es parte de esta disciplina del desarrollo de software. Así como los chefs usan varios términos en francés (incluyendo el propio título) y los músicos utilizan varios términos en italiano. La nuestra es una carrera con muchos pochismos (en su mayoría innecesarios); cuando haces software (término que no tiene traducción a ningún idioma), tienes que ponerte a pensar quiénes van a ver el código que estás escribiendo…
Imagínate el caso inverso; vas a Brasil, o a Francia, para participar en un proyecto, y no hablas el idioma del lugar. Los demás hablan inglés así que es lo que usarán todos para comunicarse contigo. Pero al momento de ver el código del proyecto en el que vas a trabajar, todo está en portugués, o francés. Cuánto tiempo vas a invertir en entender qué hace la clase
, o el método
? Peor aun: si el código está en francés y tú vas a contribuir clases y métodos al mismo, las vas a tener que poner en francés, no puedes llegar a meter clases en inglés ni en español. Cómo le vas a hacer? Vas a perder mucho tiempo preguntando cómo ponerle a cada clase, método, variable, etc (al menos al principio) porque en cuanto vean tus intentos de francés procesado por el traductor de Google te van a pedir que mejor no lo uses y les preguntes a ellos. Tu productividad baja por la simple barrera del idioma, aunque tengas un inglés perfecto. Y si al menos los nombres de las clases y métodos hubieran estado en inglés, ya si te encuentras una que otra variable o nombre de parámetro con nombre francés, puedes inferir su finalidad y función por el contexto en que se encuentra.
En algunos otros lenguajes de programación puede que la nomenclatura de las clases en otro idioma te ayude incluso a distinguir las clases propias de las clases que ya vienen incluidas con el lenguaje. En Java lo resuelves viendo el paquete, que es como el apellido de la clase, de modo que aunque todas las clases tengan nombres en inglés, las puedes distinguir porque todas las que empiezan con
son del JDK.
En StackOverflow por ejemplo he visto preguntas que ha puesto gente en inglés pero ponen fragmentos de código en otro idioma (p.ej. francés) y lo que reciben es una bola de comentarios pidiendo que pongan el código en inglés porque nadie le entiende. Y no son puros angloparlantes los que lo piden; también gente que tiene otro idioma natal pero que no habla francés.
Y eso creo que va para cualquier lenguaje de programación. Como te decía; si estudias música tienes que aprenderte un montón de términos como rallentando, crescendo, adagio, arpegio, allegro, andantino, etc etc etc; cuando estudias programación vas a ver un montón de términos que sí tienen traducción, pero muchos otros que no, como simplemente software. Y si para programar en Java estás usando un montón de clases con nombres en inglés, por qué no hacer tu código en el mismo idioma?
No encuentro ahorita la liga pero hace tiempo había leído una discusión al respecto (no eres la primera persona ni serás la última en sacar este tema a discusión), en donde mencionaban un estudio de que incluso si tu idioma natal es el español, te tardas más en leer código que está mezclado en inglés y español que si lees puro código en inglés, debido a que mentalmente haces un pequeño cambio de contexto para estar entendiendo cada término que lees, de manera involuntaria. Así que supuestamente eres más productivo haciendo tu código en inglés, porque es inevitable que quede todo enredado con código en inglés por todas las llamadas que hagas a clases del JDK o de cualquier otro framework como Hibernate, Spring, JSF, etc que va a estar todo en inglés también.
Me parece muy muy
Me parece muy muy interesante lo que comentas, de hecho creo que es el punto principal por lo que esta norma de estilo se hizo, y sobre todo me parece genial que dieras tu explicación del por que? puesto que muchos lo hacemos solo por que ahí dice, y así ya tiene sentido el hacerlo de esa forma.
Quizá si me vi medio nacionalista jaja :p me apasioné un poco U.U, pero creo que debía al menos descubrir que idea tienen los demás acerca del tema!! De nuevo muy bien la abundancia de explicación :D Thanks jajajaja :p ya pues en español Gracias!
Coincido con Ezamudio
El desarrollar código de aplicaciones usando codificación en idioma inglés se hace más que nada por prácticidad y estandarización si se puede llamar así, porque a pesar de que muchos programadores tienen estilos diferentes, ser puede apreciar mejor ese estilo cuando todo lleva un desarrollo estándar (en idioma inglés).
Yo pienso que la API puede estar en el idioma que tu desees pero el desarrollo de la aplicación por estandarización no estaría mal que estuviera en inglés.
Muy buen tema... :-)
además de coincidir con zamudio ilustras la necesidad del inglés
En inglés se diría: "practicality" , mientras que en español quien sabe si "prácticidad" sea una acepción válida de práctico. Además la palabra estándar viene del término inglés "standard". Así es que mejor a aprender Inglés ya que es tan fuerte este lenguaje que es casi imposible hacerle contraposición.
Excelente pregunta, es mucho más importante de lo que parece.
A ver si me puedo explicar concisamente.
Convenciones de codificación:
Son los humanos los que tienen que leer el código! no la computadora, para ella podríamos seguir programando en ensamblador ( o en tiempos modernos en bytecode ). Pero ya sea que un pedazo de software lo hagan varias personas a la vez, o después de terminado sea otro equipo el que tenga que modificarlo o incluso para proyectos personales uno mismo ( si alguna vez haz tenido que re leer tu código luego de 6 meses de no verlo entenderás a que me refiero ) el seguir estas normas te ayuda a entenderlo fácilmente. Entre estas normas de codificación está el uso del inglés. Si una aplicación está codificada ( y comentada ) en inglés, le estás dando la oportunidad de que cualquierCuando programas, seguir convenciones de codificación es mucho muy importante, la razón es simple: el mantenimiento!, no hay más.
otra personadesarrollador del mundo pueda modificarla.Sobre tus preguntas:
[...]La cuestión es, siendo un desarrollador en el idioma Castellano/Español ¿se deben seguir estos estándares?[...]Si, la unica excusa que yo encuentro, es no saber inglés en lo absoluto.
Sucede muy seguido que quién es principiante como programador, también lo sea en inglés, en ese caso esta bien usar nombres en español.
Pero apenas se adquiera un poco del idioma, lo mejor será usarlo, así se forma un buen hábito.
[...]Pero al menos si el código está en inglés como lo señalan los estándares la API de dicho desarrollo debería estar en el idioma natal del desarrollador no?[...]
De hecho el API ( o la API ) es precisamente la parte que otros desarrolladores van a ver, es más importante que esté en inglés.
[...]Aquí en el mismo foro lo han mencionado mucho, que deben ser en inglés y que esto y el otro pero jamás han dado una explicación del por que?[...]
Por incómodo que parezca ( y a mi me pareció incómodo por mucho tiempo ) el inglés es el idioma universal hoy en día, justo como en su tiempo fue el latín, y para la programación con mucha más claridad ( usar el esperanto ya no es una posibilidad )
Conclusión
Empezar a usar inglés en nuestros proyectos personales, permite crear un buen hábito, además nunca se sabe cuando un proyecto puede crecer y ser reutilizado por otros ( en especial cuando se trata de open source ). Usar inglés permite que cualquier otro desarrollador que no hable español pueda entendernos.
Por cierto, recientemente participe en la migración de una aplicación que estaba escrita en español, y fue el peor de los martirios para los que no sabían nada de español ( y para mí que estuve haciendo las veces de traductor ) Nadie pensó que este módulo que inicialmente iba a ser usando solamente en la ciudad de méxico, resultará tan bueno y quisieran usarlo en otros lados. Los desarrolladores eran en su mayoría hindús , que por cierto aprendieron inglés a la fuerza, pero hoy constituyen la principal fuerza en IT, y no solo para puestos de bajo nivel, el Vicepresidente de Google, Vic Gundotra es Hindú.
Así que los que ya saben inglés, a usarlo y los que no saben siempre hay tiempo ( si tienes 20 años y lo aprendes en 10 yo digo que estaría genial )
Les dejo unos links:
otra opción
Quizá otra opción sea desarrollar el código en inglés que es hasta lo que ahorita se ha planteado, y tener la documentación y la API en ambos idiomas para que tanto a nivel mundial se sepa que hace y así entre los de tu mismo idioma también lo aprovechen, de esta forma matas 2 pájaros de un tiro.
Si es software libre muy probablemente gente experimentada y otra no tan experimentada lo vayan a utilizar o ver, y así están las 2 opciones, de igual forma si no fuese software libre como lo han comentado el hecho de que entren colaboradores o que por X razón otras personas lo lleguen a obtener debe ser legible y entendible. En cuanto a la interfaz de usuario me imagino que puede ser en el idioma deseado? y en este caso creo que existe una forma de poder cambiar las interfaces de usuario al idioma elegido solo que no recuerdo que tecnología o herramienta es la que permite eso, de lo que me acuerdo es que se guardan las palabras que lleva la interfaz con los idiomas que deseemos en un archivo y este después es leído para reescribir las palabras al idioma seleccionado, alguien sabe de este tema que pueda abundar mas? o quizá ya estoy inventando jajaja :p
Muy buenos sus comentarios, queda muy claro todo!
Yo he visto en algunos
Yo he visto en algunos programas de software libre como hay colaboradores que se encargan nada mas de documentar y traducir el programa a otros idiomas. Sin duda un tema bastante interesante =).
tambien tenia esa duda
En mis inicios como programador, tambien me hacia esa pregunta, incluso llegue a criticar a hispano parlantes que escribian en ingles. Sin embargo una cosa es muy cierta, y no es por que lo diga sun en su naming convention o los de stackoverflow, el hecho es que el castellano es demasiado verboso, por eso comenze a programar en ingles.
Ahora, teniendo ya mucho tiempo desarrollando en ingles, me he topado con el problema de que como no soy una persona con el ingles como idioa nativo, tengo un vocabulario muy limitado y andar buscando definiciones para llamar variables o metodos para que identifiquen lo que hacen, muchas veces se me hace una tarea tediosa y tardada, perdiendo mucho tiempo, por eso decidi programar en español.
Y es lo que hago, sin importarme si el codigo lo van a leer gringos, u personas de otros paises que hablan ingles, yo programo en español con comentarios en español. Debo admitir que de vez en cuando se me escapan palabras y las escribo en ingles, pero generalmente ya estoy poniendo todo en español. Y no se trata de ser nacionalista, es simplemente que me siendo mas comodo.
saludos