Question

Après quelques réflexions stupides sur les langues Klingon, qui sont venus de cette après j'ai commencé un projet de passe-temps idiot la création d'un langage de programmation Klingon qui compile à l'octet de code Lua. Au cours de la phase de conception initiale de la langue j'ai regardé des informations sur programmeurs Klingon , et a découvert à propos de cette règle de programmation Klingon:

  

Un vrai guerrier Klingon ne fait aucun commentaire son code!

Alors j'ai décidé ma langue serait ne supporte pas de commentaires , comme tout bon Klingon ne jamais les utiliser.

Maintenant, beaucoup de façons Klingon ne nous semblent pas raisonnables aux programmeurs de l'homme, mais tout en barbotant avec la conception et la mise en œuvre de ma langue passe-temps, je me suis rendu compte que cette règle Klingon au sujet des commentaires est en effet très raisonnable, sinon grand.

Suppression de la possibilité de commenter d'un langage de programmation signifiait I HAVE pour écrire Code lettré , sans exception.

Alors il m'a fait me demandais s'il y a des langues qui ne tiennent pas en charge les commentaires?

Est il y a des très bons arguments pour supprimer ne pas commenter d'une langue?

Modifier: Les bons exemples de commentaires requis


post-scriptum> Ma langue passe-temps ci-dessus est de toute façon partiellement stupide, alors ne se concentre pas trop sur ma mise en œuvre, autant que le concept de commentaires requis en général

Était-ce utile?

La solution

Je ne suis pas sûr que je suis d'accord avec le « nantie » dans la déclaration « Retrait de la possibilité de commenter d'un langage de programmation signifie que je dois écrire un code lettré, sans exception », car il est pas comme si tout le code est documenté. Je pense que la plupart des gens d'écrire du code illisible.

Plus au point, je ne crois pas personnellement dans la réalité du programme explicite ou API dans le monde pratique.

Mon expérience de l'analyse manuellement la documentation d'API ensemble pour ma thèse suggère que tout ce que vous trop souvent avoir à transporter plus d'informations que vous pourriez transmettre à la seule signature. Si vous supprimez les commentaires d'interface de votre langue, quelles sont les alternatives? Aucun document ne constitue pas une option. documentation externe est moins susceptible d'être lu.

En ce qui concerne la documentation interne, je peux voir votre point de vouloir réduire la documentation pour convaincre les gens à mieux écrire. Cependant, les commentaires servent à plusieurs fins de collaboration et de coordination et sont destinés à mieux faire connaître les choses. En bannissant ces détails à des endroits extenral, vous réduisez les chances qu'ils viennent à la conscience d'un futur lecteur, à moins que votre outillage est grand.

Autres conseils

Ne pas commenter ce que vous faites, mais pourquoi vous le faites.

Ce qui est pris en charge par un code propre, lisible et simple avec un choix approprié de noms de variables pour le soutenir. Les commentaires montrent une structure de niveau supérieur au code qui ne peut pas être (ou est difficile à) montrer par le code lui-même.

Ugh, ne pas être en mesure de commenter rapidement une ligne (ou lignes) pendant l'essai semble ennuyeux pour moi, surtout quand les scripts.

Dans les commentaires généraux sont une verrue qui indique une mauvaise conception, particulièrement longs commentaires décousus où son clair que le développeur n'a pas la moindre idée ce que le diable ils où faire et a essayé de compenser en écrivant un commentaire.

Lieux où les commentaires sont utiles:

  • Le numéro de billet à côté d'une solution afin de programmeurs futurs peuvent comprendre les besoins d'affaires
  • Expliquer un hack particulièrement délicat
  • Commentaire sur la logique métier pour un morceau de code
  • descriptions laconiques API docs donc un tiers peut utiliser votre API

Dans tous les cas les programmeurs devraient essayer d'écrire du code qui est descriptif et ne pas écrire des commentaires décrivant le code mal écrit. Cela étant dit, je pense qu'il ya beaucoup de raisons valables que les langues devraient et doivent soutenir les commentaires.

Votre code a deux publics distincts:

  • Le compilateur
  • Les êtres humains comme nous

Si vous choisissez de supprimer des commentaires tout à fait, l'hypothèse que vous prenez est que vous serez la restauration que le compilateur, et rien d'autre.

Bien sûr, vous, être Klingon, ne peuvent pas besoin de commentaires parce que vous n'êtes pas humain. Peut-être que vous pourriez bien nous démontrer votre capacité en parlant à la place IL?

Vous ne faites pas besoin une seule affirmation dans votre code parce que, en mode de libération, ils sont tous partis. Mais quand C ++ n'a pas affirmations intégrées, quelqu'un a écrit la macro assert pour le remplacer.

Bien sûr, vous ne pas besoin commentaires, que ce soit, pour plus ou moins la même raison. Mais si vous concevez une langue sans commentaires, les gens vont commencer à faire des choses comme:

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

