But let me try to frame it more carefully: at the time (and maybe still) a lot of providers expect you to use special APIs endemic to their platform, and you can't get the real-deal implementation or a drop-in replacement if you want to model the production environment more closely or move off the platform. Even if you get the real-deal implementation, running it may be infeasibly hairy.
Heroku very assiduously tries to avoid this, and there is a downside: we compromise with the problems in existing software that people like to use as-is, and to fix those problems we have to somehow get that software fixed, too.
I'm going to guess it's because Ubuntu was called "unix" (which actually raised my eyebrow as well). Although similar, unix != linux, and Ubuntu especially != unix, as opposed to a distro like Slackware, which is more or less unix with a linux kernel slapped in.
I got what the author meant though, and it's not that big a deal.
There is "Unix", an operating system originated at AT&T and "unix", a generic name that usually refers to a family of operating systems that are based more or less on the same ideas. Linux is a lot closer to AT&T's ideas of Unix than other certified Unixes like OSX and AIX. Linux is not Unix, but it certainly is a unix.
When I really want to annoy my BSD friends, I call it a "Linux-like" operating system. It never fails.
http://news.ycombinator.com/item?id=4062983
But let me try to frame it more carefully: at the time (and maybe still) a lot of providers expect you to use special APIs endemic to their platform, and you can't get the real-deal implementation or a drop-in replacement if you want to model the production environment more closely or move off the platform. Even if you get the real-deal implementation, running it may be infeasibly hairy.
Heroku very assiduously tries to avoid this, and there is a downside: we compromise with the problems in existing software that people like to use as-is, and to fix those problems we have to somehow get that software fixed, too.