software development concepts

ruby

Exploring Wide Finder

I have decidedly mixed feelings about the book Beautiful Code, but one of the better chapters is Tim Bray’s “Finding Things.” In it, he outlines the creation of a small Ruby program: counts = {} counts.default = 0 ARGF.each_line do |line| if line =~ %r{GET /ongoing/When/dddx/(dddd/

By Jeff Atwood ·
Comments

software development concepts

Finally, a Definition of Programming I Can Actually Understand

I believe very strongly that a blog without comments is not a blog. For me, the whole point of this blogging exercise is the many-way communication of the comments – between me and the commenters, and among the commenters themselves. As I said in How To Advertise on Your Blog Without

By Jeff Atwood ·
Comments

programming languages

The Greatest Invention in Computer Science

What do you think the single greatest invention in computer science is? Besides the computer itself, I mean. Seriously, before reading any further, pause here for a moment and consider the question. I’ve talked before about how young so-called modern computer programming languages really are, and it bears repeating

By Jeff Atwood ·
Comments
Strong Opinions, Weakly Held

programming languages

Strong Opinions, Weakly Held

I seldom pause to answer criticism of my blog. If I did, I’d have time for little else in the course of the day, and no time for constructive work. But occasionally I’ll encounter a particularly well written critique that gives me pause, such as Alastair Rankine’s

By Jeff Atwood ·
Comments
Crash Responsibly

software development concepts

Crash Responsibly

As programmers, it is our responsibility to ensure that when something goes horribly wrong with our software, the user has a reasonable escape plan. It’s an issue of fundamental safety in software error handling that I liken to those ubiquitous airline safety cards. Which one accurately depicts the way

By Jeff Atwood ·
Comments
Is HTML a Humane Markup Language?

html

Is HTML a Humane Markup Language?

One of the things we’re thinking about while building stackoverflow.com is how to let users style the questions and answers they’re entering on the site. Nothing’s decided at this point, but we definitely won’t be giving users one of those friendly-but-irritating HTML GUI browser layout

By Jeff Atwood ·
Comments

xml

XML: The Angle Bracket Tax

Everywhere I look, programmers and programming tools seem to have standardized on XML. Configuration files, build scripts, local data storage, code comments, project files, you name it – if it’s stored in a text file and needs to be retrieved and parsed, it’s probably XML. I realize that we

By Jeff Atwood ·
Comments
Understanding Model-View-Controller

programming languages

Understanding Model-View-Controller

Like everything else in software engineering, it seems, the concept of Model-View-Controller was originally invented by Smalltalk programmers. More specifically, it was invented by one Smalltalk programmer, Trygve Reenskaug. Trygve maintains a page that explains the history of MVC in his own words. He arrives at these definitions in a

By Jeff Atwood ·
Comments
Programmers Don’t Read Books – But You Should

programming languages

Programmers Don’t Read Books – But You Should

One of the central themes of stackoverflow.com is that software developers no longer learn programming from books, as Joel mentioned: Programmers seem to have stopped reading books. The market for books on programming topics is miniscule compared to the number of working programmers. Joel expressed similar sentiments in 2004’

By Jeff Atwood ·
Comments
Everything I Needed to Know About Programming I Learned from BASIC

programming languages

Everything I Needed to Know About Programming I Learned from BASIC

Edsger Dijkstra had this to say about Beginner’s All Purpose Symbolic Instruction Code: It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration. I’m sure he was exaggerating here

By Jeff Atwood ·
Comments
Core War: Two Programs Enter, One Program Leaves

programming languages

Core War: Two Programs Enter, One Program Leaves

Our old pal A. K. Dewdney first introduced the world to Core War in a series of Scientific American articles starting in 1984. (Full page scans of the articles, including the illustrations, are also available.) Core War was inspired by a story I heard some years ago about a mischievous

By Jeff Atwood ·
Comments

software development concepts

Let That Be a Lesson To You, Son: Never Upgrade.

(Update: This piece originally ran on April Fools’ day; although the content of the post is not an April Fools’ joke, the retro styling definitely was. View a screenshot of how this post looked on April 1, 2008) I occasionally follow Jamie Zawinski’s blog. Jamie’s an interesting guy.

By Jeff Atwood ·
Comments