Etki alanına özgü bir dil, yazdığınız kod miktarında büyük bir fark yaratır. Örneğin, aralarında çok fazla fark olmadığını iddia edebilirsiniz:
chmod 640 /my/file
ve
file { "/my/file":
mode => 640,
}
ancak bunlar arasında büyük bir fark var:
FILE=/my/file
chmod 640 $FILE
chown foo $FILE
chgrp bar $FILE
wget -O $FILE "http://my.puppet.server/dist/$FILE"
# where the URL contains "Hello world"
ve
file { "/my/file":
mode => 640,
owner => foo,
group => bar,
content => "Hello world",
}
Takım başarısız olursa ne olur? Senaryonuz bunu nasıl idare edecek? Ve betiğinizde bundan sonra $ FILE'in doğru içeriğe sahip olmasını gerektiren bir şey varsa ne olur?
echo "Hello world" > $FILE
İlk örnekte komut dosyasının istemcide çalıştırılması gerektiği halde kuklanın hepsini sunucuda derlemesi dışında birinin bir senaryoya girebileceğini savunabilirsiniz . Dolayısıyla, içeriği değiştirirseniz, yalnızca sunucuda değiştirmeniz gerekir ve yerleştirmek istediğiniz kadar sistem için onu değiştirir. Ve kukla bağımlılıkları yönetir ve sizin için sorunları otomatik olarak aktarır.
Karşılaştırma yok - uygun yapılandırma yönetimi araçları size zaman ve karmaşıklık kazandırır. Ne kadar çok yapmaya çalışırsanız, o kadar fazla kabuk senaryosu yetersiz görünür ve kukla ile yaparak daha fazla çaba harcayacaksınız.