Frage

Nach einigen dummen Gedanken über klingonische Sprache, die von dieser kam post ich einen dummen Hobby-Projekt die Schaffung eines klingonischen Programmiersprache begann, die Lua-Byte-Code kompiliert. Während der anfänglichen Sprachentwurfsphase schaute ich auf Informationen über Klingon Programmierer , und über diese Klingon Programmierung Regel herausgefunden:

  

A TRUE klingonische Krieger Kommentar nicht seinen Code!

Also habe ich beschlossen, meine Sprache würde nicht unterstützen Kommentierung , wie jeder gute Klingon würde sie nie verwenden.

Nun ist für viele der klingonischen Wege scheinen nicht vernünftig zu uns Menschen Programmierer, aber während sie mit der Konzeption und Umsetzung von meinem Hobby Sprache Dilettantismus ich kam zu der Erkenntnis, dass diese Klingon Regel über Kommentierung in der Tat sehr vernünftig, wenn nicht groß.

die Möglichkeit, von einer Programmiersprache Kommentar entfernen gemeint I HAVE schreiben lesen und schreiben Code , keine Ausnahmen.

So ist es hat mich gefragt, ob es irgendwelche Sprachen gibt, die nicht unterstützen, Kommentare?

Gibt es irgendwelche wirklich gute Argumente nicht entfernen von einer Sprache zu kommentieren?

Edit: Jedes gute Beispiele für Kommentare erforderlich


P. S.> Mein Hobby Sprache oben ist sowieso zum Teil albern, so konzentrieren sich nicht zu sehr auf meine Implementierung, so viel wie das Konzept der Kommentare in der Regel erforderlich

War es hilfreich?

Lösung

Ich bin nicht sicher, ob ich mit dem zustimmen „Have“ in der Aussage „die Möglichkeit, von einem Programmiersprache Kommentar entfernen bedeuten, dass ich HABE gebildeten Code zu schreiben, keine Ausnahmen“, da es nicht so, dass die gesamten Code ist dokumentiert. Meine Vermutung ist, dass die meisten Menschen nicht lesbaren Code schreiben würden.

Mehr zu dem Punkt, ich persönlich glaube nicht an der Realität des selbsterklärend Programms oder API in der praktischen Welt.

Meine Erfahrung aus manuell in der Dokumentation der gesamten APIs für meine Dissertation Analyse legt nahe, dass allzu oft würden Sie müssen mehr Informationen tragen, als Sie allein in der Signatur vermitteln könnten. Wenn Sie Schnittstelle Kommentare von Ihrer Sprache beseitigen, was sind die Alternativen? Keine Dokumentation ist keine Option. Externe Dokumentation ist weniger wahrscheinlich, gelesen zu werden.

Wie für die interne Dokumentation, kann ich Ihren Standpunkt zu wollen siehe Dokumentation reduzieren Menschen zu überzeugen, besser zu schreiben. Allerdings dienen Kommentare viele Zusammenarbeit und Koordination Zwecke und sollen das Bewusstsein für die Dinge erhöhen. Durch verbannen diese Details zu extenral Orten reduzieren Sie die Chancen, dass sie auf einen zukünftigen Leser des Bewusstsein kommen, es sei denn, Ihr Werkzeug ist groß.

Andere Tipps

Sie nicht kommentieren, was Sie tun, aber warum Sie es tun.

Die WAS durch sauberen, gut lesbaren und einfachen Code mit dem richtigen Wahl der Variablennamen Pflege unterstützen genommen wird. Kommentare zeigen eine höhere Struktur, um den Code, der sich durch den Code nicht (oder nur schwer) zeigen sein kann.

Ugh, nicht in der Lage, schnell eine Zeile aus kommentieren (oder Zeilen) während des Testens klingt ärgerlich für mich, vor allem, wenn Scripting.

Im allgemeinen Bemerkungen sind eine Warze, die schlechte Design, besonders langen Wanderungen Kommentare, wo sein klar, dass der Entwickler hat keine Ahnung, zeigt an, was zum Teufel sie wo tun und versuchte, es zu machen, indem Sie einen Kommentar zu schreiben.

Orte, an denen Kommentare sind nützlich:

  • abgeben Ticket-Nummer neben einem Update so zukünftige Programmierer können Geschäftsanforderungen verstehen
  • Erklären besonders heikel Hack
  • Kommentar auf Business-Logik für ein Stück Code
  • Terse Beschreibungen in API-Dokumentation so ein Drittanbieter-API verwenden können,

