“What in the world… is this refactoring thing?” The question hung in the air one crisp overcast morning, intermingled with the varied roars and toots of stressed out commuters accelerating to merge onto the Brooklyn Queens Expressway. I’d recently ventured out from the lonely homestead of solo-cowboy programming and moved to a big-ranch team of seasoned developers. The term “refactoring” ricocheted in and out of every other tech-speak paragraph while they wrangled big sections of legacy code and pondered the design implications of introducing a new feature into the system.
Recently it struck me that there is a metaphorical similarity between technological disasters and geological earthquakes. The last 100 or so years have seen a big increase in the amount of damage caused by earthquakes, both to lives and to property. The US Geological Survey maintains a list of the most destructive earthquakes in history, those which caused more than 50,000 deaths. I counted 22 earthquakes. Of those, exactly half of them occurred since 1900.
So why are these geological phenomena killing so many more now than in the past?
In the ring today we have Interface Oriented Programming (IOP) vs Object Oriented Programming (OOP).
What’s the difference?
TL;DR: In my opinion there is no difference. IOP is merely clarifies OOP, a reminder to program to interfaces, not implementations.
Object oriented programming has always been about interfaces. That’s the whole idea. You take a cluster of data, encapsulate it, infuse it with behavior, and it’s ready to interact with other objects as long as they respect the interface’s contract.
tygertec.com has been repurposed as a programming-oriented blog. I hope to include book reviews, random abstract thoughts on the trade, and lousy tech jokes. :?)
(If you’re looking for the old website it’s at tygertec.com/legacy .