Sunday, February 11, 2007

Linux/Unix Case Sensitivity

Gregory Raiz
Technology

Case sensitivity is one of the best examples of how programmers expect people to conform to the computer rather then having the computer conform to people. We are human, we make mistakes and we are forgiving in the way we communicate. My name is Gregory but I also go by Greg and sometimes respond to ‘Hey You.’

But Linux/Unix isn’t forgiving, if I want Test.txt, this isn’t the same as test.txt and it’s completely different from TEST.txt.

Why?

The primary reason is that programmers in the late 1960’s & 70’s for C and Unix decided to optimize the compilers and parsers. At the time computers were much slower and it was faster to compare identical strings rather then normalizing the upper/lower case of the strings. Back in 1969 when there were was no such thing as personal computers this optimization made a lot of sense.

Fast forward to today as someone is tying a URL into a web-browser. It doesn’t work. Why? Because the web browser passes the exact case of the web file to the web-server, the web-server is Apache and runs on a Linux server that cares about cases because almost 30 years ago comparing cases took a little extra effort. Today this type of upper/lower case comparison is trivially quick.

But what’s really amazing is that in all those years developers have refused to change this. Some even think of this as a ‘feature.’ This is really stupid, it causes a ton of problems and there is no longer any good reason to have case sensitivity in an OS.

Computers are meant to be used by people, and people make mistakes.

________________________________________

Do you have a project in mind? We’d love to work with you. If you’d like an opportunity to work on projects with us, check out our Careers page. We’re hiring!

Loading Next Article