Je suis curieux. Comment voulez-vous arrêter quelqu'un de déclarer une chaîne statique contenant un commentaire et en ignorant la variable pour le reste de la fonc / méthode / procédure / combat / whatever?

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

langues ont besoin de commentaires. Au moins 95% des commentaires peuvent être remplacés par un code plus clair, mais il y a encore des hypothèses que vous devez documenter et vous devez absolument documenter s'il y a un problème externe, vous travaillez autour.

Je n'écris un commentaire sans considérer d'abord si je peux modifier le code pour éliminer le besoin mais parfois vous ne pouvez pas.

Alors que tout le code source est protégé par copyright par défaut. Il est souvent agréable à:

  1. rappeler à la personne lisant le code source qui est soumis au droit d'auteur

  2. dire aux gens ce que les conditions de licence sont pour ce fichier de code source

  3. leur dire si oui ou non ils regardent un secret commercial protégé

Malheureusement, sans commentaires, il est difficile de le faire.

Suis-je le seul qui commente un couple de lignes pour un certain nombre d'objectifs code ?

Il est vrai que les humains doivent être en mesure de commenter le code, il n'est pas absolument nécessaire que la langue appuie directement des commentaires: pour la plupart des langues, il serait trivial d'écrire un script qui supprime un commentaire en ligne (par exemple, tous les lignes commençant par « # » ou un autre caractère) exécute alors le compilateur.

En fait, bien que, je suis surpris et déçu d'apprendre que même mes langages de programmation ésotériques préférés en charge les commentaires: Whitespace. Ces langues sont censées être difficiles à lire, il semble qu'ils ne devraient pas soutenir des commentaires. (Par opposition à mon autre langage ésotérique préféré: LOLCODE , qui est censé être autodocumenté, dans lolcats-parole )

Je dissidence des autres answerers sur ce point: je dis, être fidèle à votre vision d'un langage de programmation Klingon, et ne prennent pas en charge les commentaires

Un point contre les commentaires est qu'ils ont tendance à tomber souvent de jour avec le code. Chaque fois que vous ajoutez une redondance, vous êtes risquer ce genre d'incohérence.

Il y a en fait des recherches intéressantes que je l'ai vu quand un groupe a utilisé la PNL pour analyser le verrouillage des commentaires dans certains grand système, puis les comparer aux résultats de l'analyse statique et ont pu corriger quelques bugs de cette façon.

est-ce pas la programmation littéraire autant que ce commentaire est le code? Certes, une grande partie de ce que je l'ai vu de la programmation littéraire a autant expliquer le code, sinon plus commentaire.

Vous pourriez penser que les développeurs à écrire dans votre langue feront un effort supplémentaire pour écrire du code clair, mais la charge sera effectivement sur pour concevoir une langue qui est pour expressif qu'il n'a pas besoin d'être commenté. L'enfer, même pas l'anglais est comme ça (nous parenthésée encore!). Si votre langue n'est pas conçu, il peut très bien être aussi utile que Brainfuck et profiter de la popularité et le respect des Brainfuck.

Dois-je ajouter des liens ou des liens considérés comme commentlike?

De plus, les gens vont trouver des moyens d'ajouter des commentaires si elles ont besoin par des chaînes et abusant de détournements de noms de variables (qui ne font rien d'autre que se substituer aux commentaires). Avez-vous lu Godel Escher Bach

Ce sera une mauvaise idée de retirer l'installation des commentaires tout à fait. Certes, les développeurs doivent apprendre à écrire du code avec un minimum de commentaires à savoir écrire auto code documentant mais il a beaucoup de cas où l'on doit expliquer pourquoi quelque chose est fait la façon dont il est. Considérez les cas suivants:

  • un nouveau développeur peut commencer à maintenir le code et le dev d'origine a laissé entrée / sortie du projet
  • un changement de spécification ou exigence du marché conduit à quelque chose qui est contre-intuitif
  • copie la notice droit, surtout si open source (quelques libs open source que vous devez faire cela)

Il est également mon expérience que les nouveaux programmeurs ont tendance à commenter plus et comme ils développent une expertise leur code tend à devenir auto-documenté et concis. Dans les commentaires généraux devraient être pourquoi et comment ou quoi.

NO -. Il n'y a pas un langage de programmation unique là-bas qui nécessite des commentaires

La langue est pour l'ordinateur. Les commentaires sont pour les humains. Vous pouvez écrire un programme avec 0% commentaires. Il va exécuter, à tort ou à tort. Vous ne pouvez pas écrire un programme avec des commentaires de 100%. Il va soit pas compilé - pas main (), etc. -. Ou, pour les langages de script, ne rien faire exactement

Et, en plus, vrais programmeurs ne commentent pas leur code . Tout comme Klingons.

Alors que je suis d'accord avec les réponses d'Uri, je l'ai aussi fait une langue sans commentaires. ( ichbins .) La langue devait être aussi simple que possible tout en étant capable d'exprimer son propre compilateur proprement; puisque vous pouvez le faire sans commentaires, ils se sont jetés à la mer.

