tutorial sirve que programar porque para golang español aprender aprende language-agnostic comments

language agnostic - sirve - ¿Los comentarios son necesarios para un lenguaje de programación?



porque aprender go (30)

¡¡Por supuesto!!

La razón principal es desarrolladores novatos. No todos saben cómo escribir código alfabetizado. En realidad, hay millones por ahí que no obtienen una NullPointerException cuando ven uno.

Todos comenzamos en algún momento.

Pero si se dirige solo a desarrolladores "expertos", ¿para qué preocuparse por el idioma en primer lugar? ¡Deberías estar usando mariposas ! ¡Eso es lo que el verdadero desarrollador usa!

Los comentarios son obligatorios, trate de hacerlo más difícil si lo desea (como usar # // ## / sequence para crear un comentario o algo así) pero no lo deje afuera.

:)

Después de algunas reflexiones estúpidas sobre las lenguas klingon, que surgieron de este post , comencé un proyecto de pasatiempo tonto creando un lenguaje de programación klingon que se compila con el código de bytes de Lua. Durante la fase inicial de diseño del lenguaje, busqué información sobre los programadores de Klingon y descubrí esta regla de programación de Klingon:

¡Un VERDADERO guerrero klingon no comenta su código!

Así que decidí que mi lenguaje no admitía comentarios , ya que ningún buen Klingon los usaría nunca.

Ahora, muchas de las formas Klingon no nos parecen razonables. Programadores humanos, sin embargo, mientras incursiono en el diseño y la implementación de mi lenguaje aficionado, me di cuenta de que esta regla Klingon sobre los comentarios es realmente muy razonable, si no grandiosa.

Eliminar la capacidad de comentar de un lenguaje de programación significaba que TENGO que escribir código alfabetizado , sin excepciones.

Entonces me pregunto si hay algún idioma que no respalde los comentarios.

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

Editar: ¿Se requieren buenos ejemplos de comentarios?

PD> Mi lenguaje de hobbies anterior es en parte tonto, así que no te concentres demasiado en mi implementación, tanto como el concepto de comentarios requeridos en general


¿No es tanto la programación alfabetizada como el código? Ciertamente, gran parte de lo que he visto de la programación alfabetizada tiene tanta explicación como el código, si no más comentarios.


¿Podemos vivir sin comentarios sobre el código? Claro, pero eso no hará que vivir sea más fácil.


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


Creo que la pregunta puede ser cuán autónomo sería el lenguaje sin comentarios? Si, por ejemplo, se compila en archivos DLL que se utilizan en otro código, ¿cómo se puede saber algo más allá de la firma de la función en términos de lo que requiere, cambia y devuelve? No me gustaría que los nombres de las funciones sean docenas de caracteres para tratar de expresar lo que se puede hacer fácilmente con los comentarios sobre la función que se pueden usar como documentación dentro de algo como el Examinador de objetos en Visual Studio, por ejemplo.


Creo que los comentarios son necesarios en muchas situaciones.

Por ejemplo, piense en los algorítmicos. Supongamos que hay una función escrita en C que resuelve el Problema del Vendedor que Viaja , hay una amplia gama de técnicas que se pueden usar para tratar este problema. Y los códigos son generalmente crípticos por su naturaleza.

Sin describir explícitamente los parámetros y el algoritmo utilizado, mediante el uso de comentarios, es casi imposible reutilizar este fragmento de código.


Cualquier código necesita comentarios, trato de explicar el motivo y el funcionamiento de cada función que escribo en 1 o 2 líneas.

El código que se explica a sí mismo solo existe en un mundo perfecto, siempre hay algún truco extraño o una razón para hacer algo rápido y sucio en lugar de hacerlo de manera apropiada. Lo mejor que debe recordar es comentar POR QUÉ el código hace lo que hace, un buen código explica QUÉ hace el 99% del tiempo.

Escribe algo simple, como un fragmento de código que pueda resolver un rompecabezas de Sudoku (3 loops bastante simples) e intenta leerlo 3 meses después. Inmediatamente encontrará algo que no está exactamente claro.


El código perfecto no necesita comentarios. Debería ser simple y comprensible para principiantes completos.


En general, los comentarios son una verruga que indica un diseño deficiente, especialmente comentarios largos y difíciles donde es claro que el desarrollador no tenía ni idea de qué diablos estaban haciendo y trató de compensarlo escribiendo un comentario.

