The Curious Engineer

All blogs / Software / engineering practice

Programming in the 21st Century

prog21.dadgum.com

Software / engineering practiceFunctional / PL theoryComputing historyEngineering blogs

’05’10’15’20’25
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

  1. So Long, Prog21

2016 14

  1. Writing Video Games in a Functional Style
  2. Progress Bars are Surprisingly Difficult
  3. Learning to Program Without Writing the Usual Sort of Code
  4. Picturing WebSocket Protocol Packets
  5. Being More Than "Just the Programmer"
  6. The New Minimalism
  7. Optimizing for Human Understanding
  8. Fun vs. Computer Science
  9. Evolution of an Erlang Style
  10. Death of a Language Dilettante
  11. Moving Beyond the OOP Obsession
  12. On the Madness of Optimizing Compilers
  13. Messy Structs/Classes in a Functional Style
  14. What's Your Secondary Language?

2015 13

  1. The Same User Interface Mistakes Over and Over
  2. Alternate Retrocomputing Histories
  3. What Can You Put in a Refrigerator?
  4. The Right Thing?
  5. Computer Science Courses that Don't Exist, But Should
  6. If You Haven't Done It Before, All Bets Are Off
  7. Why Doesn't Creativity Matter in Tech Recruiting?
  8. Reconsidering Functional Programming
  9. The Wrong Kind of Paranoia
  10. Are You Sure?
  11. Life is More Than a Series of Cache Misses
  12. Retiring Python as a Teaching Language
  13. The Software Developer's Sketchbook

2014 14

  1. Programming Modern Systems Like It Was 1984
  2. Extreme Formatting
  3. Design is Expensive
  4. Lost Lessons from 8-Bit BASIC
  5. You Can't Sit on the Sidelines and Become a Philosopher
  6. Unexpectedly Simple
  7. Programming Without Being Obsessed With Programming
  8. You Don't Read Code, You Explore It
  9. Get Good at Idea Generation
  10. Range-Checks and Recklessness
  11. Popular iOS Games That Could Have Been Designed for 8-Bit Systems
  12. You Don't Want to Think Like a Programmer
  13. A Worst Case for Functional Programming?
  14. Success Beyond the Barrier of Full Understanding

2013 26

  1. Optimization in the Twenty-First Century
  2. Self-Imposed Complexity
  3. C is Lower Level Than You Think
  4. Three Years in an Alternate Universe
  5. What Are You The World's Foremost Authority Of?
  6. Dynamic Everything Else
  7. Why Do Dedicated Game Consoles Exist?
  8. Purely Functional Photoshop
  9. How much memory does malloc(0) allocate?
  10. Getting Past the Cloning Instinct
  11. Organizational Skills Beat Algorithmic Wizardry
  12. Tips for Writing Functional Programming Tutorials
  13. Getting Comfortable with the Softer Side of Development
  14. Flickr's Redesign is a Series of Evolutionary Changes
  15. Stumbling Into the Cold Expanse of Real Programming
  16. A Short Quiz About Language Design
  17. Remembering a Revolution That Never Happened
  18. Exploring the Lower Depths of Terseness
  19. Expertise, the Death of Fun, and What to Do About It
  20. Don't Be Distracted by Superior Technology
  21. Simplicity is Wonderful, But Not a Requirement
  22. The Highest-Level Feature of C
  23. Sympathy for Students in Beginning Programming Classes
  24. Trapped by Exposure to Pre-Existing Ideas
  25. An Irrational Fear of Files on the Desktop
  26. 2012 Retrospective

2012 41

  1. Documenting the Undocumentable
  2. Dangling by a Trivial Feature
  3. The UNIX Philosophy and a Fear of Pixels
  4. "Not Invented Here" Versus Developer Sanity
  5. An Outrageous Port
  6. OOP Isn't a Fundamental Particle of Computing
  7. The Background Noise Was Louder than I Realized
  8. Do You Really Want to be Doing This When You're 50?
  9. Digging Out from Years of Homogeneous Computing
  10. What's Your Hidden Agenda?
  11. Minimalism in an Age of Tremendous Hardware
  12. The Goal is to be Like a Bad Hacker Movie
  13. Hopefully More Controversial Programming Opinions
  14. All that Stand Between You and a Successful Project are 500 Experiments
  15. One Small, Arbitrary Change and It's a Whole New World
  16. App Store Failure and Personal Responsibility
  17. Things to Optimize Besides Speed and Memory
  18. I Am Not a Corporation
  19. The Silent Majority of Experts
  20. Your Coding Philosophies are Irrelevant
  21. Another Programming Idiom You've Never Heard Of
  22. The Pace of Technology is Slower than You Think
  23. We Who Value Simplicity Have Built Incomprehensible Machines
  24. You, Too, Can Be on the Cutting Edge of Functional Programming Research
  25. The Most Important Decisions are Non-Technical
  26. A Forgotten Principle of Compiler Design
  27. Can You Be Your Own Producer?
  28. Use and Abuse of Garbage Collected Languages
  29. 100,000 Lines of Assembly Language
  30. This is Why You Spent All that Time Learning to Program
  31. Turning Your Code Inside Out
  32. Solving the Wrong Problem
  33. A Complete Understanding is No Longer Possible
  34. Don't Fall in Love With Your Technology
  35. A Peek Inside the Erlang Compiler
  36. Four Levels of Idea Theft
  37. Pretend This Optimization Doesn't Exist
  38. Virtual Joysticks and Other Comfortably Poor Solutions
  39. Recovering From a Computer Science Education
  40. Follow-up to "A Programming Idiom You've Never Heard Of"
  41. A Programming Idiom You've Never Heard Of

