Mark T. Tomczak<p>I've found that I don't have much of a liking for backend infrastructure and that 90% of my irritation with it is the need to keep changing problem languages and contexts.</p><p>In UI, everything is written in one, maybe two, languages and you can see the changes immediately.</p><p>In backend full-stack? Every day, every ticket is a new family of languages to use to solve related but non-overlapping problems. I'm using Python to write and maintain the RPC service (and configure the database), YAML to script workloads (except the bodies of workloads, those are Python), SQL to build query state (unless I'm in the Python layer, then I use sqlalchemy because let's be honest, SQL is an ass language and it's safer to use an object-oriented tool that can build a sanitized SQL query with parameters than to roll your own), YAML again to bind queries to interface (but a different YAML, this yaml is configuring something else), some light C++ to fix a bug in this compute engine, a bit of protobuffer to bind the compute engine to its workload, oh but wait, we need to drive the compute engine, so that's Python that writes the protobuffer and stuffs it in S3 than fires an RPC (another protobuffer, but here it's JSON representation of that proto) to a server to spin up the workload...</p><p>... and now I want to display it all, so let's pop into TypeScript for a bit to extend the browser-based UI and I want to deep-link from this to a Superset dashboard with a dynamically-configured filter, that's no problem the filter is modified by query params that are of the form.... <em>What the hell is Rison?</em></p><p>It's like this every day and it's getting to the point where opening my ticket queue feels like less of a fun challenge and more like "What fresh hell...?"</p><p>I'm reminded of a blog post Steve Yegge did ages ago, about a conversation between him and a staff engineer at Google about adding one new language. The staff engineer noted that the real cost wasn't in adding one more language and a few thousand lines of code... it was paid in the need for <em>every engineer into the future forever</em> to have deep knowledge of that language to maintain the code written in it. And, yeah, there's wisdom in that. Of course, in practice Google was little better... They'd put hard clamps on adding new languages and then internally multiply DSLs and frameworks about as fast as promotion cycles came around (this is not coincidence 😉 ).</p><p>Anyway... </p><p>To echo GLaDOS... I used to do just a game engine. You know what my days used to be like? I just coded. Nobody made me set up monitoring with Grafana. Or ran me in the Cloud. Or fed my data to a workflow engine. I had a pretty good life.</p><p><a href="https://mastodon.fixermark.com/tags/backend" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>backend</span></a> <a href="https://mastodon.fixermark.com/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a> <a href="https://mastodon.fixermark.com/tags/depression" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>depression</span></a></p>