Credit: flickr/Andreas Dantz
Software developers make decisions all day long about how to best implement functionality, fix bugs, improve application performance, etc. But they also live with the consequences of decisions made by others in the past in the design of the languages, systems and tools they use to do their jobs. Some of those choices, which may have made sense or seemed inconsequential at the time, have turned out to have unintended, long lasting and painful effects on those who write code every day. Here are 7 choices made in the development of languages or operating systems that continue to give developers headaches to this day.