software development concepts

programming languages

COBOL: Everywhere and Nowhere

I'd like to talk to you about ducts. Wait a minute. Strike that. I meant COBOL. The Common Business Oriented Language is celebrating its fiftieth anniversary as the language that is everywhere and nowhere at once: As a result, today COBOL is everywhere, yet is largely unheard of

By Jeff Atwood ·
Comments

programming languages

The Paper Data Storage Option

As programmers, we regularly work with text encodings. But there's another sort of encoding at work here, one we process so often and so rapidly that it's invisible to us, and we forget about it. I'm talking about visual encoding -- translating the visual

By Jeff Atwood ·
Comments

perl

Coding Horror: Movable Type Since 2004

When I started this blog, way back in the dark ages of 2004, the best of the options I had was Movable Type. A Perl and MySQL based blogging platform may seem like an odd choice for a Windows-centric developer like me, but I felt it was the best of

By Jeff Atwood ·
Comments

software development concepts

Nobody Hates Software More Than Software Developers

A few months ago we bought a new digital camera, all the better to take pictures of our new spawned process. My wife, who was in charge of this purchase, dutifully unboxed the camera, installed the batteries, and began testing it out for the first time. Like so many electronic

By Jeff Atwood ·
Comments

programming languages

Code: It's Trivial

Remember that Stack Overflow thing we've been working on? Some commenters on a recent Hacker News article questioned the pricing of Stack Exchange -- essentially, a hosted Stack Overflow: Seems really pricey for a relatively simple software like this. Someone write an open source alternative? it looks like

By Jeff Atwood ·
Comments

programming languages

All Abstractions Are Failed Abstractions

In programming, abstractions are powerful things: Joel Spolsky has an article in which he states All non-trivial abstractions, to some degree, are leaky. This is overly dogmatic - for example, bignum classes are exactly the same regardless of the native integer multiplication. Ignoring that, this statement is essentially true, but

By Jeff Atwood ·
Comments

technology trends

The iPhone Software Revolution

The original iPhone was for suckers hard-core gadget enthusiasts only. But as I predicted, 12 months later, the iPhone 3G rectified all the shortcomings of the first version. And now, with the iPhone 3GS, we've reached the mythical third version: A computer industry adage is that Microsoft does

By Jeff Atwood ·
Comments

security

The Wrong Level of Abstraction

In Why Isn't My Encryption.. Encrypting? we learned that your encryption is only as good as your understanding of the encryption code. And that the best encryption of all is no encryption, because you kept everything on the server, away from the prying eyes of the client. In

By Jeff Atwood ·
Comments

programming languages

Regular Expressions for Regular Programmers

If you've followed my blog for any length of time, you know that I am a total regular expression fanboy. It's almost embarrassing how much I love the damn things. I'm pretty sure my teammates roll their eyes every time they see yet another

By Jeff Atwood ·
Comments

software development concepts

Why Do Computers Suck at Math?

You've probably seen this old chestnut by now. Insert your own joke here. Google can't be wrong -- math is! But Google is hardly alone; this is just another example in a long and storied history of obscure little computer math errors that go way back,

By Jeff Atwood ·
Comments

programming languages

Pseudocode or Code?

Although I'm a huge fan of Code Complete -- it is my single most recommended programming book for good reason -- there are chapters in it that I haven't been able to digest, even after 16 years. One of those chapters describes something called the Pseudocode

By Jeff Atwood ·
Comments