Ist es .yaml oder .yml?

335

Laut yaml.org ist die offizielle Dateierweiterung .yaml.

Zitat:

Gibt es eine offizielle Erweiterung für YAML-Dateien?

Bitte verwenden Sie wenn möglich ".yaml".

Im Internet scheint es jedoch Meinungsverschiedenheiten darüber zu geben, welche Erweiterung verwendet werden soll. Wenn Sie Beispiele im Web nachschlagen , verwenden viele von ihnen die nicht genehmigte .ymlErweiterung.

Durch die Suche bei Google werden fast dreimal so viele Ergebnisse für die kürzere zurückgegeben.


Geben Sie hier die Bildbeschreibung ein
49.100


Geben Sie hier die Bildbeschreibung ein
15.400


Also was soll ich verwenden? Die vom Ersteller vorgeschlagene richtige 4-Buchstaben-Erweiterung oder die im wilden Westen des Internets gefundene 3-Buchstaben-Erweiterung?

Spuder
quelle
3
Vielleicht sollte die Öffentlichkeit beklagen hier und sie bitten, die offizielle Empfehlung auf „.yml“ zu ändern. Organisationen (und Gründer) können natürlich "langsam" sein, aber vielleicht könnten sie davon überzeugt sein, dem realen Gebrauch zu folgen (wenn auch nur, um die Sprache weiter zu evangelisieren).
MarkDBlackwell
3
@ AndrewWagner, wenn sie ihre Aufnahme ändern .yml, dann könnten die Leute ändern zu .yaml:-)
go2null
4
yaml.org/faq.html -> Verwenden Sie .yaml
Wannes
6
Ich bin nicht sicher, ob yaml.org eine große Hilfe ist, da sie immer noch zeigen:© 2001-2006 YAML.org All Rights Reserved
Sean
6
Verwenden Sie jetzt .htm oder .html? Wenn Sie sich immer noch an .htm halten, ist .yml wahrscheinlich die richtige Wahl für Sie. Andernfalls sollten Sie sich besser an die Verwendung von .yaml gewöhnen :-)
xorcus

Antworten:

214

Die Art und sogar Existenz von Dateierweiterungen ist plattformabhängig (einige obskure Plattformen haben sie nicht einmal, denken Sie daran) - in anderen Systemen sind sie nur konventionell (UNIX und seine Art), während sie in anderen eine bestimmte Semantik haben und in einigen Fällen spezifische Beschränkungen der Länge oder des Zeicheninhalts (Windows usw.).

Da die Betreuer Sie gebeten haben, ".yaml" zu verwenden, kommt dies einer "offiziellen" Entscheidung so nahe wie möglich, aber die Gewohnheit von 8,3 ist schwer zu umgehen (und erschreckenderweise auch 2013 gelegentlich noch relevant).

