If I write some dip shit application and host it on my server, and you want to write an application that interops with mine, I can change my API (or the data itself) under your nose. You have no formal guarantees. Smart contracts make guarantees about what can change and what can't change.