Unter allen Umständen sollten Programmierer bemühen Code zu schreiben, beschreibend und nicht die Kommentare schreiben, die schlecht geschriebenen Code beschreiben. Davon abgesehen denke ich gibt es viele gute Gründe gibt, die Sprachen sollte und Kommentare unterstützen muss.

Ihr Code hat zwei verschiedene Zielgruppen:

  • Der Compiler
  • Menschen wie wir

Wenn Sie Kommentare ganz zu entfernen, die Annahme, die Sie einnehmen, ist, dass Sie nur an den Compiler Catering wird, und auf nichts anderes.

Natürlich können Sie, Klingonisch zu sein, kann nicht Kommentare müssen, weil Sie nicht menschlich sind. Vielleicht könnten Sie deutlich zu uns zeigen, Ihre Fähigkeit, statt in IL durch Sprechen?

Sie müssen nicht Notwendigkeit eine einzige Behauptung in Ihrem Code, da im Release-Modus, sie sind alle weg. Aber als C ++ nicht Behauptungen haben eingebaute, jemand schrieb die assert-Makro zu ersetzen.

Natürlich kann man nicht Notwendigkeit Kommentare, entweder, für mehr oder weniger den gleichen Grund. Aber wenn Sie ohne Kommentar eine Sprache entwerfen, werden die Menschen wie Dinge zu tun, starten:

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

Ich bin gespannt. Wie stoppen Sie jemand aus einer statischen Zeichenfolge deklariert einen Kommentar enthält, und dann die Variable für den Rest der Func / Methode / Verfahren / Kampfes zu ignorieren / was auch immer?

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

Sprachen benötigen Kommentare. Mindestens 95% der Kommentare können durch klarere Code ersetzt werden, aber es gibt noch Annahmen müssen Sie dokumentieren und Sie müssen unbedingt dokumentieren, ob es gibt einige externe Problem, das Sie arbeiten rund um.

Ich schreibe nie einen Kommentar, ohne vorher bedenkt, wenn ich den Code ändern kann, die Notwendigkeit, sie zu beseitigen, aber manchmal kann man nicht.

Während alle Quellcode ist standardmäßig geschützt. Oft ist es schön zu:

  1. erinnern die Person, den Quellcode zu lesen, die sie unterliegen dem Urheberrecht ist

  2. Menschen sagen, was die Lizenzbedingungen für die Quellcodedatei sind

  3. sagen sie, ob sie an einem geschützten Handelsgeheimnis suchen

Leider, ohne Worte, es ist schwierig, dies zu tun.

Bin ich der einzige, der ein paar Zeilen Kommentare aus Code für eine Reihe von Zwecken?

