Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> In building software we inevitably invent or use abstractions to represent or effect real world things.

Ehhh. Most abstractions I’ve written aren’t abstractions over the real world. They’re abstractions over low level machinery of a computer or program. (Eg there’s no HTTP request and response, DB connection or network socket outside of computer software).

The real world isn’t object oriented. It’s just a bunch of atoms moving around. You can describe physical reality as a bunch of objects that interact via ownership and method calls, but there’s nothing natural about that. OO is no better of a way to describe the real world than actors & message passing, or state & events.

Software that models “the real world” usually describes users, money, addresses and things like that. But none of those things are made out of atoms. There is no money molecule. Money is not on the periodic table. They’re all just another form of abstraction - one that happens to exist outside the software world, that we can capture in part in a database table.

Interesting abstractions are all invented ideas. Some are useful. Some are elegant to express and use in OO code, and some are not.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: