É .yaml ou .yml?

336

De acordo com yaml.org , a extensão oficial do arquivo é .yaml.

Citar:

Existe uma extensão oficial para arquivos YAML?

Por favor, use ".yaml" quando possível.

No entanto, parece haver um desacordo na internet sobre qual extensão usar. Se você procurar exemplos na Web , muitos deles usam a .ymlextensão não autorizada .

A busca no Google retorna quase três vezes mais resultados para o menor.


insira a descrição da imagem aqui
49.100


insira a descrição da imagem aqui
15.400


Então, o que devo usar? A extensão apropriada de 4 letras sugerida pelo criador ou a extensão de 3 letras encontrada no oeste selvagem da Internet?

spuder
fonte
3
Talvez o público deva reclamar aqui e pedir para alterar a recomendação oficial para ".yml". Organizações (e fundadores) naturalmente podem ser "lentas", mas talvez elas possam ser convencidas a seguir o uso no mundo real (mesmo que apenas para evangelizar mais o idioma).
MarkDBlackwell
3
@AndrewWagner, se mudarem de rec para .yml, então as pessoas podem mudar para .yaml:-)
go2null
5
yaml.org/faq.html -> Use .yaml
Wannes
6
Não tenho certeza se o yaml.org é de muita ajuda, pois eles ainda mostram:© 2001-2006 YAML.org All Rights Reserved
sean
6
Você está usando .htm ou .html agora? Se você ainda aderir ao .htm, provavelmente o .yml é a escolha certa para você. Caso contrário, você pode ser melhor para se acostumar a usar .yaml :-)
xorcus

Respostas:

215

A natureza e até a existência de extensões de arquivo dependem da plataforma (algumas plataformas obscuras nem as têm, lembre-se) - em outros sistemas elas são apenas convencionais (UNIX e seus semelhantes), enquanto em outras ainda possuem semântica definida e, em alguns casos, limites específicos de tamanho ou conteúdo de caracteres (Windows, etc.).

Como os mantenedores pediram que você use ".yaml", isso é o mais próximo possível de uma decisão "oficial", mas é difícil se livrar do hábito de 8,3 (e, de maneira assustadora, ainda ocasionalmente relevante em 2013).