Lugares donde los comentarios son útiles:

  • Dejar un número de ticket junto a una solución para que los futuros programadores puedan comprender los requisitos del negocio
  • Explicando un hack particularmente complicado
  • Comentarios sobre la lógica de negocios para una pieza de código
  • Descripciones detalladas en documentos API para que un tercero pueda usar su API

En todos los casos, los programadores deben esforzarse por escribir código que sea descriptivo y NO escribir comentarios que describan un código mal escrito. Dicho esto, creo que hay muchas razones válidas por las que los lenguajes deben y deben respaldar los comentarios.


Estoy de acuerdo con usted en que el código bien escrito no necesita ningún comentario ya que "el código es solo una buena documentación disponible para el programador." Sin embargo, esta es una condición ideal, no todos escriben un código correcto todo el tiempo. necesario.


Los idiomas necesitan comentarios. Al menos el 95% de los comentarios pueden ser reemplazados por un código más claro, pero aún hay suposiciones que necesita documentar y absolutamente necesita documentar si hay algún problema externo con el que esté trabajando.

Nunca escribo un comentario sin antes considerar si puedo cambiar el código para eliminar la necesidad, pero a veces no puedo.


NO, no hay un solo lenguaje de programación que requiera comentarios.

El lenguaje es para la computadora. Los comentarios son para los humanos. Puedes escribir un programa con 0% de comentarios. Se ejecutará, correcta o incorrectamente. No puedes escribir un programa con 100% de comentarios. No compilará, no main (), etc. o, para los lenguajes de scripting, no hará exactamente nada.

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


No necesita una sola afirmación en su código porque, en el modo de lanzamiento, ya no están. Pero cuando C ++ no tenía aserciones incorporadas, alguien escribió la macro assert para reemplazarla.

Por supuesto que no necesita comentarios, tampoco, por más o menos la misma razón. Pero si diseña un lenguaje sin comentarios, la gente comenzará a hacer cosas como:

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


No comentes QUÉ estás haciendo, sino POR QUÉ lo estás haciendo.

El WHAT se encarga de un código limpio, legible y simple con la elección adecuada de los nombres de las variables para respaldarlo. Los comentarios muestran una estructura de nivel superior al código que no puede mostrarse (o es difícil) por el código en sí.


No estoy seguro de estar de acuerdo con el "Tener" en la declaración "Eliminar la capacidad de comentar de un lenguaje de programación significaba que TENGO que escribir código alfabetizado, sin excepciones", ya que no es como si todo el código estuviera documentado. Creo que la mayoría de la gente escribiría un código ilegible.

Más concretamente, personalmente no creo en la realidad del programa autoexplicativo o API en el mundo práctico.

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

En cuanto a la documentación interna, puedo ver su punto de querer reducir la documentación para convencer a la gente de 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. Al desterrar estos detalles a ubicaciones externas, está reduciendo las posibilidades de que lleguen a conocimiento del lector en el futuro, a menos que sus herramientas sean geniales.


No puedo decirles lo agradecido que estoy por Javadoc, que es realmente sencillo de configurar en los comentarios. Así que ese es al menos un sentido en el que los comentarios son útiles.


No, por supuesto, un idioma no tiene que tener comentarios. Pero un programa (útil) tiene que tener comentarios ... No estoy de acuerdo con su idea de que el código alfabetizado carece de comentarios. Un código muy bueno es fácilmente comprensible con comentarios, pero solo con dificultad sin.


Puede pensar que los desarrolladores que escriben en su idioma harán un esfuerzo extra para escribir un código claro, pero la responsabilidad recaerá en usted para diseñar un lenguaje que sea tan expresivo que no necesite ser comentado. Demonios, ni siquiera el inglés es así (¡todavía paréntesis!). Si su idioma no está diseñado, puede ser tan útil como Brainfuck y disfrutar de la popularidad y el respeto de Brainfuck.

¿Debo agregar enlaces o enlaces considerados como comentarios?

Además, las personas encontrarán la manera de agregar comentarios si es necesario mediante el seccionamiento de cadenas y el uso indebido de nombres de variables (que no hacen más que representar los comentarios). ¿Has leído a Godel Escher Bach ?


Será una mala idea eliminar la instalación de comentarios por completo. Seguramente los desarrolladores deben aprender a escribir código con un mínimo de comentarios, es decir, a escribir código de auto documentación, pero hay muchos casos en los que uno tiene que explicar por qué algo se hace de la manera que es. Considere los siguientes casos:

  • un nuevo desarrollador puede comenzar a mantener el código y el desarrollador original se ha quedado / fuera del proyecto
  • un cambio en la especificación o el requerimiento del mercado lleva a algo que es contrario a la intuición
  • Copie el aviso correcto especialmente si es de código abierto (algunas librerías de código abierto requieren que haga esto)

También es mi experiencia que los nuevos programadores tienden a comentar más y, a medida que desarrollan su experiencia, su código tiende a auto documentarse y ser conciso. En general, los comentarios deben ser sobre POR QUÉ y no CÓMO o QUÉ.


Si bien es cierto que los humanos necesitan poder comentar el código, no es absolutamente necesario que el lenguaje soporte directamente los comentarios: para la mayoría de los idiomas, sería trivial escribir un script que borre los comentarios de una línea (por ejemplo, todas las líneas que comiencen con ''#'' o algún otro caracter) luego ejecuta el compilador.

En realidad, sin embargo, estoy sorprendido y decepcionado al saber que incluso mis lenguajes de programación esotéricos favoritos admiten comentarios: Brainf ** k y Whitespace . Estos idiomas están destinados a ser difíciles de leer, por lo que parece que no deberían admitir comentarios. (A diferencia de mi otro lenguaje esotérico favorito: LOLCode , que está destinado a ser autodocumentado, en lolcats-speech)

Disentiría de los otros que responden sobre este punto: digo, sé fiel a tu visión de un lenguaje de programación Klingon, ¡y no soporto los comentarios!


Si bien estoy de acuerdo con las respuestas de Uri, también hice un idioma sin comentarios. ( ichbins .) El lenguaje debía ser lo más simple posible al mismo tiempo que era capaz de expresar su propio compilador limpiamente; ya que puedes hacer eso sin comentarios, se deshicieron.

Estoy trabajando de vez en cuando en una revisión que admite comentario, pero un poco diferente: estilo de programación literaria con código anidado en texto en lugar de comentarios incrustados en el código. También podría obtener ejemplos / casos de prueba más tarde como una característica de idioma de primera clase.

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


Si bien todo el código fuente está protegido por derechos de autor de forma predeterminada. 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 cuáles son los términos de la licencia para ese archivo de código fuente

  3. dígales si están buscando un secreto comercial protegido o no

Lamentablemente, sin comentarios, es difícil hacer esto.


Soy curioso. ¿Cómo evitas que alguien declare una cadena estática que contiene un comentario y luego ignora la variable para el resto de la función / método / procedimiento / batalla / lo que sea?

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


Tu código tiene dos audiencias distintas:

  • El compilador
  • Los seres humanos como nosotros

Si opta por eliminar los comentarios por completo, la suposición que está asumiendo es que estará atendiendo solo al compilador, y a nada más.

Por supuesto que, siendo Klingon, puede que no necesites comentarios porque no eres humano. ¿Quizás podrías demostrarnos claramente tu habilidad hablando en IL?


Uf, no ser capaz de comentar rápidamente una línea (o líneas) durante las pruebas me resulta molesto, especialmente al escribir secuencias de comandos.


Un punto en contra de los comentarios es que tienden a no estar actualizados con el código. Cada vez que agrega una redundancia, se arriesga a este tipo de inconsistencia.

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


Una vez escribí una aplicación VB (un juego de tablero tonto inspirado en Monopoly) sin ningún comentario. Pero lo hice solo para enojar a mi maestra, que nos había dicho que los comentarios eran para "lo que encontráramos relevante , para que pudiéramos recordarlo más tarde".


¿Los comentarios son necesarios para un lenguaje de programación?

No. En el gran esquema de cosas, a un compilador no le importa un solo comentario y solo quiere que el código se reduzca a un denominador común más bajo.

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

Sí. Los comentarios son muy útiles para un programador y no solo para simular como saben lo que están haciendo, sino también para depurar y documentar de manera útil.


Los comentarios son útiles porque le aseguran a la persona que lee su código, probablemente al "futuro yo", que ha pensado en su bienestar.


Va a ser más difícil de lo que piensas para hacer un lenguaje donde los comentarios son imposibles.

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