What is YAML?
It stands for ‘Yet Another Markup Language’ in the beginning. Later, it became ‘YAML Ain’t Markup language’ to make one thing clear: the language is only used for data.
The worth-knowing information to know about YAML is mentioned next.
- It’s not a programming language. It’s a serialization language helping in formatting the configuration file and making the available data human-friendly. Hence, it’s considered a viable alternative to JSON that makes data less readable for humans.
- This language works independently and is not severely impacted by the operations of simple syntax.
- It can easily store all the data that JSON and XML can store.
- The key reason behind its huge popularity becomes its wide support and ability to support native data.
- It’s based on a steady data model and follows one-pass processing.
- It's a case-sensitive language.
Those were a few of the key characteristics of YAML that set it apart from the rest.
- It supports multiple documents
YAML will help you use and process various documents simultaneously. Just use three dashes (---) to separate all the documents. Suppose you have two documents; one explaining the sales generated and the second displaying the expenses of a restaurant on a given day. Now, this is how you can work with these documents in YAML.
restaurant: fine dine
restaurant: fine dine
- You’re allowed to add comments in codes
Code commenting in YAML is one of the most-loved features. Developers can add specific comments on a code at the time of construction. Developers often forget the purpose of a code and end up using it at the wrong time & the wrong place.
With code commenting, it’s easy to remember a specific detail about a code. To add comments, developers must use the # symbol before the comment.
As compared to traditional syntax, the YAML syntax is highly clear and is free from format symbols like square braces, quotation marks, square brackets, and so on. Because of this clean nature, YAML syntax is easy to scan.
With YAML, you’re allowed to give precise feedback. A YAML feedback will indicate a specific line eliminating the hard work that one has to make to find out the exact problematic line.
In YAML, hollow spaces are denoted by spaces. Tabs are not used and are allowed here. This is a good practice as it avoids intentional tabs use that can cause huge trouble in the future.
YAML provides a referencing facility for data objects and permits developers to generate recursive data. Also, referencing promotes the generation of advanced data objects and structures.
- It’s a highly user-friendly language
Getting started or using YAML isn’t very tough. It’s very user-friendly as it’s based on Unicode characters. Those who’re dealing with codes must be aware of the fact that Unicode ensures that few codes are featuring structure information while few are consisting of data details. By all means possible, it ensures that data is presented in a very natural manner.
YAML Data Types
YAML is gaining popularity because of many reasons and its various data type support is one of them. Next, we’re going to explain the commonly-supported data types.
The language supports multiple numeric data types and uses integers like octal, decimal, and hexadecimal. In addition, floating points are also supported.
- Key-Value Pairs and Dictionaries
This is the foundation of YAML. You must understand that every item, used in the YAML document, should be a part of a minimum of one dictionary. In the key-value pair, the key must be a string while the value is a scalar. Value could be any data type while string could be a dictionary and number.
YAML lets you enter the null data types with the help of an unquoted null string or tilde.
The string data types of YAML are presented in a Unicode format and don’t require specific definition. In the case of escape sequence handling, one must use double quotes to define the string state.
YAML uses specific keywords to explain the boolean values. The keywords used here are True, On, and Yes if the boolean statement is true. When a statement is false then the keywords used are No, False, and Off.
YAML allows dictionaries to be put inline.
YAML lets you explain the arrays in single or multiple lines. The multiple-line format is preferred in case of lists featuring complex objects. Scalars are avoided in general in the case of lists.
Here, an array can feature a verified YAML value that has no same data type in the concerning list.
For better understanding, here is an easy YAML syntax example for you.
What is YAML used for?
YAML has wide use cases. However, it is most-used in configuration file creation. Because of its impressive code readability, it’s now used everywhere in the place of JSON. So, anyone willing to prepare configuration files are now preferring YAML.
Its syntax also used widely in Kubernetes services.
If you use Ansible, you can use YAML for creating Ansible playbooks.
YAML and Kubernetes
As mentioned above, YAML can be easily used for Kubernetes services. Now, let’s try to understand how.
As we all know, Kubernetes require defined and actual states. k8s objects are used to define the cluster state. In Kubernetes, YAML is widely used for creating k8s resources like objects and pods.
Also, it plays a key role in Kubernetes deployment. When you’re using Kubernetes API, the crucial kubectl information is declared in a YAML file. Kubectl, on its own, converts the concerning file into a YAML file as an API request is raised.
Developers, involved in Kubernetes API development, often use YAML files for defining the state.
YAML vs. JSON
As YAML is an ideal alternative to JSON, there will always be a close comparison between these two. Hence, we’re going to cover YAML vs JSON next.
- YAML is very easy to use and read but JSON is not a very user-friendly language. Commenting in YAML is permitted but there is no such facility offered in JSON.
- When it comes to explaining strings, YAML supports double and single quotes. But, JSON only permits double quotes.
- These two have different kinds of root nodes. For instance, YAML allows root nodes of any valid data type while the root node in JSON is not related to the array and objects.
- In YAML, the space character decides the hierarchy. JSON has a different approach as brackets and braces are used for array and object denotation.
- Last but the most important thing to remember is: YAML is nothing but a JSON superset. Because of this, it’s possible to paste the JSON in a YAML format file. These two formats are interchangeable.
YAML in DevOps
YAML formatting and syntax are very useful for the DevOps team as it is used extensively by the team to define the development pipelines. The language permits developers to state the pipeline features such as source and mark-up files.
As pipelines are code versioned, it’s easy for DevOps teams to spot the errors and coding issues at an early stage which further leads to the quick fixture.
Advantages and Disadvantages of YAML
Finally, let’s weigh down the advantages and disadvantages of using this language, and knowing them will help you use it accurately.
- YAML files are very easy to work with as it’s compatible with a text editor. It’s so easy that even beginner developers can easily work with this.
- YAML permits developers to switch files between different programming languages.
- As YAML files are Unicode-supportive, they became very easy to handle.
- YAML files are highly expressive and extensible which makes them very easy to use.
- It works with most programming languages.
That was all about YAML's advantages. Even though they are impressive, they are not enough to ignore the disadvantages that come with YAML. Let’s talk about the demerits of this language.
- It’s a relatively new format and not many resources are offered.
- One will have to struggle a little to display the data configuration in the hierarchy.
YAML is going to rule over the world in the future as the current trends are indicating this. It’s observed as one of the most viable JSON alternatives and if you haven’t used it until now, we’re sure that you’re going to use it in the future.
When you do so, refer to this guide from Wallarm to gain deeper insights into YAML. It explains its key meaning, its key features, and other related concepts that every new learner must be aware of.