my build file is executable code.
my CI/CD pipeline is executable code.
my .YAML files implode whenever a gust of wind moves a space or tab the wrong direction.
..
BUGS EVERYWHERE!
...
....
now just hear me out mmk?
.....
WHAT IF XML WAS THE RIGHT CHOICE ALL ALONG???
Spring cloud steam exposes this issue in all its glory. So many similar configurations, where the only difference is the level of indentation. “Was that supposed to be under spring.cloud.stream.bindings.kafka or under spring.cliud.stream.kafka.binders?” 🤔
so why don't we just make the conf file also exexutable?
I still like to use @ApacheGroovy based configs for groovy projects.
easy to read and write, ide support and so much more...
but it is not that easy for ides to autocomplete/check even with that annotation, right? that is (one) of the reasons Gradle is "migrating" (not exactly migrating, as groovy will still be supported) to kotlin
I may be old. But still shocked when developer say "I don't understand Xsd". I have some configuration file in xml where tags are verbs, so that users just have to write sentence with predefine grammar. They are unbeatable in clarity
Problem with schemas is that people forget to update them all the time... when I was younger I worked with quite a lot of fintech apis and never encountered a bank with 100% up to date wsdl file, not one single time... and those were some really serious companies otherwise
Not saying it's better, has it's cons and pros. Doesn't give you a sense of false security, you know you can't trust the tools to automate everything. Of course, with proper schema you can trust the tools, which is even better - but again schema adds the layer of complexity.
Yeah. I love(d) how i just can look into the xsd and get quite a good understanding about how everthing belongs together. Although i saw some bad xml too, i would still prefer it. The 'old' spring xml rocked hard.
Isn't this what often happens when we try to replace something existing with something less complex. We forget the complexity is not accidental it is intended. So we strip away some features/complexity and make it look prettier and now we have the next cool thing. 🙂
I was saying this at work this week and I was just as hesitant as you are in this tweet.
I feel like the syntax could be improved, but fundamentally it’s powerful technology.
I had the same discussion with my class full of developers last week. We had stray tabs, missing indents, and "smart quotes" sneaking into yaml everywhere. Cloud-init wasn't having it.
This looks fascinating. I have a few other yaks to shave before I take the “different day, different build system” yak for a run. (currently using @droneio ATM). Thanks for the link :-).