programming languages

The Enduring Art of Computer Programming

programming languages

The Enduring Art of Computer Programming

I saw on reddit that today, January 10th, is Donald Knuth’s seventieth birthday. Knuth is arguably the most famous living computer scientist, author of the seminal Art of Computer Programming series. Here’s how serious Mr. Knuth is – his books are dedicated, not to his wife or a loved

By Jeff Atwood ·
Comments
Size Is The Enemy

programming languages

Size Is The Enemy

Steve Yegge’s latest, Code’s Worst Enemy, is like all of his posts: rich, rewarding, and ridiculously freaking long. Steve doesn’t write often, but when he does, it’s a doozy. As I mentioned a year ago, I’ve started a cottage industry mining Steve’s insanely great

By Jeff Atwood ·
Comments

perl

Nobody Cares What Your Code Looks Like

In The Problems of Perl: The Future of Bugzilla, Max Kanat-Alexander* laments the state of the Bugzilla codebase: Once upon a time, Bugzilla was an internal application at Netscape, written in TCL. When it was open-sourced in 1998, Terry (the original programmer), decided to re-write Bugzilla in Perl. My understanding

By Jeff Atwood ·
Comments
On The Meaning of “Coding Horror”

programming languages

On The Meaning of “Coding Horror”

In a recent web search, I found the following comment in a programming.reddit.com thread from eight months ago, completely by accident: I think prog.reddit will continue to move in phases... a couple of days ago, someone complained about a drop-off in Haskell articles, today there were 4

By Jeff Atwood ·
Comments

sorting algorithms

Sorting for Humans : Natural Sort Order

The default sort functions in almost every programming language are poorly suited for human consumption. What do I mean by that? Well, consider the difference between sorting filenames in Windows explorer, and sorting those very same filenames via Array.Sort() code: Explorer shell sortArray.Sort() Quite a difference. I can

By Jeff Atwood ·
Comments
Gifts for Geeks: 2007 Edition

programming languages

Gifts for Geeks: 2007 Edition

In case you hadn’t noticed, it’s that time of year again: let the wholesale buying of crap begin! As a technology enthusiast with a bad impulse purchase habit, I get a lot of complaints that I am difficult to buy for. That’s sort of intentional. I spent

By Jeff Atwood ·
Comments
The Danger of Naïveté

algorithms

The Danger of Naïveté

In my previous post on shuffling, I glossed over something very important. The very first thing that came to mind for a shuffle algorithm is this: for (int i = 0; i < cards.Length; i++) { int n = rand.Next(cards.Length); Swap(ref cards[i], ref cards[n]); } It’s

By Jeff Atwood ·
Comments
Mort, Elvis, Einstein, and You

programming languages

Mort, Elvis, Einstein, and You

Earlier this week I wrote about The Two Types of Programmers. Based on the huge number of comments, it seemed to strike a nerve. Or two. This surprised me, because it was never meant to be the inflammatory, provocative diatribe that many people interpreted it as. It got so out

By Jeff Atwood ·
Comments

programming languages

The Two Types of Programmers

Contrary to myth, there aren’t fourteen types of programmers. There are really only two, as Ben Collins-Sussman reminds us. There are two “classes” of programmers in the world of software development: I’m going to call them the 20% and the 80%. The 20% folks are what many would

By Jeff Atwood ·
Comments
You’re Now Competing With The Internet

programming languages

You’re Now Competing With The Internet

Reginald Braithwaite writes consistently great stuff on his blog, but I think my absolute favorite thing he’s ever written is We Have Lost Control of the Apparatus. But we programmers have lost and we must be realistic about things. The fact of the matter is this: people own their

By Jeff Atwood ·
Comments
Who Wrote This Crap?

software development concepts

Who Wrote This Crap?

Does this sound familiar? your program (n): a maze of non-sequiturs littered with clever-clever tricks and irrelevant comments. Compare MY PROGRAM. my program (n): a gem of algorithmic precision, offering the most sublime balance between compact, efficient coding on the one hand, and fully commented legibility for posterity on the

By Jeff Atwood ·
Comments