Bandrami
fonte
4
O pior é que a minha instalação do Notepad ++ parece estar errada :-(
Samuel Harmer 28/07
35
A convenção de sufixos de três letras é obsoleta há quase duas décadas. Na verdade, eu argumentaria que a World Wide Web a preteriu nos anos 90. É ofensivo que alguém tente se importar. O suficiente para que eu registrasse um bug em qualquer software que se quebre por causa disso.
Dave
3
A página Categoria da Wikipedia : extensões de nome de arquivo lista entradas para .a , .o e .z . De alguma forma, ele perdeu .c e .h . Essas extensões de letra única nos ajudam a ver que as extensões devem ter o tempo necessário, mas não mais (para citar A. Einstein ).
precisa saber é o seguinte
19
Chamei meu arquivo .ymle não há nada que você possa fazer contra ele.
bvdb 9/09/19
4
@Dave Vou manter seu feedback valioso em mente. ( salvando seus comentários para DOCUME~1.HTM. )
bvdb 23/03
31

EDITAR:

Então, o que devo usar? A extensão apropriada de 4 letras sugerida pelo criador ou a extensão de 3 letras encontrada no oeste selvagem da Internet?

Esta pergunta pode ser:

  1. Um pedido de aconselhamento; ou

  2. Uma expressão natural dessa emoção em particular que é experimentada, enquanto se observa que alguma recomendação oficial está sendo desconsiderada - proeminente ou mesmo predominantemente.

As pessoas diferem em sua predileção pelo seguinte:

  1. Conselho oficial; ou

  2. A preponderância da prática.

Obviamente, é improvável que eu o influencie, sobre qual desses dois caminhos você prefere seguir!

No que se segue (e, no espírito da ciência), apenas faço uma hipótese sobre o que (meramente por uma questão de fato) levou a maioria das pessoas a usar a extensão de três letras. E me concentro em causas eficientes.

Com isso, não pretendo exortação moral. Como você deve se lembrar, o fato de que algo é, não implica que deveria ser.

Seja qual for sua inclinação pessoal, seja para seguir um caminho ou outro, não faço objeção.

(Fim da edição.)

A sugestão de que essa preferência (no uso na vida real) foi causada por uma limitação de 8,3 caracteres do DOS, IMO é um arenque vermelho (incorreto e enganoso).

Em agosto de 2016, as contagens de pesquisa do Google para YML e YAML eram de aproximadamente 6.000.000 e 4.100.000 (com dois dígitos de precisão). Além disso, a contagem de "YAML" era injustamente alta porque incluía menção do idioma pelo nome, além do uso como uma extensão.

A partir de julho de 2018, a contagem de busca do Google para YML e YAML foram de aproximadamente 8.100.000 e 4.100.000 (mais uma vez, a dois dígitos de precisão). Portanto, nos últimos dois anos, o YML praticamente dobrou em popularidade, mas o YAML permaneceu o mesmo.

Outra medida cultural são os sites que tentam explicar as extensões de arquivo. Por exemplo, no site do FilExt (em julho de 2018), a página do YAML resulta em: "Opa! O banco de dados FILEXT.com não possui nenhuma informação sobre a extensão do arquivo .YAML".

Visto que ele possui uma entrada para YML , que fornece: "YAML ... usa um arquivo de texto e o organiza em um formato legível por humanos. 'Database.yml' é um exemplo típico quando o YAML é usado pelo Ruby on Rails para se conectar a um banco de dados ".

Em novembro de 2014, o artigo da Wikipedia sobre a extensão YML ainda afirmava que ".yml" é " a extensão do arquivo para o formato de arquivo YAML" (ênfase adicionada). Seu artigo YAML lista as duas extensões, sem expressar uma preferência.

A extensão ".yml" é suficientemente clara, é mais breve (portanto, mais fácil de digitar e reconhecer) e é muito mais comum.

Obviamente, essas duas extensões podem ser vistas como abreviações de uma extensão longa e possível, ".yamlaintmarkuplanguage". Mas programadores (e usuários) não querem digitar tudo isso!

Em vez disso, nós programadores (e usuários) queremos digitar o mínimo possível e ainda assim sermos inequívocos e claros. E queremos ver que tipo de arquivo é, o mais rápido possível, sem ler uma palavra mais longa. Digitando quantos caracteres cumprem esses dois objetivos? A resposta não é três (3)? Em outras palavras, YML?

A página Categoria da Wikipedia : Extensões de nome de arquivo lista as entradas para .a , .o e .Z . De alguma forma, ele perdeu .c e .h (usado pela linguagem C). Esses exemplos de extensões de letra única nos ajudam a ver que as extensões devem ter o tempo necessário, mas não mais (para citar Albert Einstein).

Em vez disso, observe que, em geral, poucas extensões começam com "Y". Por outro lado, a letra X é usada para uma grande variedade de significados, incluindo "cruzado", "extensível", "extremo", "variável" etc. etc. (por exemplo, em XML). Portanto, começar com "Y" já transmite muita informação (em termos de teoria da informação), enquanto começar com "X" não.

Linguisticamente falando, portanto, o acrônimo "XML" possui (de certa forma) apenas duas letras informativas ("M" e "L"). "YML", em vez disso, possui três letras informativas ("M", "L" e "Y"). De fato, o conjunto existente de acrônimos começando com Y parece extremamente pequeno. Por implicação, é por isso que uma extensão de arquivo YAML de quatro letras parece muito super especificada.

Talvez seja por isso que vemos na prática que a pressão "linguística" (em uso natural) para prolongar a abreviação em questão para quatro (4) caracteres é fraca, e a pressão "linguística" para encurtar essa abreviação para três (3) caracteres é forte.

Puramente como resultado, provavelmente, desses fatores (e não como endosso oficial), gostaria de observar que as últimas notícias do site YAML.org (de novembro de 2011) são sobre um projeto escrito em JavaScript, JS-YAML , que, por si só, prefere internamente usar a extensão ".yml".

Os fatores acima mencionados podem ter sido os principais; no entanto, todos os fatores (conhecidos ou desconhecidos) resultaram na extensão abreviada de três (3) caracteres, tornando-se o uso predominante para YAML - apesar da preferência dos inventores.

".YML" parece ser o padrão de fato . No entanto, os mesmos inventores foram perspicazes e corretos sobre a necessidade mundial de uma linguagem de dados legível por humanos. E devemos agradecê-los por fornecê-lo.

MarkDBlackwell
fonte
1
O uso da extensão de arquivo ".yml" para o YAML lista muitos exemplos concretos, recomendações e definições de configuração com o padrão ".yml" encontrado na natureza.
MarkDBlackwell
1
Se você citar Wikipedia, é melhor você ler um pouco mais: yaml artigo 's diz extensão Matrícula: .yaml,.yml
Charles Follet
1
@CharlesFollet, o que você citou foi de fato a base da minha declaração: "O artigo da YAML lista as duas extensões, sem preconceitos" (agora editado para "sem expressar uma preferência"). As pessoas usam as duas extensões; ainda ".yml" predomina.
precisa saber é o seguinte
19
Lembre-se sempre de que a Wikipedia é uma enciclopédia colaborativa . Editei a página de desambiguação do YML para refletir que é apenas " uma extensão comum " em vez de " a extensão".
NiñoScript 27/03
2
Há uma linguagem específica do domínio YML (marcação que gera XML) por muitos anos, talvez até pelo YAML. É provável que sua contagem de pesquisa do Google não tenha contado referências YML, bem como referências YAML com defeito. YAML não é uma especificação excessiva, está usando o nome apropriado para evitar confusão.
Anthon
4

Depois de ler muitos comentários on-line sobre isso, minha primeira reação foi que esse é basicamente um daqueles debates realmente sem importância. No entanto, meu interesse inicial era descobrir o formato correto para que eu pudesse ser consistente com minha prática de nomeação de arquivos.

Para encurtar a história, o criador do YAML está dizendo .yaml, mas pessoalmente continuo fazendo .yml. Isso só faz mais sentido para mim . Então, fui em busca de afirmações e logo percebo que o docker usa em .ymltodos os lugares. Venho escrevendo docker-compose.ymlarquivos esse tempo todo, enquanto você continua vendo os documentos do kubernetes kubectl apply -f *.yaml...

Portanto, em conclusão, ambos os formatos são obviamente aceitos e, se você estiver do outro lado (por exemplo: sistemas de gravação que recebem um arquivo YAML como entrada), deverá permitir os dois. Parece outro caso de cobra versus caso de camelo ...

JackyJohnson
fonte
2
Então, o que faz mais sentido para você usar para o YML linguagem específica de domínio (que tem sido em torno de provavelmente enquanto YAML): o .yl, .ymou a .mlextensão?
Anthon
2

.yamlaparentemente é a extensão oficial, porque alguns aplicativos falham ao usar .yml. Por outro lado, não estou familiarizado com nenhum aplicativo que use o código YAML, mas falhe com uma .yamlextensão.

Eu apenas tropecei nisso, como estava acostumado a escrever .ymlem Ansible e Docker Compose. Por hábito, usei .ymlao escrever arquivos Netplan que falharam silenciosamente. Eu finalmente descobri o meu erro. O autor de um papel popular do Ansible Galaxy para a Netplan faz a mesma suposição em seu código:

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

No entanto, qualquer arquivo com uma .ymlextensão é ignorado pelo Netplan da mesma maneira que arquivos com uma .bakextensão. Como o Netplan é muito silencioso e não fornece nenhum feedback sobre o sucesso, mesmo com netplan apply --debuguma configuração que 01-netcfg.ymlfalhará silenciosamente sem nenhum feedback significativo.

ChrisW
fonte