2011 32

  1. 2011 Retrospective
  2. User Experience Intrusions in iOS 5
  3. Photography as a Non-Technical Hobby
  4. Adventures in Unfiltered Global Publishing
  5. Things That Turbo Pascal is Smaller Than
  6. Starting in the Middle
  7. Papers from the Lost Culture of Array Languages
  8. The Revolution is Personal
  9. Optimization on a Galactic Scale
  10. Greetings from the Bottom of the Benchmarks
  11. Beyond Empty Coding
  12. Boldness and Restraint
  13. Building Beautiful Apps from Ugly Code
  14. It's Like That Because It Has Always Been Like That
  15. "Avoid Premature Optimization" Does Not Mean "Write Dumb Code"
  16. Collapsing Communities
  17. 8-Bit Scheme: A Revisionist History
  18. The End is Near for Vertical Tab
  19. The Nostalgia Trap
  20. Living in the Era of Infinite Computing Power
  21. Tough Love for Indies
  22. Constantly Create
  23. Impressed by Slow Code
  24. Follow the Vibrancy
  25. Revisiting "Tricky When You Least Expect It"
  26. Caught-Up with 20 Years of UI Criticism
  27. If You're Not Gonna Use It, Why Are You Building It?
  28. Don't Distract New Programmers with OOP
  29. Exploring Audio Files with Erlang
  30. Accidental Innovation, Part 3
  31. Accidental Innovation, Part 2
  32. Accidental Innovation, Part 1

2010 32

  1. A Three-Year Retrospective
  2. Write Code Like You Just Learned How to Program
  3. Instant-On
  4. Learning to Ignore Superficially Ugly Code
  5. Good-Bye to the Sprawling Suburbs of Screen Space
  6. Easy to Please
  7. This Isn't Another Quick Dismissal of Visual Programming
  8. A Concurrent Language for Non-Concurrent Software
  9. Advice to Aimless, Excited Programmers
  10. Erlang vs. Unintentionally Purely Functional Python
  11. Common Sense, Part 1
  12. Personal Programming
  13. Stop the Vertical Tab Madness
  14. One Small Step Toward Reducing Programming Language Complexity
  15. Free Your Technical Aesthetic from the 1970s
  16. Explaining Functional Programming to Eight-Year-Olds
  17. What Do People Like?
  18. Tricky When You Least Expect It
  19. A Ramble Through Erlang IO Lists
  20. How to Think Like a Pioneer
  21. How Much Processing Power Does it Take to be Fast?
  22. Rethinking Programming Language Tutorials
  23. Living Inside Your Own Black Box
  24. A Short Story About Verbosity
  25. Eleven Years of Erlang
  26. It Made Sense in 1978
  27. Dehumidifiers, Gravy, and Coding
  28. Optimizing for Fan Noise
  29. What to do About Erlang's Records?
  30. Nothing Like a Little Bit of Magic
  31. No Comment
  32. The Recovering Programmer

2009 19

  1. Follow-up to "Functional Programming Doesn't Work"
  2. Functional Programming Doesn't Work (and what to do about it)
  3. How I Learned to Stop Worrying and Love Erlang's Process Dictionary
  4. Slow Languages Battle Across Time
  5. How Did Things Ever Get This Good?
  6. Tales of a Former Disassembly Addict
  7. Micro-Build Systems and the Death of a Prominent DSL
  8. The World's Most Mind-Bending Language Has the Best Development Environment
  9. A Personal History of Compilation Speed, Part 2
  10. The Pure Tech Side is the Dark Side
  11. A Personal History of Compilation Speed, Part 1
  12. Want People to Use Your Language Under Windows? Do This.
  13. How to Crash Erlang
  14. Digging Deeper into Sufficiently Smartness
  15. Let's Take a Trivial Problem and Make it Hard
  16. On Being Sufficiently Smart
  17. How My Brain Kept Me from Co-Founding YouTube
  18. Puzzle Languages
  19. Revisiting "Purely Functional Retrogames"

2008 22

  1. Accidentally Introducing Side Effects into Purely Functional Code
  2. Timidity Does Not Convince
  3. Macho Programming
  4. Understanding What It's Like to Program in Forth
  5. Kilobyte Constants, a Simple and Beautiful Idea that Hasn't Caught On
  6. Functional Programming Went Mainstream Years Ago
  7. Want to Write a Compiler? Just Read These Two Papers.
  8. A Spellchecker Used to Be a Major Feat of Software Engineering
  9. Coding as Performance
  10. Don't Be Afraid of Special Cases
  11. Purely Functional Retrogames, Part 4
  12. Purely Functional Retrogames, Part 3
  13. Purely Functional Retrogames, Part 2
  14. Purely Functional Retrogames, Part 1
  15. My Road to Erlang
  16. Slumming with BASIC Programmers
  17. In Praise of Non-Alphanumeric Identifiers
  18. Five Memorable Books About Programming
  19. Back to the Basics of Functional Programming
  20. Don't Structure Data All The Way Down
  21. Garbage Collection in Erlang
  22. Why Garbage Collection Paranoia is Still (sometimes) Justified

2007 14

  1. Functional Programming Archaeology
  2. Would You Bet $100,000,000 on Your Pet Programming Language?
  3. Timings and the Punchline
  4. Revisiting "Programming as if Performance Mattered"
  5. Finally: Data Structure Constants in Erlang
  6. Two Stories of Simplicity
  7. Deriving Forth
  8. Trapped! Inside a Recursive Data Structure
  9. Sending Modern Languages Back to 1980s Game Programmers
  10. Erlang as a Target for Imperative DSLs
  11. Follow-up to "Admitting that Functional Programming Can Be Awkward"
  12. Admitting that Functional Programming Can Be Awkward
  13. On the Perils of Benchmarking Erlang
  14. A Deeper Look at Tail Recursion in Erlang

2004 1

  1. Flickr as a Business Simulator