All blogs / Software / engineering practice
Programming in the 21st Century
Software / engineering practiceFunctional / PL theoryComputing historyEngineering blogs
- Posts
- 229 from 1 Jun 2004 to 4 Jan 2017
- Posting
- quiet since 2017
- Kind
- personal blog
- Feed
- https://prog21.dadgum.com/atom.xml
2017 1
2016 14
- Writing Video Games in a Functional Style
- Progress Bars are Surprisingly Difficult
- Learning to Program Without Writing the Usual Sort of Code
- Picturing WebSocket Protocol Packets
- Being More Than "Just the Programmer"
- The New Minimalism
- Optimizing for Human Understanding
- Fun vs. Computer Science
- Evolution of an Erlang Style
- Death of a Language Dilettante
- Moving Beyond the OOP Obsession
- On the Madness of Optimizing Compilers
- Messy Structs/Classes in a Functional Style
- What's Your Secondary Language?
2015 13
- The Same User Interface Mistakes Over and Over
- Alternate Retrocomputing Histories
- What Can You Put in a Refrigerator?
- The Right Thing?
- Computer Science Courses that Don't Exist, But Should
- If You Haven't Done It Before, All Bets Are Off
- Why Doesn't Creativity Matter in Tech Recruiting?
- Reconsidering Functional Programming
- The Wrong Kind of Paranoia
- Are You Sure?
- Life is More Than a Series of Cache Misses
- Retiring Python as a Teaching Language
- The Software Developer's Sketchbook
2014 14
- Programming Modern Systems Like It Was 1984
- Extreme Formatting
- Design is Expensive
- Lost Lessons from 8-Bit BASIC
- You Can't Sit on the Sidelines and Become a Philosopher
- Unexpectedly Simple
- Programming Without Being Obsessed With Programming
- You Don't Read Code, You Explore It
- Get Good at Idea Generation
- Range-Checks and Recklessness
- Popular iOS Games That Could Have Been Designed for 8-Bit Systems
- You Don't Want to Think Like a Programmer
- A Worst Case for Functional Programming?
- Success Beyond the Barrier of Full Understanding
2013 26
- Optimization in the Twenty-First Century
- Self-Imposed Complexity
- C is Lower Level Than You Think
- Three Years in an Alternate Universe
- What Are You The World's Foremost Authority Of?
- Dynamic Everything Else
- Why Do Dedicated Game Consoles Exist?
- Purely Functional Photoshop
- How much memory does malloc(0) allocate?
- Getting Past the Cloning Instinct
- Organizational Skills Beat Algorithmic Wizardry
- Tips for Writing Functional Programming Tutorials
- Getting Comfortable with the Softer Side of Development
- Flickr's Redesign is a Series of Evolutionary Changes
- Stumbling Into the Cold Expanse of Real Programming
- A Short Quiz About Language Design
- Remembering a Revolution That Never Happened
- Exploring the Lower Depths of Terseness
- Expertise, the Death of Fun, and What to Do About It
- Don't Be Distracted by Superior Technology
- Simplicity is Wonderful, But Not a Requirement
- The Highest-Level Feature of C
- Sympathy for Students in Beginning Programming Classes
- Trapped by Exposure to Pre-Existing Ideas
- An Irrational Fear of Files on the Desktop
- 2012 Retrospective
2012 41
- Documenting the Undocumentable
- Dangling by a Trivial Feature
- The UNIX Philosophy and a Fear of Pixels
- "Not Invented Here" Versus Developer Sanity
- An Outrageous Port
- OOP Isn't a Fundamental Particle of Computing
- The Background Noise Was Louder than I Realized
- Do You Really Want to be Doing This When You're 50?
- Digging Out from Years of Homogeneous Computing
- What's Your Hidden Agenda?
- Minimalism in an Age of Tremendous Hardware
- The Goal is to be Like a Bad Hacker Movie
- Hopefully More Controversial Programming Opinions
- All that Stand Between You and a Successful Project are 500 Experiments
- One Small, Arbitrary Change and It's a Whole New World
- App Store Failure and Personal Responsibility
- Things to Optimize Besides Speed and Memory
- I Am Not a Corporation
- The Silent Majority of Experts
- Your Coding Philosophies are Irrelevant
- Another Programming Idiom You've Never Heard Of
- The Pace of Technology is Slower than You Think
- We Who Value Simplicity Have Built Incomprehensible Machines
- You, Too, Can Be on the Cutting Edge of Functional Programming Research
- The Most Important Decisions are Non-Technical
- A Forgotten Principle of Compiler Design
- Can You Be Your Own Producer?
- Use and Abuse of Garbage Collected Languages
- 100,000 Lines of Assembly Language
- This is Why You Spent All that Time Learning to Program
- Turning Your Code Inside Out
- Solving the Wrong Problem
- A Complete Understanding is No Longer Possible
- Don't Fall in Love With Your Technology
- A Peek Inside the Erlang Compiler
- Four Levels of Idea Theft
- Pretend This Optimization Doesn't Exist
- Virtual Joysticks and Other Comfortably Poor Solutions
- Recovering From a Computer Science Education
- Follow-up to "A Programming Idiom You've Never Heard Of"
- A Programming Idiom You've Never Heard Of
2011 32
- 2011 Retrospective
- User Experience Intrusions in iOS 5
- Photography as a Non-Technical Hobby
- Adventures in Unfiltered Global Publishing
- Things That Turbo Pascal is Smaller Than
- Starting in the Middle
- Papers from the Lost Culture of Array Languages
- The Revolution is Personal
- Optimization on a Galactic Scale
- Greetings from the Bottom of the Benchmarks
- Beyond Empty Coding
- Boldness and Restraint
- Building Beautiful Apps from Ugly Code
- It's Like That Because It Has Always Been Like That
- "Avoid Premature Optimization" Does Not Mean "Write Dumb Code"
- Collapsing Communities
- 8-Bit Scheme: A Revisionist History
- The End is Near for Vertical Tab
- The Nostalgia Trap
- Living in the Era of Infinite Computing Power
- Tough Love for Indies
- Constantly Create
- Impressed by Slow Code
- Follow the Vibrancy
- Revisiting "Tricky When You Least Expect It"
- Caught-Up with 20 Years of UI Criticism
- If You're Not Gonna Use It, Why Are You Building It?
- Don't Distract New Programmers with OOP
- Exploring Audio Files with Erlang
- Accidental Innovation, Part 3
- Accidental Innovation, Part 2
- Accidental Innovation, Part 1
2010 32
- A Three-Year Retrospective
- Write Code Like You Just Learned How to Program
- Instant-On
- Learning to Ignore Superficially Ugly Code
- Good-Bye to the Sprawling Suburbs of Screen Space
- Easy to Please
- This Isn't Another Quick Dismissal of Visual Programming
- A Concurrent Language for Non-Concurrent Software
- Advice to Aimless, Excited Programmers
- Erlang vs. Unintentionally Purely Functional Python
- Common Sense, Part 1
- Personal Programming
- Stop the Vertical Tab Madness
- One Small Step Toward Reducing Programming Language Complexity
- Free Your Technical Aesthetic from the 1970s
- Explaining Functional Programming to Eight-Year-Olds
- What Do People Like?
- Tricky When You Least Expect It
- A Ramble Through Erlang IO Lists
- How to Think Like a Pioneer
- How Much Processing Power Does it Take to be Fast?
- Rethinking Programming Language Tutorials
- Living Inside Your Own Black Box
- A Short Story About Verbosity
- Eleven Years of Erlang
- It Made Sense in 1978
- Dehumidifiers, Gravy, and Coding
- Optimizing for Fan Noise
- What to do About Erlang's Records?
- Nothing Like a Little Bit of Magic
- No Comment
- The Recovering Programmer
2009 19
- Follow-up to "Functional Programming Doesn't Work"
- Functional Programming Doesn't Work (and what to do about it)
- How I Learned to Stop Worrying and Love Erlang's Process Dictionary
- Slow Languages Battle Across Time
- How Did Things Ever Get This Good?
- Tales of a Former Disassembly Addict
- Micro-Build Systems and the Death of a Prominent DSL
- The World's Most Mind-Bending Language Has the Best Development Environment
- A Personal History of Compilation Speed, Part 2
- The Pure Tech Side is the Dark Side
- A Personal History of Compilation Speed, Part 1
- Want People to Use Your Language Under Windows? Do This.
- How to Crash Erlang
- Digging Deeper into Sufficiently Smartness
- Let's Take a Trivial Problem and Make it Hard
- On Being Sufficiently Smart
- How My Brain Kept Me from Co-Founding YouTube
- Puzzle Languages
- Revisiting "Purely Functional Retrogames"
2008 22
- Accidentally Introducing Side Effects into Purely Functional Code
- Timidity Does Not Convince
- Macho Programming
- Understanding What It's Like to Program in Forth
- Kilobyte Constants, a Simple and Beautiful Idea that Hasn't Caught On
- Functional Programming Went Mainstream Years Ago
- Want to Write a Compiler? Just Read These Two Papers.
- A Spellchecker Used to Be a Major Feat of Software Engineering
- Coding as Performance
- Don't Be Afraid of Special Cases
- Purely Functional Retrogames, Part 4
- Purely Functional Retrogames, Part 3
- Purely Functional Retrogames, Part 2
- Purely Functional Retrogames, Part 1
- My Road to Erlang
- Slumming with BASIC Programmers
- In Praise of Non-Alphanumeric Identifiers
- Five Memorable Books About Programming
- Back to the Basics of Functional Programming
- Don't Structure Data All The Way Down
- Garbage Collection in Erlang
- Why Garbage Collection Paranoia is Still (sometimes) Justified
2007 14
- Functional Programming Archaeology
- Would You Bet $100,000,000 on Your Pet Programming Language?
- Timings and the Punchline
- Revisiting "Programming as if Performance Mattered"
- Finally: Data Structure Constants in Erlang
- Two Stories of Simplicity
- Deriving Forth
- Trapped! Inside a Recursive Data Structure
- Sending Modern Languages Back to 1980s Game Programmers
- Erlang as a Target for Imperative DSLs
- Follow-up to "Admitting that Functional Programming Can Be Awkward"
- Admitting that Functional Programming Can Be Awkward
- On the Perils of Benchmarking Erlang
- A Deeper Look at Tail Recursion in Erlang