Während es wahr ist, dass die Menschen müssen in der Lage sein, Code zu kommentieren, ist es nicht unbedingt erforderlich, dass die Sprache direkt unterstützen Kommentierung: für die meisten Sprachen, wäre es trivial, ein Skript zu schreiben, die eine Zeile Kommentar löschen (zB alle Linien mit ‚#‘ beginnen oder einem anderen Zeichen), dann läuft der Compiler.

Eigentlich, obwohl, ich bin überrascht und enttäuscht zu erfahren, dass auch meine Lieblings esoterischen Programmiersprachen Kommentare unterstützen: Leerzeichen . Diese Sprachen sollen gelesen werden schwer zu, so scheint es, wie sie sollten nicht unterstützen zu kommentieren. (Im Gegensatz zu meiner anderen Lieblingen esoterischen Sprache: LOLCODE , was bedeutet, ist selbsterklärend zu sein, in lolcats-Rede )

würde ich von den anderen Beantworter in diesem Punkt anderer Meinung: Ich sage, um Ihre Vision eines klingonischen Programmiersprache wahr sein, und unterstützen keine Kommentare

!

Ein Punkt gegen Kommentare ist, dass sie dazu neigen, oft mit dem Code veraltet fallen. Jedes Mal, wenn eine Redundanz hinzuzufügen, Sie riskieren, diese Art von Inkonsistenz.

Es gibt tatsächlich einige interessante Forschung, die ich gesehen habe, als eine Gruppe NLP verwendet, um zu analysieren Kommentare in einigen großen Schließanlage und vergleichen sie dann auf die Ergebnisse der statischen Analyse und konnten ein paar Fehler beheben, die Art und Weise.

Ist das nicht lesen und Programmierung so viel Kommentars wie Code ist? Sicherlich viel von dem, was ich gesehen der gebildeten Programmierung habe hat so viel Erklärung als Code, wenn nicht mehr Kommentar.

Das könnten Sie denken, dass die Entwickler in Ihrer Sprache zu schreiben werden einen zusätzlichen Aufwand deutlich machen, Code zu schreiben, aber die Beweislast wird auf tatsächlich sein Sie , um eine Sprache zu entwerfen, das ist so ausdruck dass es muss nicht kommentiert werden. Zum Teufel, nicht einmal Englisch ist so (wir noch klammern!). Wenn Ihre Sprache ist es sehr gut nicht so ausgelegt, als Brainfuck als verwendbar sein und die Popularität und den Respekt genießen Brainfuck.

Sollte ich hinzufügen, Links oder sind Links betrachtet commentlike?

Außerdem werden die Menschen Wege finden, um Kommentare hinzuzufügen, wenn sie müssen von Streichern und mißbrauchen Variablennamen Entführung (die nichts tun, außer für Kommentare stehen in). Haben Sie lesen Gödel Escher Bach

Es wird eine schlechte Idee sein, die Kommentierung Einrichtung ganz zu entfernen. Sicherlich müssen die Entwickler lernen Code mit minimalem Kommentare schreiben heißt selbstdokumentierenden Code zu schreiben, aber es gibt viele Fälle, in denen man erklären muss, warum etwas, um die Art und Weise ist es getan. Betrachten Sie die folgenden Fälle:

  • ein neuer Entwickler starten könnte den Code und die ursprünglichen Entwickler beibehalten hat links / aus dem Projekt
  • eine Änderung der Spezifikation oder den Anforderungen des Marktes führt zu etwas, das unlogisch
  • ist
  • kopieren Kündigungsrecht vor allem, wenn Open Source (einige Open-Source-Bibliotheken benötigen Sie, dies zu tun)

Es ist auch meine Erfahrung, dass neue Programmierer neigen dazu, mehr zu kommentieren und wie sie Know-how zu entwickeln, ihren Code neigt dazu, sich selbst dokumentiere und prägnant zu werden. Im Allgemeinen sollten Kommentare sein, warum und nicht, wie oder was.

NO -. Gibt es nicht eine einzige Programmiersprache gibt, die Kommentare erfordert

Die Sprache ist für den Computer. Die Kommentare sind für die Menschen. Sie können ein Programm mit 0% Kommentare schreiben. Es wird ausgeführt werden, zu Recht oder zu Unrecht. Sie können ein Programm mit 100% Kommentare schreiben. Es wird entweder nicht kompiliert werden - keine main (), usw. -. Oder, für Skriptsprachen, genau das tun, nichts

Und außerdem echte Programmierer Kommentar ihren Code nicht . Genau wie Klingonen.

Während ich mit Uri Antworten zustimmen, auch ich mit keine Kommentare Sprache gemacht haben. ( ichbins .) Die Sprache war so einfach wie möglich sein, während immer noch sauber sein eigenes Compiler zum Ausdruck bringen zu können; da kann man ohne Kommentare tun, wurden sie über Bord geworfen.

Ich arbeite ab und zu an einer Revision, die Kommentierung nicht unterstützt, aber ein bisschen anders: belesen-Programmierstil mit Code in Text verschachtelt statt Kommentare in Code eingebettet. Es könnte auch Beispiele / Testfälle später als First-Class-Sprache-Funktion erhalten.

Viel Glück mit dem klingonischen Hacking. : -)

Ich kann Ihnen nicht sagen, wie dankbar ich für Javadoc bin - das ist wirklich einfach innerhalb von Kommentaren einzurichten. Also das ist zumindest ein Sinn, in dem Kommentar nützlich ist.

Nein, natürlich eine Sprache muss nicht haben zu kommentieren. Aber ein (Nutz-) Programm hat Kommentare haben ... Ich weiß nicht mit Ihrer Idee zustimmen, dass gebildeter Code fehlt Kommentare. Einige sehr gute Code ist leicht verständlich mit Kommentaren, aber nur schwer ohne.

Ich denke, die Kommentare in vielen Situationen erforderlich sind.

Zum Beispiel, denken Sie an den algorithmisch diejenigen. Angenommen, es gibt eine Funktion, die in C geschrieben ist, die die Reisen Verkäufer Problem , gibt es vielfältige Techniken, die mit diesem Problem fertig werden, verwendet werden. Und die Codes sind meist kryptische durch seine Natur.

