Pregunta

Después de algunas reflexiones sobre las lenguas estúpidos Klingon, que vinieron de esta después empecé un proyecto manía tonta creación de un lenguaje de programación Klingon que compila a Lua código de bytes. Durante la fase inicial de diseño del lenguaje Busqué información sobre Klingon programadores , y enterado de esta regla de programación Klingon:

  

Un guerrero Klingon TRUE no comenta su código!

Así que decidí mi lengua sería no soporta comentar , como cualquier buen Klingon nunca usarlos.

Ahora muchas de las formas Klingon no parecen razonables para los programadores humanos, sin embargo, mientras escarceos con el diseño y la ejecución de mi lenguaje manía me di cuenta de que esta regla Klingon acerca de los comentarios es de hecho muy razonable, si no es genial.

La eliminación de la capacidad de observación de un lenguaje de programación significaba I HAVE para escribir código de leer y escribir , no hay excepciones.

Por lo que me hizo pensar si hay algunas lenguas por ahí que no son compatibles con los comentarios?

¿Hay alguna muy buenos argumentos para no eliminar los comentarios de un idioma?

Editar:? Cualquier buenos ejemplos de comentarios requerida


P. S.> Mi idioma manía anterior es parcialmente tonto de todos modos, por lo que no se centran demasiado en mi aplicación, tanto como el concepto de observaciones requeridas en general

¿Fue útil?

Solución

No estoy seguro estoy de acuerdo con los que "no" de la cuenta "Extracción de la capacidad de observación de un lenguaje de programación significa que tengo que escribir código de leer y escribir, sin excepciones", ya que no es como si se documenta todo el código. Mi conjetura es que la mayoría de la gente escribir código ilegible.

Más al punto, yo personalmente no creo en la realidad del programa o API explica por sí mismo en el mundo práctico.

Mi experiencia de analizar manualmente la documentación de las API enteras para mi tesis sugiere que con demasiada frecuencia se tendría que llevar a más información que la que podría transmitir en la firma solo. Si se eliminan los comentarios de interfaz de su idioma, ¿cuáles son las alternativas? No hay documentación no es una opción. documentación externa es menos probable para ser leído.

En cuanto a la documentación interna, puedo ver su punto de querer reducir la documentación para convencer a la gente a escribir mejor. Sin embargo, los comentarios sirven para muchos propósitos de colaboración y coordinación y están destinados a aumentar la conciencia de las cosas. Por la abolición de los detalles a lugares extenral, que están reduciendo las posibilidades de que vienen a la conciencia del lector futuro, a menos que su utillaje es grande.

Otros consejos

No comentar lo que está haciendo, pero ¿por qué lo está haciendo.

El QUÉ está a cargo de un código limpio y fácil de leer y simple con la elección adecuada de los nombres de variables para apoyarlo. Comentarios muestran una estructura de nivel superior para el código que no puede ser (o es difícil) muestran por el propio código.

Uf, no ser capaz de comentar rápidamente una línea (o líneas) durante la prueba de sonidos molestos para mí, especialmente cuando secuencias de comandos.

En los comentarios generales son una verruga que indica un mal diseño, comentarios, especialmente a largo senderismo, donde es claro el promotor no tenía ni idea de qué diablos se en donde haciendo y trató de compensarlo escribiendo un comentario.

Lugares en los comentarios son útiles:

  • Dejando un número de ticket junto a un arreglo para que los futuros programadores pueden entender los requerimientos del negocio
  • Explicando un corte particularmente difícil
  • Comentario sobre la lógica de negocio para una pieza de código
  • descripciones escuetas en documentos de la API por lo que un tercero puede utilizar su API

En todas las circunstancias, los programadores deben tratar de escribir código que es descriptivo y no escribir comentarios que describen código mal escrito. Dicho esto, creo que hay un montón de razones válidas que las lenguas deben y tienen que soportar los comentarios.

Su código tiene dos públicos distintos:

  • El compilador
  • Los seres humanos como nosotros

Si decide eliminar los comentarios en total, la suposición de que usted está tomando es que se le cocina a sólo para el compilador, y para nada más.

Por supuesto que, siendo Klingon, puede no necesitar comentarios, ya que no es humano. Tal vez usted podría demostrar claramente a nosotros por su capacidad de hablar en lugar de IL?

No necesidad una sola aserción en el código porque, en modo de lanzamiento, se han ido todos. Pero cuando C ++ no tenía aseveraciones incorporadas, alguien escribió la macro assert para reemplazarlo.

Por supuesto que no necesidad los comentarios, ya sea, por más o menos la misma razón. Pero si se quiere diseñar un lenguaje sin comentarios, la gente va a empezar a hacer cosas como:

HelperFunctionDoesNothing("This is a comment! Blah Blah Blah...");

