¿Cómo es la programación en japonés? [cerrado]

28

¿El código está escrito en japonés? ¿Los nombres de los archivos están en inglés? ¿Qué tal como un preprocesador C? ¿Todavía está en inglés? ¿Los comentarios están en japonés?

Los ejemplos también serían buenos.

Zenón
fuente
77
Al igual que la programación en español / portugués / lo que sea, el código siempre debe escribirse en inglés.
1
@ M28 Sin embargo, es un poco diferente cuando tienes que usar un alfabeto extranjero. Intenta escribir una aplicación sencilla de hello world usando el alfabeto griego para todas las palabras clave.
biziclop
3
@ M28: Solo por curiosidad: ¿hay algún lenguaje de programación diseñado para caracteres fuera del alfabeto latino? Y si los compiladores permiten codificaciones que no sean ASCII, supongo que incluso Java podría escribirse con todos los símbolos en japonés, excepto las palabras clave de idioma ...
FrustratedWithFormsDesigner
2
@Frustrado: [Whitespace] ( en.wikipedia.org/wiki/Whitespace_(programming_language) viene a la mente.
Josh K
3
@ Frustrado: Wikipedia lo sabe todo.

Respuestas:

21

Como alguien que ha programado en Japón. Puedo decir honestamente que he visto código en todas sus formas. La mayoría del código más limpio que he visto que estaba destinado a ser apoyado solo por programadores japoneses tenía todos los comentarios y documentación en japonés.

En cuanto a algunos de los horrendos códigos que he visto, recuerdo haber visto Java y (creo) un código VB que realmente usaba kanji o katakana para nombres de variables.

Aparte de eso, el código tiende a verse así

/**
 * これはクラスのコメント
 */
public class FooClass implements Fooable {

    /**
     * オブジェクトのインスタンスを作成する
     */
    public FooClass() {

    }

    ...
}

En cuanto a un preprocesador C, no tengo idea.

Elijah
fuente
Se podría usar un preprocesador para traducir palabras clave de idiomas a otros idiomas.
FrustratedWithFormsDesigner
44
Entonces, ¿es "Foo" una palabra real en inglés como "BankClass" o se romaniza?
Zeno
2
Como, ¿llamarían FooClass BankClasso GinkouKurasu?
Panzercrisis
1
Lo sé, pero en el mundo real, ¿estarían más inclinados a usar Banko Ginkou?
Panzercrisis
3
@Panzercrisis, eso depende de los caprichos y políticas del desarrollador o equipo. Como mencioné en mi respuesta, el código de mi esposa tiende a usar palabras en inglés en las declaraciones, pero ella podría usar las palabras de manera diferente a la que yo normalmente interpretaría. No creo que haya ningún patrón dominante. Pero apuesto a que un desarrollador que solo esté familiarizado con la palabra japonesa para un concepto usaría eso en lugar de recurrir a un diccionario.
JasonTrue
9

En la práctica, la mayoría de los lenguajes de programación en uso activo fuera de los EE. UU. Usan palabras clave que se parecen al inglés, pero es importante darse cuenta de que, en su mayor parte, aquellos de nosotros que escribimos código como hablantes nativos de inglés no estamos realmente escribiendo en "inglés". .

Hay unas pocas docenas de idiomas que realmente admiten palabras clave que no son del rango ASCII y, a menudo, están diseñadas para reducir la fricción cognitiva para los que no hablan inglés que intentan aprender programación.

Además, algunas implementaciones más antiguas de lenguajes que traducen el código en tokens (no es una compilación verdadera), pueden escupir el mismo código en un editor usando, digamos, el equivalente alemán; mi primera experiencia con el VBA de Microsoft Office fue así cuando era estudiante en Alemania.

Muchos lenguajes de programación similares al inglés, incluidos C #, Java y otros, ahora permiten nombres de variables y nombres de métodos en japonés, siempre que el código fuente esté codificado en UTF-8 u otra codificación adecuada. Sin embargo, no era común tener comentarios en japonés en C, a menos que estuviera utilizando un compilador que admitiera Shift-JIS o Unicode. Los literales de cadena en C casi siempre se escaparon utilizando el método de codificación literal a menos que tuviera un formato de archivo de recursos externo para trabajar, como en Visual Studio.

En la práctica, muchos programas escritos por equipos japoneses que no esperan requerir mantenimiento fuera de Japón se escriben con comentarios o javadoc / docstrings / etc. en japonés. Mi esposa generalmente escribe código con una especie de inglés similar al japonés, usando términos que no necesariamente coinciden con mi propio uso o comprensión del inglés ("regist" para "post" o "story", regist_date para la fecha de publicación) y ocasionalmente comentarios en japonés o en inglés.

La mayoría de los programas que tienen una comunidad internacional a su alrededor, que se originan en Japón, utilizan alguna forma de convención de nomenclatura en inglés. Ver, por ejemplo, el código fuente de Matz para ruby.

JasonTrue
fuente
¿Qué pasa si el proyecto no sabe si van a lanzar la fuente fuera de Japón? Como un videojuego desarrollado en Japón. A veces no saben si un editor inglés querrá lanzar el juego, digamos en los Estados Unidos.
Zeno
@Zeno: eso es internacionalizar las cadenas de caracteres que verá el usuario. Es importante hacerlo incluso si el código es por y para angloparlantes. Los comentarios, los nombres de variables y el lenguaje interno no están realmente correlacionados a menos que el código se publique como API.
G__
En realidad no, muchas veces los videojuegos publicados fuera de Japón incluirán más funciones, por lo que el código también se cambia directamente. Al igual que Final Fantasy VII, se incluyeron nuevos jefes (Ruby WEAPON) en la versión estadounidense, pero no en la versión japonesa.
Zeno
¿Estas nuevas características dependen del idioma? ¿Cuál es la diferencia en comparación con solo comercializar un conjunto de características diferente en Tokio que en Nagoya?
G__
Al igual que en los EE. UU., A veces las personas suponen que su aplicación nunca se usará fuera de su país, y eso a veces resulta en cambios de código necesarios para su lanzamiento a otros mercados. Pero los comentarios rara vez necesitan ser reescritos para los procesos de localización si se utilizan enfoques modernos de internacionalización, porque los codificadores generalmente no tocan el código.
JasonTrue