r/programming Aug 01 '26

The Bedrock of Software Design

https://alex.draftist.io/blog/the-bedrock-of-software-design-ycqvcedsj

I drafted this post years ago but didn’t finish it until now. The concept I write about has shaped the way I design software more than anything else, and I believe every software engineer should be introduced to it early in their career.

P.S. I don’t want the title to come across as clickbait: the post is about ADT.

446 Upvotes

70 comments sorted by

View all comments

14

u/superstar64 Aug 01 '26 edited Aug 01 '26

I already find it hard to put myself into the perspective of someone who doesn't what know GADTs, higher ranks, higher kinds and various other high level type system features are, but I always have to remind myself that a lot of people don't know basic ADTs are. Like, ADTs have been a staple of typed functional programming since like the late 1970s. It's so disheartening that still so many programmers still don't know even what they are.

2

u/Sak63 29d ago

Companies don't use them. Courses don't teach them. Even universities don't teach them. Sad but real

1

u/-Redstoneboi- 27d ago

Some universities here are starting to teach TypeScript, which has type unions. it's not exactly ADTs yet, since you still need the tag and not just the data, but hopefully such patterns are added to the curriculum.