Tengo curiosidad. ¿Cómo evitar que alguien de declarar una cadena estática que contiene un comentario y luego haciendo caso omiso de la variable para el resto de la func / método / procedimiento / batalla / lo que sea?

var useless_comment = "Can we destroy our enemies?"
if (phasers on full) return Qapla'

Idiomas necesitan comentarios. Al menos el 95% de los comentarios se puede reemplazar por código más claro, pero todavía hay supuestos que necesita para documentar y es absolutamente necesario para documentar si hay algún problema externo que está trabajando alrededor.

Nunca escribo un comentario sin tener en cuenta primero si puedo cambiar el código para eliminar la necesidad de ella, pero a veces no se puede.

Mientras que todo el código fuente está protegido por copyright por defecto. A menudo es bueno:

  1. recordar a la persona que lee el código fuente que está sujeto a derechos de autor

  2. decirle a la gente lo que son los términos de la licencia para ese archivo de código fuente

  3. diles si son o no están buscando un secreto comercial protegido

Por desgracia, sin comentarios, es difícil hacer esto.

¿Soy el único que comenta un par de líneas código para una serie de propósitos?

Si bien es cierto que los seres humanos necesitan para poder comentar código, no es absolutamente necesario que el lenguaje apoyan directamente al comentar: para la mayoría de idiomas, sería trivial para escribir un script que borra una comentarios de línea (por ejemplo, todos las líneas que comienzan con '#' o algún otro carácter) a continuación, se ejecuta el compilador.

En realidad, sin embargo, estoy sorprendido y decepcionado al saber que incluso mis lenguajes de programación esotéricos favoritos apoyan comentarios: Brainf ** k y espacios en blanco . Estos lenguajes están destinados a ser difícil de leer, por lo que parece que no deben apoyar a comentar. (A diferencia de mi otro idioma favorito esotérica: LOLCODE , que está destinado a ser auto-documentado, en lolcats-discurso )

Me disentir de las otras que responden a este respecto: Yo digo, sea fiel a su visión de un lenguaje de programación Klingon, y no apoyan los comentarios

!

Un punto en contra de los comentarios es que tienden a caer a menudo fuera de la fecha con el código. Cualquier vez que se añade una redundancia, está arriesgando este tipo de inconsistencia.

De hecho, hay una interesante investigación que he visto cuando un grupo utiliza la PNL para analizar bloqueo comentarios en algún sistema grande y luego compararlos con los resultados del análisis estático y fueron capaces de corregir algunos errores de esa manera.

No es la programación ilustrada como tantas notas como lo es el código? Sin duda, gran parte de lo que he visto de programación literaria tiene tanto la explicación como el código, si no más comentarios.

Se podría pensar que los desarrolladores que escriben en su idioma harán un esfuerzo extra para escribir código claro, pero la responsabilidad recae en realidad estará en para diseñar un lenguaje que es de modo expresiva que no necesita ser comentado. Diablos, ni siquiera Inglés es así (todavía un paréntesis!). Si su idioma no está diseñado de manera que puede muy bien ser tan útil como Brainfuck y disfrutar de la popularidad y el respeto de Brainfuck.

¿Debo agregar vínculos o enlaces son considerados commentlike?

Además, la gente encontrará maneras de añadir comentarios si necesitan por highjacking cuerdas y el mal uso de los nombres de variables (que no hacen nada que no sea sustituir a los comentarios). Ha leído Godel Escher Bach

Será una mala idea para eliminar la instalación comentando por completo. Sin duda, los desarrolladores deben aprender a escribir código con comentarios mínimas es decir, escribir código que documenta uno mismo pero hay una gran cantidad de casos en los que uno tiene que explicar por qué se está haciendo algo de la manera que es. Tenga en cuenta los siguientes casos:

  • un nuevo desarrollador podría iniciar el mantenimiento del código y el dev original ha dejado de entrada / salida del proyecto
  • un cambio en la especificación o requisito de mercado conduce a algo que es contrario a la intuición
  • copiar notificación correcta especialmente si de código abierto (algunas librerías de código abierto requieren que se hace esto)

También es mi experiencia que los nuevos programadores tienden a comentar más y a medida que desarrollan sus conocimientos de código tiende a ser auto documentar y concisa. En general, los comentarios deben ser de por qué y cómo o qué no.

NO -. No hay un solo lenguaje de programación por ahí que requiere comentarios

El lenguaje es para el equipo. Los comentarios son para los seres humanos. Se puede escribir un programa con 0% de comentarios. Se va a ejecutar, con o sin razón. No se puede escribir un programa con 100% de comentarios. Va bien no compila - sin main (), etc -. O, para los lenguajes de script, hacer exactamente nada

Y, además, programadores reales no comentan su código . Al igual que los klingon.

Aunque estoy de acuerdo con las respuestas de Uri, yo también he hecho un lenguaje sin comentarios. ( ichbins .) El lenguaje debía ser lo más simple posible sin dejar de ser capaz de expresar su propio compilador de forma limpia; ya que se puede hacer eso sin comentarios, consiguieron desecharon.