Bandrami
quelle
4
Was schlimmer ist, ist meine Installation von Notepad ++ scheint dies falsch zu verstehen :-(
Samuel Harmer
35
Die 3-Buchstaben-Suffix-Konvention ist seit fast 2 Jahrzehnten veraltet. Wenn überhaupt, würde ich argumentieren, dass das World Wide Web es in den 90er Jahren abgelehnt hat. Es ist beleidigend, dass sich jemand darum kümmert. Genug, um einen Fehler gegen jede Software zu melden, die dadurch kaputt geht.
Dave
3
Auf der Wikipedia-Seite Kategorie: Dateiname_Erweiterungen werden Einträge für .a , .o und .z aufgelistet . Irgendwie hat es .c und .h verpasst . Diese Einzelbuchstabenerweiterungen helfen uns zu erkennen, dass Erweiterungen so lang wie nötig sein sollten, aber nicht mehr (um A. Einstein halb zu zitieren ).
MarkDBlackwell
19
Ich habe meine Datei benannt .ymlund Sie können nichts dagegen tun.
Bvdb
4
@ Dave Ich werde Ihr wertvolles Feedback im Auge behalten. ( Speichern Sie Ihr Feedback an DOCUME~1.HTM. )
bvdb
32

BEARBEITEN:

Also was soll ich verwenden? Die vom Ersteller vorgeschlagene richtige 4-Buchstaben-Erweiterung oder die im wilden Westen des Internets gefundene 3-Buchstaben-Erweiterung?

Diese Frage könnte sein:

  1. Eine Bitte um Beratung; oder

  2. Ein natürlicher Ausdruck dieser besonderen Emotion, die erlebt wird, während man beobachtet, dass eine offizielle Empfehlung ignoriert wird - prominent oder sogar überwiegend.

Menschen unterscheiden sich in ihrer Vorliebe für Folgendes:

  1. Offizieller Rat; oder

  2. Das Übergewicht der Praxis.

Natürlich ist es unwahrscheinlich, dass ich Sie beeinflussen werde, welchen dieser beiden Wege Sie bevorzugen!

Im Folgenden (und im Geiste der Wissenschaft) mache ich lediglich eine Hypothese darüber, was (lediglich tatsächlich) die Mehrheit der Menschen dazu veranlasst hat, die 3-Buchstaben-Erweiterung zu verwenden. Und ich konzentriere mich auf effiziente Ursachen.

Damit beabsichtige ich keine moralische Ermahnung. Wie Sie sich vielleicht erinnern, bedeutet die Tatsache, dass etwas ist, nicht, dass es sein sollte.

Was auch immer Ihre persönliche Neigung ist, sei es, dem einen oder anderen Weg zu folgen, ich habe keine Einwände.

(Ende der Bearbeitung.)

Der Vorschlag, dass diese Präferenz (im realen Gebrauch) durch eine DOS-Einschränkung von 8,3 Zeichen verursacht wurde, IMO ist ein roter Hering (fehlerhaft und irreführend).

Im August 2016 betrug die Anzahl der Google-Suchanfragen für YML und YAML ungefähr 6.000.000 und 4.100.000 (mit einer Genauigkeit von zwei Stellen). Darüber hinaus war die Anzahl der "YAML" zu hoch, da die Sprache namentlich erwähnt wurde und nicht nur als Erweiterung verwendet wurde.

Ab Juli 2018 betrug die Suchanzahl von Google für YML und YAML ungefähr 8.100.000 und 4.100.000 (wiederum mit zwei Stellen Genauigkeit). In den letzten zwei Jahren hat sich die Popularität von YML im Wesentlichen verdoppelt, aber YAML ist gleich geblieben.

Eine weitere kulturelle Maßnahme sind Websites, die versuchen, Dateierweiterungen zu erklären. Auf der FilExt-Website (Stand Juli 2018) lautet die Seite für YAML beispielsweise : "Ups! Die Datenbank FILEXT.com enthält keine Informationen zur Dateierweiterung .YAML."

Während es einen Eintrag für YML gibt, der lautet : "YAML ... verwendet eine Textdatei und organisiert sie in einem für Menschen lesbaren Format. 'Database.yml' ist ein typisches Beispiel, wenn YAML von Ruby on Rails verwendet wird um eine Verbindung zu einer Datenbank herzustellen. "

Im November 2014 wurde in dem Wikipedia-Artikel zur Erweiterung YML immer noch angegeben, dass ".yml" " die Dateierweiterung für das YAML-Dateiformat" ist (Hervorhebung hinzugefügt). Der YAML- Artikel listet beide Erweiterungen auf, ohne eine Präferenz auszudrücken.

Die Erweiterung ".yml" ist ausreichend klar, ist kürzer (daher leichter zu tippen und zu erkennen) und ist viel häufiger.

Natürlich könnten diese beiden Erweiterungen als Abkürzungen einer langen, möglichen Erweiterung ".yamlaintmarkuplanguage" angesehen werden. Aber Programmierer (und Benutzer) wollen das alles nicht eingeben!

Stattdessen möchten wir Programmierer (und Benutzer) so wenig wie möglich tippen und dennoch eindeutig und klar sein. Und wir wollen so schnell wie möglich sehen, um welche Art von Datei es sich handelt, ohne ein längeres Wort zu lesen. Wenn Sie eingeben, wie viele Charaktere diese beiden Ziele erreichen? Ist die Antwort nicht drei (3)? Mit anderen Worten, YML?

Auf der Wikipedia-Seite Kategorie: Dateiname_Erweiterungen werden Einträge für .a , .o und .Z aufgelistet . Irgendwie fehlten .c und .h (von der C-Sprache verwendet). Diese beispielhaften Einzelbuchstabenerweiterungen helfen uns zu erkennen, dass Erweiterungen so lang wie nötig sein sollten, aber nicht länger (um Albert Einstein halb zu zitieren).

Beachten Sie stattdessen, dass im Allgemeinen nur wenige Erweiterungen mit "Y" beginnen. Andererseits wird der Buchstabe X üblicherweise für eine Vielzahl von Bedeutungen verwendet, einschließlich "Kreuz", "erweiterbar", "extrem", "variabel" usw. (z. B. in XML). Das Beginnen mit "Y" vermittelt also bereits viele Informationen (in Bezug auf die Informationstheorie), während das Beginnen mit "X" dies nicht tut.

Sprachlich gesehen hat das Akronym "XML" daher (in gewisser Weise) nur zwei informative Buchstaben ("M" und "L"). "YML" hat stattdessen drei informative Buchstaben ("M", "L" und "Y"). In der Tat scheint der vorhandene Satz von Akronymen, die mit Y beginnen, extrem klein zu sein. Aus diesem Grund fühlt sich eine YAML-Dateierweiterung mit vier Buchstaben stark überbestimmt an.

Vielleicht sehen wir deshalb in der Praxis, dass der "sprachliche" Druck (im natürlichen Gebrauch), die fragliche Abkürzung auf vier (4) Zeichen zu verlängern, schwach ist und der "sprachliche" Druck, diese Abkürzung auf drei (3) Zeichen zu verkürzen ist stark.

Wahrscheinlich nur aufgrund dieser Faktoren (und nicht als offizielle Bestätigung) möchte ich darauf hinweisen, dass es in der neuesten Nachricht der YAML.org- Website (ab November 2011) um ein in JavaScript geschriebenes Projekt geht: JS-YAML , die selbst intern die Erweiterung ".yml" bevorzugt.

Die oben genannten Faktoren können die Hauptfaktoren gewesen sein; Trotzdem haben alle Faktoren (bekannt oder unbekannt) dazu geführt, dass die abgekürzte Erweiterung mit drei (3) Zeichen diejenige ist, die bei YAML vorherrscht - trotz der Präferenz der Erfinder.

".YML" scheint der De-facto- Standard zu sein. Dieselben Erfinder waren jedoch scharfsinnig und korrekt in Bezug auf das weltweite Bedürfnis nach einer für Menschen lesbaren Datensprache. Und wir sollten ihnen dafür danken, dass sie es zur Verfügung gestellt haben.

MarkDBlackwell
quelle
1
Die Dateierweiterung ".yml" für YAML verwenden listet viele konkrete Beispiele, Empfehlungen und Konfigurationseinstellungen auf, die standardmäßig ".yml" in freier Wildbahn enthalten.
MarkDBlackwell
1
Wenn Sie Wikipedia zitieren, lesen Sie besser etwas mehr: Yamls Artikel sagt Dateinamenerweiterung : .yaml,.yml
Charles Follet
1
@CharlesFollet, was Sie zitiert haben, war in der Tat die Grundlage meiner Aussage "Der YAML-Artikel listet beide Erweiterungen unbeschadet auf" (jetzt bearbeitet zu "ohne Präferenz auszudrücken"). Die Leute benutzen beide Erweiterungen; dennoch überwiegt ".yml".
MarkDBlackwell
19
Denken Sie immer daran, dass Wikipedia eine kollaborative Enzyklopädie ist. Ich habe die YML-Disambiguierungsseite so bearbeitet, dass sie nur " eine allgemeine Erweiterung" anstelle von " die Erweiterung" ist.
NiñoScript
2
Es gibt seit vielen Jahren eine domänenspezifische Sprache YML (Markup, das XML generiert), vielleicht sogar so lange wie YAML. Ihre Google-Suchanzahl, die nicht gezählt wurde, hat wahrscheinlich sowohl YML-Referenzen als auch fehlerhafte YAML-Referenzen gezählt. YAML ist keine Überspezifikation, sondern verwendet den entsprechenden Namen, um Verwirrung zu vermeiden.
Anthon
4

Nachdem ich eine Reihe von Kommentaren online gelesen hatte, war meine erste Reaktion, dass dies im Grunde eine dieser wirklich unwichtigen Debatten ist. Mein anfängliches Interesse war es jedoch, das richtige Format herauszufinden, damit ich mit meiner Praxis zur Benennung von Dateien übereinstimmen kann.

Lange Rede, kurzer Sinn, sagt der Schöpfer von YAML .yaml, aber ich persönlich mache es weiter .yml. Das macht für mich einfach mehr Sinn . Also machte ich mich auf den Weg, um Bestätigung zu finden, und bald merke ich, dass Docker .ymlüberall verwendet. Ich habe die docker-compose.ymlganze Zeit Dateien geschrieben, während Sie immer wieder in den Dokumenten von kubernetes sehen kubectl apply -f *.yaml...

Zusammenfassend lässt sich sagen, dass beide Formate offensichtlich akzeptiert werden. Wenn Sie sich am anderen Ende befinden (dh Schreibsysteme, die eine YAML-Datei als Eingabe erhalten), sollten Sie beide zulassen. Das scheint ein weiterer Schlangenfall gegen einen Kamelfall zu sein ...

JackyJohnson
quelle
2
Also , was macht mehr Sinn für Sie für die verwenden YML domänenspezifische Sprache (die wahrscheinlich so lange wie YAML schon hat): die .yl, .ymoder die .mlVerlängerung?
Anthon
2

.yamlist anscheinend die offizielle Erweiterung, da einige Anwendungen bei der Verwendung fehlschlagen .yml. Andererseits kenne ich keine Anwendungen, die YAML-Code verwenden, aber mit einer .yamlErweiterung fehlschlagen .

Ich bin nur darauf gestoßen, da ich es gewohnt war, .ymlin Ansible und Docker Compose zu schreiben . Aus Gewohnheit habe ich .ymlbeim Schreiben von Netplan-Dateien verwendet, die lautlos fehlgeschlagen sind. Ich habe endlich meinen Fehler herausgefunden. Der Autor einer beliebten Ansible Galaxy-Rolle für Netplan geht in seinem Code von derselben Annahme aus:

- name: Capturing Existing Configurations
  find:
    paths: /etc/netplan
    patterns: "*.yml,*.yaml"
  register: _netplan_configs

Dateien mit einer .ymlErweiterung werden von Netplan jedoch genauso ignoriert wie Dateien mit einer .bakErweiterung. Da Netplan sehr leise ist und keinerlei Rückmeldung über den Erfolg gibt, schlägt netplan apply --debugeine Konfiguration wie diese 01-netcfg.ymlohne aussagekräftiges Feedback stillschweigend fehl.

ChrisW
quelle
0

Nur um zu erzählen ... Yaml ist Dateischema / -typ und '.yml' ist die Dateierweiterung, ähnlich wie Textdatei und '.txt' für Erweiterungen.

Hemantsharma
quelle