J
James Hague
prog21.dadgum.com · Personal blog · on HN since 2007
James Hague, a programmer with a retro-games background, writes about Erlang, functional programming, software simplicity, and the history of computing.
What HN saysCommenters call it a classic and a favorite, note it is no longer active, and value the older developer's perspective.
472HN people shared it
221linked it in comments
515stories submitted
16Kstory points
3 months agolast shared
2007people per year2026
Most-shared posts
- 1A Ramble Through Erlang IO Lists32 people · 39 points · first shared 2010 · 1 comments on HN
- 2Things That Turbo Pascal is Smaller Than30 people · 873 points · first shared 2011 · 170 comments on HN
- 3Purely Functional Retrogames (2008)22 people · 193 points · first shared 2009 · 29 comments on HN
- 4A spellchecker used to be a major feat of software engineering (2008)20 people · 813 points · first shared 2008 · 199 comments on HN
- 5Organizational Skills Beat Algorithmic Wizardry20 people · 391 points · first shared 2013 · 67 comments on HN
- 6Write code like you just learned how to program15 people · 287 points · first shared 2010 · 51 comments on HN
- 7Functional Programming Doesn't Work (and what to do about it)11 people · 135 points · first shared 2009 · 54 comments on HN
- 8Free Your Technical Aesthetic from the 1970s11 people · 48 points · first shared 2010 · 23 comments on HN
- 9A Personal History of Compilation Speed11 people · 13 points · first shared 2009 · discussion on HN
- 10The Recovering Programmer (2010)10 people · 140 points · first shared 2010 · 26 comments on HN
- 11The silent majority of experts (2012)9 people · 741 points · first shared 2012 · 197 comments on HN
- 12Want to Write a Compiler? Just Read These Two Papers.9 people · 709 points · first shared 2008 · 77 comments on HN
- 13Retiring Python as a Teaching Language9 people · 299 points · first shared 2015 · 235 comments on HN
- 14Would You Bet $100M on Your Pet Programming Language? (2007)9 people · 150 points · first shared 2007 · 78 comments on HN
- 15On Being Sufficiently Smart9 people · 49 points · first shared 2009 · 11 comments on HN
What HN people wrote when they linked it
speps · 2023-07-14
A classic goto for me, would buy a book made of the articles: https://prog21.dadgum.com/
revorad · 2022-02-07
No longer active but one of my favourites - https://prog21.dadgum.com/
jakelazaroff · 2019-02-08
It's finished, but the prog21 archives have some real gems: https://prog21.dadgum.com
I also recently read through Eevee's blog and greatly enjoyed it: https://eev.ee
kybernetikos · 2018-01-09
You're right, but it's also true that some exist.
* Idle Words http://www.idlewords.com/ (while we're on this topic, http://idlewords.com/talks/website_obesity.htm is worth reading)
* Programming In the 21st Century http://prog21.dadgum.com/
Are both extremely fast, filled with interesting content and amazingly manage this without loading any javascript from a google domain.
anon_dev_123456 · 2017-09-02
I like Dadgum's blog. http://prog21.dadgum.com/
Being an older developer (please don't crucify me he's old compared to people I've worked with), his insight is really interesting to me.
I also use Stacknews to follow tools that interest me. This site aggregates articles and I can read them inline. It's like RSS on steroids.
https://stackshare.io/news
zem · 2017-03-20
two bloggers i admire tremendously are james hague [http://prog21.dadgum.com/, now retired from blogging :(] and julia evans [https://jvns.ca/]
while pretty much everything they write is high-quality and worth reading, there are clearly different levels of effort that went into any given post, so there's a good mix of content.
rybosome · 2013-08-12
I'd love to know what James Hague (http://prog21.dadgum.com/) thinks of Elixir. Erlang is one of his stronger languages, and he's written a lot of articles in the past that I really enjoy.
reddiric · 2013-03-22
I'm obviously outside of the audience this is for, and probably most other commenters since only one other person mentioned performance.
Perf??
And of course, this follows the "include a script tag to our server" cloud product web API pattern. This isn't setting off giant alarm-bells for anyone else? This gets past the sniff test?
The fact that this doesn't fail the sniff test for most people is probably why most web-apps feel like most web-apps feel, instead of like http://prog21.dadgum.com/.
lemming · 2011-10-17
The best blogs don't have daily content. In fact, the best blogs usually post once a month, or less - often much less. Here are some:
http://prog21.dadgum.com
http://www.moserware.com
http://ridiculousfish.com/blog
http://wingolog.org/
massung · 2025-10-18
Great post. I feel obligated to reply with a similar post a friend wrote a while ago that’s probably made the rounds here as well: https://prog21.dadgum.com/116.html
stonemetal12 · 2025-02-05
I don't disagree with the broader point I just think authors aren't a good example for a non-tool obsessed group of people.
I read https://prog21.dadgum.com/ somewhat regularly when I think I am getting to tool obsessed.
arunix · 2023-07-01
The other parts:
Part 2: https://prog21.dadgum.com/24.html
Part 3: https://prog21.dadgum.com/25.html
Part 4: https://prog21.dadgum.com/26.html
Follow up: https://prog21.dadgum.com/37.html
urschrei · 2023-05-02
The classic post about this phenomenon is James Hague's "The Silent Majority of Experts" from 2012: https://prog21.dadgum.com/143.html
Previously discussed here: https://news.ycombinator.com/item?id=31767890
Pr0ject217 · 2022-02-07
EDIT:
Paste this hacky snippet into your browser's console to save all of the links into your clipboard:
(() =>
{
let result = [...document.querySelectorAll('td a')]
.map((link) =>
link &&
!link.href.includes('ycombinator') &&
!link.href.includes('javascript:void')
? link.href
: ''
)
.filter(Boolean);
result = [...new Set(result)];
result.sort();
copy(result.join('\n\n'));
})();
Just to help, here's a compiled-list of all of the links shared here so…
sowbug · 2022-01-11
Because systems were simpler, the teams that produced them were simpler, too. In the 1980s it was common for one person to have developed an entire commercial program. Just take a look at The Giant List of Classic Game Programmers (https://dadgum.com/giantlist/) and note how many amazing games were written by just one person. It's a lot easier to QA a program when you wrote the entire thing and can manually test it in a few minutes.
But simpler has its cost. Whenever I fire up an emulator to relive my childhood Apple II days, I'm amazed how crude that stuff was. I remember magical worlds and incredible, fast animations. Today they're just flickering 16x16 blobs.
throwaway81523 · 2021-12-12
Maybe I missed something but I see some Turbo Pascal related tools there, and some binaries of TP, and some code written in TP, but not anything that looks like the source code to TP itself. I don't think that was ever released. A well-commented disassembly would be interesting and could possibly be created by devotees, of course.
I never actually used TP myself but it sounded great. These two articles made me interested in it:
* https://prog21.dadgum.com/116.html
* https://prog21.dadgum.com/47.html
a1369209993 · 2021-07-13
> But it's funny how just one tiny (and possible unintended?) "feature" turns out to be so dang useful that I keep using tail.
"Dangling by a trivial feature"[0] seems to be a pretty common issue when people recommend 'better' software.
0: http://prog21.dadgum.com/160.html
mkosmul · 2021-05-16
This blog's author wrote his own minimalistic static site generator: https://prog21.dadgum.com/
But, I think, doing things from scratch can be risky: ready-made solutions have a learning curve, but they also do lots of useful things which you might need, and writing all of that from scratch is really lots of work.
For me, it's always about find the right point on the spectrum between "write it myself to do exactly what I need" and "huge, bloated thing that claims to do everything anyone might ever need"
the_af · 2021-02-15
For anyone lacking the context (I just read someone claim "I've never heard of this author or his games").
Crawford, Eastern Front and Balance of Power were a big deal in their day. These were always niche games, but for those in the know, they were brilliant.
You can read more about this period of videogame history in the freely available online book "Halcyon Days": https://dadgum.com/halcyon/
Feel free to disagree with Crawford, but please don't do it out of ignorance. Know your history. Otherwise you'll be like someone who argues Charlie Chaplin has no business arguing about cinema, because he doesn't ring a bell to you and who watches silent black & white movies anyway?
If there's one thing I take out of this: how easy we forget the history of computing and videogames. Past celebrities and heroes get forgotten, unlike with book and movie authors.
avindroth · 2021-01-06
Note that when you ask a question like this, you will get a biased selection of answers. People who love niche languages for whatever reason will be more than ready to answer these sorts of questions. Passionate people are great, but you often are in need of some fresh opinions on the other side.
Here are some that helped me out immensely (I used to love Haskell but now I love it adequately):
https://prog21.dadgum.com/54.html
http://comonad.com/reader/2014/letter-to-a-young-haskell-enthusiast/
New technologies can be a psychological trap.
TurboHaskal · 2020-06-26
This is hardly a surprise. No matter if you like a language or not, you have to acknowledge that we don't develop software in a vacuum and we cannot ignore market trends. Don't fall in love with your technology [0].
(I won't comment on the Python 2 rewrite though)
I like Perl a lot. Out of the usual, interpreted dynamic languages, it is still my favourite. It's fun, incredibly expressive, got some things right early on (CPAN) and the community is probably the most entertaining out there.
It also caters to a kind of developer that no longer exists, or at least is in the minority now.
I will keep it as a sort of dirty pleasure for myself. Among the likes of Forth and Lisp.
[0] https://prog21.dadgum.com/128.html
bluemooner · 2020-04-11
Going beyond Turbo Pascal, the author is amazing! I've just discovered this blog and I'm amazed by how simple and relevant every article is.
Here are some of my favourites:
[1] https://prog21.dadgum.com/128.html
[2] https://prog21.dadgum.com/149.html
yumaikas · 2020-02-17
I don't at the moment, though I could write one up at some point.
The short answer, though, is that I knew I wanted green in the color scheme (due to having grown up in the tropics), and I liked how James Hague did his blog https://prog21.dadgum.com/
The rest was just iterating on that.
Nzen · 2019-10-12
For a perspective of a mathematician that came to evangelize theorem provers, I recommend Kevin Buzzard's MS 2019-09 presentation [0] about LEAN. He highlights cultural misunderstanding and apathy on both sides of the domain divide. He also references the idea that the people who might make the appropriate tools may not have stayed in academia. So, he's structured his courses around using LEAN with the indirect consequence that power users (undergrads) may choose to become open source committers.
[0] https://www.youtube.com/watch?v=Dp-mQ3HxgDE One hour of presentation and then 15 min of q/a. My favorite is around 1:04:00 when someone asks a second time why he disprefers coq, and Buzzard complains that it can't represent some advanced quotient type that he'd have to work around. I'm reminded of [1]
[1] https://prog21.dadgum.com/160.html Dangling by a trivial feature
gits1225 · 2018-08-19
This.
I'll be sourcing recommendations from the silent majority of experts as well (https://prog21.dadgum.com/143.html).
Reference: https://news.ycombinator.com/item?id=17784551.
itamarst · 2017-03-30
http://www.dadgum.com/halcyon/ is a book of interviews with classic video game programmers.
tantalor · 2017-02-13
The "fastest blog in the world" mentioned:
http://prog21.dadgum.com/
Both sites score 100 / 100 on desktop & mobile on Google PageSpeed Insights.
mtrn · 2017-01-30
James Hague, "a recovering programmer who has been designing video games since the 1980s...", http://prog21.dadgum.com
PeCaN · 2017-01-18
Erlang's GC is the perfect example of ‘work smarter, not harder’. It's not a particularly advanced GC, it just does so little work that it's soft-real-time capable.
As usual, excellent prog21 article: http://prog21.dadgum.com/16.html (I miss prog21 already…)
vog · 2016-12-30
> Imperative/OO [...] programming will just about always win over non-OO declarative programming in an analogy like that (i.e. a Simulation of a real world process)
Some time ago I thought that, too, but I'm no longer convinced. Directly mutating values (OO style) feels more natural at first, but then you have trouble with side effects and order of execution matters more than it should, you start keeping snapshots of the whole state just to get a consistent world state during computation, otherwise this whole mess produces a whole class of bugs on its own. These problem drive you more and more into FP direction, and the FP style definitely does have its merits in this regard.
I think the following article articulates this very well:
"A Worst Case for Functional Programming?"
http://prog21.dadgum.com/189.html