House of pain: If YAML makes you swear, shout louder – the agony is there for a reason
- Reference: 1620119710
- News link: https://www.theregister.co.uk/2021/05/04/yaml/
- Source link:
Which is why JetBrains feels so comfortable talking about pain. The company has launched a cloud-hosted version of its [1]TeamCity continuous integration (CI) system, which exists to manage the pipeline that all trendy IT shops have installed and through which the intellects of brave men and women are turned into saleable products.
The pipeline, you may remember from your days at dev school, replaced the waterfall of the ancients. By automating test and production and removing the hidden world of silos, smooth well-ordered efficiency could be married to rapid change. The marketing was impeccable, because the bad things about non-agile dev really were that bad. But guess what? Pain is still here. It's just moved around a bit.
[2]
[3]
[4]
In particular, JetBrains has identified the agony of YAML as being strong enough to justify their particular brand of analgesic. And it's true – claiming that YAML causes suffering is like saying cutting your toenails with a chainsaw will reduce your shoe size. The solution, says the IDE and domain specific language (DSL) company, is an IDE and a DSL.
Hold hard. How come devops, the saviour of the IT world, has this pain point in the first place? What did we miss last time? YAML is, admittedly, something of a hot mess. It has structural faults – syntactic white space may be the stupidest idea since God invented the pigeon – and allowing non-quoted strings is as unpleasant as clothes-optional day at a trampoline club. But most of the problem isn't really YAML's fault, it's that what it's being asked to do is specify and control unfettered complexity.
Is that anything else's fault? You can click the mouse pointer of blame on Kubernetes, which consumes most of the world's YAML and which, by dint of doing quite so many different things, demands quite so many ways of describing how they can be done. DSLs certainly hide complexity beneath prepackaged, tuned methods of handling them. But that complexity exists because, well, IT has to work in the real world and that's a very messy place. If you want to do something that the DSL isn't very specific about, the pain comes back.
Where does it hurt?
Perhaps the clue's in the pain itself. In the messy real-world system of our bodies, pain isn't just there to make us miserable – a task that it is admittedly extremely good at.
It's there to signal that a problem exists, define where it is, and provide feedback on any mitigation we can try. And as humans, we learn that many mitigations to reduce pain – gin, wildly inappropriate sex, Minecraft – can do more harm. For pain to do good, it must have feedback.
[5]
Marketing always claims to understand that feedback. We are clever people, we have found the solution by analysing it, buy our stuff. But we aren't part of that loop, except in the abstract. TeamCity may remove YAML misery, but what if you like, are skilled in and are very productive with, YAML? Having to learn an alternative is gonna hurt, sucka.
They don't mention that in the marketing. Which is not to say anything particular about JetBrain, who are undoubtedly fine people with a good product; it's true of any change in how complex systems work where the complexity is just part of the physics. You can find hundreds of tolls and techniques for soothing the agony of YAML, but which works? The pain moves around, but where is it truly least?
Let's replicate the useful bits of mammalian pain by teaching our robot servants to feel it. There are many ways to make computers feel pain, and by that feeling help define where it comes from and provide that feedback on mitigation. Sentiment analysis is the creepiest, with AIs analysing keystrokes, mouse twitches, pauses, vocabularies and facial expressions. You don't want management anywhere near that, it's one short step away from re-education camps and attitude adjustment.
[6]
But having a hotkey to mash when you're frustrated by a tool's intransigence or a badly structured lump of refactoring fodder; that could tell you over time where your own daily devils live, and across a pipeline, across a company or even across the industry – we're all connected, right? – then real information will flow, and not manufactured by a company with an agenda to push. Open source market research is far less stupid than making a tab and a space mean different things.
In fact, in almost every development environment known to humanity and most especially including those built out of home workers, the most accurate and least intrusive way of finding the pain would be to teach our machines to recognize, grade and collate swear words. There is no finer, better modulated vocabulary for expressing pain, and our machines are finally up to the task of parsing our profanities. They are how we "do" pain.
The suggestion is only half in jest. Where open source has taken over from closed systems, it has allowed us to create and recreate new and better ways of working – the modern pipeline would be impossible otherwise. Where we communicate our pain with each other, the community improves. Pain is part of that, and it deserves to be liberated from its role as a tool of marketing and returned to the community as a channel of signalling, identifying and fixing problems. Next time you call a YAM file a fatherless son of a canine, you could be doing the world a favour. In fact, I'd swear to it. ®
Get our [7]Tech Resources
[1] https://www.theregister.com/2021/04/29/jetbrains_takes_teamcity_to_cloud/
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YJEbOlzGCCBCsj6xHAkKpgAAAMs&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YJEbOlzGCCBCsj6xHAkKpgAAAMs&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YJEbOlzGCCBCsj6xHAkKpgAAAMs&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YJEbOlzGCCBCsj6xHAkKpgAAAMs&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YJEbOlzGCCBCsj6xHAkKpgAAAMs&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[7] https://whitepapers.theregister.com/
"Where open source has taken over " " recreate new and better ways of working"
It's the other way round - open source made everything more complex and less manageable, since everybody and its dog, cat, hamster stated to design new silly ways to make things without thinking too much, and many others found them interesting just because they were different - "fashion driven development".
And of course, you had to be able to handle everything in VI and human-readable files because building management tools requires time and RAD tools which are sorely lacking in the new open source world based on primitive languages for which UI are an afterthought. Plus the graybeard who believe the command line is the only virile way to use a computer.
IT is going backwards. It's adding complexity without the proper management - going towards and heavily fragmentation even it the OS kernel may be almost the same. And because some advanced management tools required a bit team of dedicate developers, they don't exist where there's no money to be made.
Devs blamed the Microsoft INI file - they are replication it over and over - with more complexity and less tools to quickly and safely manage them. YAML is a perfect example - a format nobody needed but for reason I never understood was quickly adopted. Maybe it's still better then configuration files written in JSON - a format born for data exchanged (no comments, for example), but quickly used by clueless programmers for configurations also.
Open source is driving IT into a mess of brittle application built with pieces collected all over the internet and with a plethora of different standards mish-mashed into something barely usable and with an ugly UI. The latest supply-chain attacks are only the beginning.
syntactic white space may be the stupidest idea since God invented the pigeon – and allowing non-quoted strings is as unpleasant as clothes-optional day at a trampoline club.
Alas, the perpetrators are free to go and introduce the same on their next creation