Estoy trabajando de vez en cuando en una revisión que es compatible con el comentario, pero un poco diferente: el estilo de la programación ilustrada con código anidado en texto en lugar de comentarios incluidos en el código. También podría obtener ejemplos / casos de prueba más adelante como una característica del lenguaje de primera clase.

Buena suerte con el Klingon piratería. : -)

No puedo expresar lo agradecida que estoy por Javadoc - que es muy fácil de configurar dentro de los comentarios. Así que por lo menos un sentido en el que los comentarios son útiles.

No, claro que una lengua no tiene que tener comentar. Pero un programa (útil) no tiene que tener comentarios ... No estoy de acuerdo con su idea de que leer y escribir código carece de comentarios. Algunos muy buen código es fácilmente comprensible con los comentarios, pero sólo con dificultad y sin.

Creo que se requiere que los comentarios en muchas situaciones.

Por ejemplo, pensar en los algorítmicos. Supongamos que hay una función escrita en C que resuelve el Viajar Vendedor Problema , hay amplia gama de técnicas que se pueden utilizar para hacer frente a este problema. Y los códigos son generalmente críptico en su naturaleza.

Sin describir explícitamente los parámetros y el algoritmo utilizado, mediante el uso de comentarios, es casi imposible volver a utilizar esta pieza de código.

¿Podemos vivir sin comentarios en código? Claro, pero eso no va a hacer la vida más fácil.

  

¿Son los comentarios necesarios para un lenguaje de programación?

No. En el gran esquema de las cosas que un compilador no podía preocuparse menos un comentario y sólo quiere código para desgastar a un denominador común más bajo.

  

¿Es útil para un lenguaje de programación para proporcionar una construcción de comentar?

Sí. Los comentarios son muy útiles para un programador y no sólo para fingir como si supieran lo que están haciendo, pero en la depuración y documentar de manera útil también.

Los comentarios son útiles porque tranquilizar a la persona que lee el código - probablemente el "futuro" -. Que usted ha pensado en su bienestar

Esto va a ser más difícil de lo que piensa hacer un lenguaje donde los comentarios son imposibles.

if (false) {
    print("This is a comment. Chew on that, Klingons!")
}

Creo que la pregunta de cómo puede llegar a ser autónomo, sería el idioma sin comentarios ser? Si por ejemplo, se compila a DLL que se acostumbra dentro de otro código, entonces ¿cómo se sabe nada más allá de la firma de la función en términos de lo que requiere, cambios y devoluciones? No me gustaría tener nombres de función de ser decenas de personajes para tratar de expresar lo que puede ser muy fácil de hacer con los comentarios anteriores de la función que se puede utilizar como documentación dentro de algo así como el Examinador de objetos dentro de Visual Studio por ejemplo.

Por supuesto !!

La razón principal es los desarrolladores novatos. No todo el mundo sabe cómo escribir código leer y escribir. En realidad hay millones por ahí no obtener una NullPointerException cuando lo ven.

Todos comenzamos en algún momento.

Pero si usted está apuntando a "expertos" los desarrolladores sólo, ¿por qué se molestan en el idioma en primer lugar. Usted debe ser utilizando mariposas !!! Eso es lo que utilizan desarrollador de bienes!

Comentarios es una necesidad, tratar de hacer más difícil si lo desea (como el uso de # // ## / secuencia para crear un comentario o algo por el estilo), pero no lo deje salir.

:)

Estoy de acuerdo con usted en que el código bien escrito no necesita comentarios como "Código sólo es buena documentación disponible al programador. Sin embargo, esta es una condición muy ideal, no todo el mundo escribe un buen código de todos los tiempos. Así que para hacer el código mal escrito bien en los comentarios se requieren futuras.

Una vez escribí una aplicación de VB (un juego de mesa tonto inspirado en el Monopoly) sin ningún comentarios. Pero lo hice sólo para mear fuera mi maestro, que nos había dicho que los comentarios eran para "Lo que hemos encontrado relevante , para que pudiéramos recordar más tarde".

código perfecto necesita cero comentarios. Debe ser simple y understandible por los principiantes completos.

comentarios

Cualquier código necesita, que tratan de explicar el motivo y funcionamiento de todas las funciones que escribo en 1 o 2 líneas.

El código que explica a sí misma sólo existe en un mundo perfecto, siempre hay algún artilugio raro o una razón para hacer algo rápido-n-sucia en lugar de la forma Propper. La mejor cosa a recordar es comentario ¿Por qué código hace lo que hace, buen código explica lo que hace el 99% del tiempo.

Escribir algo simple, como una pieza de código que puede resolver un Sudoku (3 razonablemente simple, mientras que los bucles) y tratar de leer que 3 meses después. Va a immidiatly encontrar algo que no está del todo claro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top