Ohne ausdrücklich auf die Parameter zur Beschreibung und den Algorithmus verwendet, um Kommentare verwenden, ist es fast unmöglich ist, dieses Stück Code wiederverwenden.

Können wir leben, ohne Kommentare zu Code? Sicher, aber das wird nicht Leben leichter machen.

  

Sind Kommentare notwendig für eine Programmiersprache?

Nein. In dem großen Plan der Dinge könnte ein Compiler nicht weniger kümmert sich um einen Kommentar und nur Code will auf einen niedrigeren gemeinsamen Nenner zermürben.

  

Ist es sinnvoll, für eine Programmiersprache, eine zu schaffen, zu kommentieren konstruieren?

Ja. Die Kommentare sind sehr nützlich für einen Programmierer und nicht nur zu fälschen, wie sie wissen, was sie tun, aber bei der Fehlersuche und nutzbringend als auch zu dokumentieren.

Die Kommentare sind nützlich, weil sie die Person Lesen Sie den Code beruhigen - wahrscheinlich die „Zukunft Sie.“ -, dass Sie über ihr Wohlergehen gedacht haben

Es wird schwieriger sein, als Sie denken, eine Sprache zu machen, wo Kommentare nicht möglich sind.

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

Ich denke, die Frage werden kann, wie sich geschlossene würde die Sprache ohne Worte sein? Wenn zum Beispiel kompiliert es DLLs nach unten, die in anderem Code zu gewöhnen, dann, wie weiß man nichts über die Funktion Unterschrift in Hinblick darauf, was es erfordert, Änderungen und kehrt? Ich würde nicht wollen, Funktionsnamen Dutzende von Zeichen haben, ist zu versuchen, um auszudrücken, was sehr leicht mit Kommentaren über die Funktion durchgeführt werden kann, die als Dokumentation in so etwas wie der Objekt-Browser in Visual Studio zum Beispiel verwendet werden kann.

Natürlich !!

Der Hauptgrund ist Anfänger-Entwickler. Nicht jeder weiß, wie man lesen und schreiben Code zu schreiben. Eigentlich gibt es da draußen Millionen keine Nullpointer erhalten, wenn sie einen sehen.

Wir alle an einem gewissen Punkt zu starten.

Aber wenn Sie gezielt auf „Experten“ Entwickler nur, warum in der Sprache, in erster Linie kümmern. Sie sollten mit Schmetterlingen !!! Das ist, was echte Entwickler verwenden!

Kommentare ein Muss ist, versuchen Sie es schwieriger zu machen, wenn Sie wollen (wie mit # // ## / Sequenz einen Kommentar oder so etwas zu schaffen), aber lassen Sie es nicht aus.

:)

Ich stimme Ihnen zu, dass schön geschriebenen Code keine Kommentare braucht als „Code nur gute Dokumentation zur Verfügung Programmierer ist. Doch diese sehr Idealzustand ist, nicht jeder schreibt guten Code aller Zeiten. So zu schlecht geschriebenen Code gut machen in Zukunft Kommentare erforderlich sind.

Ich schrieb einmal einen VB-App (ein dummes Brettspiel von Monopoly inspiriert) ohne alle Kommentare. Aber ich habe das nur meinen Lehrer zu verärgern, der mir erzählt hatte, Kommentare waren für „alles, was wir gefunden relevant , so konnten wir es merken später“.

Perfect Code muss Null Kommentare. Es sollte durch völlige Neulinge einfach und understandible sein.

Jeder Code braucht Kommentare, ich versuche, den Grund für die und Arbeitsweise jeder Funktion, die ich in 1 oder 2 Zeilen schreiben zu erklären.

Code, der sich selbst existiert, erklärt nur in einer perfekten Welt, gibt es immer einige seltsame Hack oder einen Grund, etwas schnell-n-dirty statt der Propper Weise zu tun. Das Beste, was zu erinnern, kommentieren, warum Code tut, was es tut, guter Code erklärt, was es tut, 99% der Zeit.

Schreiben Sie etwas einfach, wie ein Stück Code, der ein Sudoku-Rätsel (3 relativ einfache while-Schleifen) lösen können und versuchen, dass 3 Monate später zu lesen. Sie werden immidiatly etwas finden, das nicht ganz klar ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top