Je travaille au large et sur une révision qui prend en charge le commentaire, mais un peu différemment: style programmation littéraire avec le code imbriqué dans le texte au lieu des commentaires intégrés dans le code. Il peut également obtenir des exemples / test-cas plus tard comme une caractéristique de la langue première classe.

Bonne chance avec le hacking Klingon. : -)

Je ne peux pas vous dire à quel point je suis reconnaissant pour Javadoc - ce qui est très simple à mettre en place dans les commentaires. Donc, c'est au moins un sens dans lequel les commentaires sont utiles.

Non, bien sûr une langue ne doit pas avoir de commentaires. Mais un (utile) programme ne doit avoir des commentaires ... Je ne suis pas d'accord avec votre idée que le code n'a pas lire et écrire des commentaires. Certains très bon code est facilement compréhensible avec des commentaires, mais seulement avec difficulté sans.

Je pense que les commentaires sont nécessaires dans de nombreuses situations.

Par exemple, pensez à ceux algorithmiques. Supposons qu'il y ait une fonction écrite en C qui permet de résoudre le Voyager Salesperson problème , il y a large gamme de techniques qui peuvent être utilisées pour faire face à ce problème. Et les codes sont généralement cryptique par nature.

Sans décrire explicitement les paramètres et l'algorithme utilisé, en utilisant des commentaires, il est presque impossible de réutiliser ce morceau de code.

Peut-on vivre sans commentaires sur le code? Bien sûr, mais cela ne faire vivre plus facile.

  

sont les commentaires nécessaires pour un langage de programmation?

Non. Dans le grand schéma des choses un compilateur ne se fout un commentaire et veut juste le code pour broyer à un plus petit dénominateur commun.

  

est-il utile pour un langage de programmation pour fournir une construction de commentaires?

Oui. Les commentaires sont très utiles pour un programmeur et pas seulement de faire semblant comme ils savent ce qu'ils font, mais dans le débogage et la documentation utile aussi bien.

Les commentaires sont utiles, car ils rassurent la personne qui lit votre code - probablement le « futur vous. » - que vous avez pensé à son bien-être

Il va être plus difficile que vous pensez faire une langue où les commentaires sont impossibles.

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

Je pense que la question peut être la façon dont la langue serait autonome sans commentaires être? Si, par exemple, il compile jusqu'à DLL qui s'utilisés dans tout autre code, alors comment peut-on savoir quoi que ce soit au-delà de la signature de la fonction en termes de ce qu'il faut, des changements et des retours? Je ne voudrais pas avoir des noms de fonction étant des dizaines de personnages pour essayer d'exprimer ce qui peut être fait très facilement avec les commentaires ci-dessus la fonction qui peut être utilisé comme documentation dans les quelque chose comme l'Explorateur d'objets de Visual Studio par exemple.

Bien sûr !!

La raison principale est les développeurs débutants. Tout le monde ne sait comment écrire du code lettré. En fait, il y a des millions là-bas ne reçoivent pas un NullPointerException quand ils voient un.

Nous commençons tous à un moment donné.

Mais si vous ciblez pour les développeurs « experts » que, pourquoi la peine dans la langue d'abord. Vous devez être en utilisant les papillons !!! C'est ce vrai développeur utiliser!

Commentaires est un must, essayez de rendre plus difficile si vous le souhaitez (comme en utilisant # // ## / séquence pour créer un commentaire ou quelque chose comme ça), mais ne le laissez pas sortir.

:)

Je suis d'accord avec vous que le code bien écrit n'a pas besoin de commentaires comme « Code est seulement une bonne documentation disponible au programmeur. Toutefois, c'est une condition très idéal, tout le monde écrit un bon code tous les temps. Donc, pour faire un bon code mal écrit dans les prochains commentaires sont nécessaires.

J'ai écrit une application VB (un jeu de plateau idiot inspiré par le Monopoly) sans tous les commentaires . Mais je l'ai fait juste pour emmerder mon professeur, qui nous avait dit commentaires étaient pour « tout ce que nous avons trouvé pertinents , afin que nous puissions en souvenir plus tard ».

code parfait a besoin zéro commentaires. Il doit être simple et understandible par des novices complets.

Tout code a besoin de commentaires, je tente d'expliquer la raison et le fonctionnement de toutes les fonctions que j'écris dans 1 ou 2 lignes.

Le code qui s'explique existe que dans un monde parfait, il y a toujours une bidouille bizarre ou une raison de faire quelque chose de rapide-n-sale au lieu de la voie propper. La meilleure chose à retenir est de commentaire Pourquoi le code fait ce qu'il fait, un bon code explique ce qu'il fait 99% du temps.

Ecrire quelque chose de simple, comme un morceau de code qui peut résoudre un casse-tête Sudoku (3 assez simple en boucles) et essayez de lire que 3 mois plus tard. Vous immidiatly trouver quelque chose qui est pas tout à fait clair.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top