Jenkins DSL (Domain Specific Language) is a plugin through which jobs can be defined in a programmatic manner which is human readable. Through this plugin, the UI configurations are intuitively translated into code. That way, you can create a version for the job and also maintain the history of the changes. The converted code is in a Groovy-based language. Example,
if you have a parameter definition as below in the config.xml file:
<hudson.model.StringParameterDefinition>
<name>MESSAGE</name>
<defaultValue>Welcome to Hackr.io</defaultValue>
</hudson.model.StringParameterDefinition>
The corresponding code will look like:
parameters {
stringParam('MESSAGE', 'Welcome to Hackr.io')
}