💾 Archived View for perplexing.space › 2022 › trendy-programming-languages.gmi captured on 2023-01-29 at 02:17:39. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
2022-08-23
I once worked at a job so hopelessly dysfunctional that employees advocated openly for pursuing tools and projects to polish their resumes. I understand now, years later, that this sort of thing is broadly applicable within the industry but speaking openly about it at work seemed odd. It was in this setting that I picked up Clojure. It isn't my favorite lisp and I wouldn't really advocate using it but it was fine.
Having some experience with what was at the time a new and exciting language really did wonders for my job prospects and shortly after I job hopped to a role that required I learn Scala. Having experience in a functional language on the JVM made me a good candidate I guess. The work was on an ill-conceived project that stemmed from one individual's personal career goals. I know this for a fact because they quit after implementing enough of the project and began contracting with the same team and project at astronomical rates. My boss complained bitterly and didn't do anything to fix the issue except hire me. Scala was dreadful but I'm not sure it wasn't just this project. Still, I would never use it again and I actively avoid projects using it.
Later on I switched jobs and ended up writing Python and C++ on physical Linux boxes. This was the most productive environment I've experienced. I was hired because the company was having difficulty finding Python programmers, I don't think my past experiences with any particular technology mattered too much.
The next job was industry-adjacent but plagued with suspect choices. Despite doing less work they needed more servers. Despite having the simpler business model they struggled to execute. Technical leadership was certain that the key to moving quickly lay in selecting a single programming language across the entire technical stack. They picked TypeScript of all things but I impressed them with my knowledge of type systems and the relative merits and pitfalls coming from something like Scala. This last sentence is a bit of a gas because the hiring manager didn't know Scala and wasn't a good TypeScript programmer; all you should really take away is that I bullshitted my way in. Unsurprisingly this wasn't a good fit for me and I struggled to care much when TypeScript didn't turn out to be a sensible choice for the work being done, it was if anything the least of the problems facing the company.
I job hopped again and found myself cornered into doing microservices written in Go and running on Kubernetes. This was objectively a bad idea and I'll probably be forced to repeat it because the whole industry is nuts. The real insider tip from this experience though is that if you so much as read the Go homepage you can bluff your way into a job writing Go.
By this point, through no real fault of my own, my resume is starting to look very trendy. I garner interest not because I'm any good but because it looks like I work on the sorts of things that resume-driven engineers want to work on. I would not attribute any real success to these dubious technical decisions but certainly these more exotic choices limited hiring and slowed development.
Now I'm somewhere new. They are paying me to learn Rust this time. Having been paid to write in something like a dozen different languages at this point, the promise of faster development and fewer bugs sounds awfully hollow. I can write bugs in any language.
I still like programming languages but no one ever picks my pet favorites. Maybe I need to start advocating for rewriting things, maybe that's the next stage of technical leadership.
If you find yourself advocating for tools or technologies do me a favor and at least be honest about the motivations.