You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: blog/posts/2025-05-29-a-break-from-programming-languages.md
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ My interest in pushing the frontier of programming language design has always be
44
44
45
45
# Ten years of programming languages
46
46
47
-
I turned twenty eight this year. Almost exactly ten years ago, I started my first professional software engineering job. It was a fairly mundane position writing Ruby on Rails and JavaScript, but even then, I spent a great deal of free time pursuing the programming language hobby projects that truly caught my fancy. My first professional experience working with Haskell would come less than a year later, experience that would soon inspire my hobby research project to implement a Haskell-style type system within the Racket macro system. The better part of the rest of my career to date has followed more or less directly from that formative time.
47
+
I turned twenty eight this year. Almost exactly ten years ago, I started my first professional software engineering job. It was a fairly mundane position writing Ruby on Rails and JavaScript, but even then, I spent a great deal of free time pursuing the programming language hobby projects that truly caught my fancy. My first professional experience working with Haskell would come less than a year later, experience that would soon inspire my hobby research project to implement a Haskell-style type system within the Racket macro system. The the majority of my career to date has followed more or less directly from that formative time.
48
48
49
49
After a decade, it seems fair to reflect a little on what I have learned, what I managed to achieve, and maybe more significantly, what I did *not*. Something one learns very quickly upon beginning any serious work on programming languages is that they are startlingly, unforgivably *hard*. A vast array of dizzyingly smart people have been working on the problem of program specification for seventy years; there are not many pieces of low hanging fruit left on the tree, and any new gains tend to be very hard won.
50
50
@@ -66,11 +66,11 @@ It should come as no surprise that programming language design is largely a soci
66
66
67
67
Still, the history of mainstream programming languages is essentially a story of programmers vocally and emphatically rejecting what eventually proved to be some of the most incredibly successful innovations in the history of the field. Assembly programmers largely laughed at FORTRAN, but just a few decades later, there were nevertheless very few remaining assembly programmers. First-class functions were widely derided as needlessly complicated and confusing until programmers were forced to finally take the time to learn to use them once JavaScript became a load-bearing language by historical accident, and within a decade, they became a required feature for every major programming system. Sophisticated type systems largely retain a perception of overengineered, ivory-tower elitism, but many of the programmers who hold those very opinions have enthusiastically adopted Rust, a language that features a type system so complex that idiomatic Rust code can easily put Haskell programs to shame.
68
68
69
-
Discussions of programming languages are, by and large, emotionally driven shouting matches based on anecdotes and gut feelings. Surprisingly (or perhaps not), although most working programming language theorists and compiler engineers have a far more informed perspective on this subject (and do at least tend to refrain from petty debate), disparaging remarks directed towards languages not to the speaker’s taste are hardly unheard of even at academic conferences dedicated to the subject. I want to be very clear that I do *not* think this is somehow a problem, and I certainly do not think it is indicative of some toxicity within the community—they are by and large a group of truly amazing, wonderful people, and such comments are usually delivered with tongue planted firmly in cheek. All the same, my point is simply that programming languages are an emotional, opinionated subject in a way that seems perhaps inherent to the craft, [a topic I explored at some length all the way back in 2019.](/blog/2019/10/19/empathy-and-subjective-experience-in-programming-languages/)
69
+
Discussions of programming languages are, by and large, emotionally driven shouting matches based on anecdotes and gut feelings. Surprisingly (or perhaps not), although most working programming language theorists and compiler engineers have a far more informed perspective on this subject (and do at least tend to refrain from petty debate), disparaging remarks directed towards languages not to the speaker’s taste are hardly unheard of even at academic conferences dedicated to the subject. I want to be very clear that I do not think that is somehow indicative of some toxicity within the community—they are by and large a group of truly amazing, wonderful people, and such comments are usually delivered with tongue planted firmly in cheek. All the same, my point is simply that programming languages are an emotional, opinionated subject in a way that seems perhaps inherent to the craft, [a topic I explored at some length all the way back in 2019.](/blog/2019/10/19/empathy-and-subjective-experience-in-programming-languages/)
70
70
71
-
I do earnestly believe that the field of software engineering would benefit from more openness to new ideas and willingness to experiment with new technologies. I also think it would be enormously refreshing if programmers did not nearly universally speak with an expert’s confidence on subjects they have only passingly encountered.[^2] Nevertheless, I do not really expect programmers’ tribalism to diminish anytime soon, so the pragmatist in me understands their nature imposes real limitations on what we as a field can meaningfully accomplish.
71
+
I do earnestly believe that the field of software engineering would benefit from more openness to new ideas and willingness to experiment with new technologies. I also think it would be enormously refreshing if programmers did not nearly universally speak with an expert’s confidence on subjects they have only passingly encountered.[^2] Nevertheless, I do not expect programmers’ tribalism to diminish anytime soon, so the pragmatist in me understands their nature imposes real limitations on what we as a field can meaningfully accomplish.
72
72
73
-
[^2]: I have often wondered if other engineering disciplines have anything to even begin to rival the collective overconfidence of the average Hacker News commenter. This is an earnest curiosity, not merely a rhetorical flourish; I do sometimes wonder what it is about my field of choice that engenders such disregard for the value of expertise.
73
+
[^2]: I have often wondered if other engineering disciplines have anything to rival the collective overconfidence of the average Hacker News commenter. This is an earnest curiosity, not merely a rhetorical flourish; I do sometimes wonder what it is about my field of choice that engenders such disregard for the value of expertise.
74
74
75
75
In my experience, most working programming language researchers have essentially resigned themselves to this fact, and the prevailing wisdom is to almost entirely decouple the value of the work from its impact. Even if an idea is broadly ignored by programmers today, if it’s a good enough idea, it will still make its way into some programming language in some distant tomorrow, as many ideas eventually have. Lexical closures were first applied to programming languages in 1975 but took a full thirty years to be broadly accepted. Algebraic datatypes were first introduced around the same time and have only recently found mainstream acceptance through Rust. Innovations take a long, *long* time to make the jump from research to practice in this field, and placing one’s sense of professional accomplishment in the fickle hands of mainstream programmers’ whims and preferences is a recipe for personal misery.
76
76
@@ -92,7 +92,7 @@ This was the hardest section of this blog post to write. It is easy to write abo
92
92
93
93
I want to be *excruciatingly* clear that I do not wish to mount any indictment of the Haskell community or any of the people in it. Many people seem to have a preconception of Haskellers as mean and elitist, and while I do get the sense there have been some historically bad actors that contributed to that perception, my general impression is that those people have been thoroughly expunged. I have never been the target of any memorably rude conduct, and I’ve definitely never felt targeted by any prejudice or discrimination, and if anything I have always felt universally warmly welcomed at every meetup or conference I have attended. I cannot speak for anyone but myself, and my experiences are necessarily limited. I cannot hope to claim with any certainty that no abuse has ever occurred or that it does not continue to occur within any Haskell’s myriad social spaces, most of which I have never participated in. Still, I am happy to be able to say that I have never personally experienced any real unfriendliness, and that is certainly not a factor in my dispassion for the language’s community. If anything, I feel I must extend a very genuine *thank you* for all the lovely support I have received from Haskellers over the years, and it is that support and enthusiasm that so often kept me motivated for as long as I was.
94
94
95
-
This is all simply to say that do not think it is the *fault* of anyone in particular for my lack of affinity for the Haskell community. Rather, I think perhaps it is just not a culture that I have ever especially related to. That probably does not even say very much, as I’m not sure there are many communities I *could* say that about. That says much more about me than it does about Haskell or Haskellers.
95
+
This is all simply to say that I do not think it is the *fault* of anyone in particular for my lack of affinity for the Haskell community. Rather, I think perhaps it is just not a culture that I have ever especially related to. That probably does not even say very much, as I’m not sure there are many communities I *could* say that about. That says much more about me than it does about Haskell or Haskellers.
96
96
97
97
It is admittedly tempting to say that perhaps I find these communities alienating in part because they lack people I identify with and relate to. After all, it is simply true that the Haskell community is *overwhelmingly* male, which really has felt lonely at times. It’s also true that the Haskell community tends to attract a lot of people who are mainly interested in Haskell because they find it intellectually interesting, or because they like category theory and enjoy libraries like `lens` that have explored those ideas, while I am really only interested in Haskell insofar as it is a practical vehicle for writing useful software. Nevertheless, there *are* other women who write Haskell and there *are* other people who care very much about writing useful software in Haskell, and that doesn’t seem to have radically altered my relationship to the community, so I think it would be disingenuous of me to claim that either of those flaws are substantially to blame.
98
98
@@ -110,15 +110,15 @@ It is comforting to look back on a decade’s accumulations and realize there is
110
110
111
111
I have not always accomplished all the things I set out to achieve. Some have, for some reason or another, gotten the better of me. Many of them, from my [math typesetting system](https://github.com/lexi-lambda/blackboard) to my [improvements to GHC’s arrow notation](https://github.com/ghc-proposals/ghc-proposals/pull/303), are things I hope to one day push over the finish line. But for now it is clear my heart is no longer really in them, so I think it is time for me to let them go. Perhaps others will find inspiration in them. Perhaps you will succeed where I did not.
112
112
113
-
It is a little sad to think about moving on from such a substantial chapter of my life. To date, I have spent nearly my entire career in this professional niche, and I suspect I will never fully leave it. It has been a pleasure to work with so many bright, lovely, inspiring people, and perhaps one day I will find myself eager to return once more. But for now, my interests are elsewhere, and despite the bittersweet feelings, there is also a very real excitement in the tantalizing opportunity to do something new.
113
+
It is a little sad to think about moving on from such a substantial chapter of my life. To date, I have spent almost my entire career in this professional niche, and I suspect I will never fully leave it. It has been a pleasure to work with so many bright, lovely, inspiring people, and perhaps one day I will find myself eager to return once more. But for now, my interests are elsewhere, and despite the bittersweet feelings, there is also a very real excitement in the tantalizing opportunity to do something new.
114
114
115
115
# What next?
116
116
117
-
It is a little amusing to think that, for me, what I find myself most drawn to after a decade of pursuing ever more exotic projects is something entirely mundane: I want to write utterly ordinary software. I want to work on a piece of software used by people to accomplish a task, and I want to take pride and satisfaction in doing it well.
117
+
It is a little amusing to think that what I find myself most drawn to after a decade of pursuing ever more exotic projects is something entirely mundane: I want to write utterly ordinary software. I want to work on a piece of software used by people to accomplish a task, and I want to take pride and satisfaction in doing it well.
118
118
119
-
I do not yet really have any idea what that might look like. It has been over six years since I last worked on anything that really feels like it could possibly fit that description, and even then, it was only a part of my job. Is it so strange that after spending fifteen years of my life trying everything I could to get away from spending all day wrangling a big ball of mud in a Java IDE, that experience sounds pretty cozy to return to?
119
+
I do not yet really have any idea what that might look like. It has been over six years since I last worked on anything that really feels like it could possibly fit that description, and even then, it was only one part of my job. Is it so strange that after spending fifteen years of my life trying everything I could to get away from spending all day wrangling a big ball of mud in a Java IDE, that experience sounds pretty cozy to return to?
120
120
121
-
In late 2022, I decided on a whim to reverse engineer and resurrect a 2008 Java browser game called [Shattered Plans](https://github.com/lexi-lambda/shattered-plans). While doing so, I had the opportunity to spend an awful lot of time in IntelliJ, and after years of acclimatizing to writing code in exotic languages with nothing more than a plain text editor, a terminal emulator, and a dream, the experience was almost viscerally thrilling. They say the grass is always greener, but even if that is true, I think I’d like to find it out for myself.
121
+
In late 2022, I decided on a whim to reverse engineer and resurrect a 2008 Java browser game called [Shattered Plans](https://github.com/lexi-lambda/shattered-plans). While doing so, I had the opportunity to spend an awful lot of time in IntelliJ, and after years of acclimatizing to writing code in fanciful languages with nothing more than a plain text editor, a terminal emulator, and a dream, the experience was almost viscerally thrilling. They say the grass is always greener, but even if that is true, I think I’d like to find it out for myself.
122
122
123
123
More to the point, my life is just very different now from how it was for most of my twenties. I was single, and it was easy to justify spending almost all of my time thinking about code, whether on the clock or not. It was hardly unheard of for me to spend twelve or even sixteen hours at my desk, just tinkering on something that had captured my attention. It was fun, and I’m glad I did it, but I am also very ready to work a simple, regular job I don’t feel the need to permanently devote a large portion of my soul to. It isn’t very romantic, but then, I have other things for that.
0 commit comments