3 ms·
"I can only express a small fraction of my application logic there unless I want some serious vendor lock-in." I can understand if you're worried about using O
by jeffdavis 14y ago
"I can only express a small fraction of my application logic there unless I want some serious vendor lock-in."
I can understand if you're worried about using Oracle or something. But if it's a free software database system, the code is open, and I don't really see that as "lock in". For comparison, if you write an application in ruby, you don't say that you are "locked in" to ruby.
"I think an API is a lot cleaner"
That can work very well, but it does have some weaknesses. For instance, you may see a check in the API code for out-of-bounds values, and assume your code doesn't need to account for it. But then you hit some out-of-bounds data at runtime, because the data was inserted before the check was added. That's why databases offer many declarative constraints, so that if you see it, you know it's true, and don't have to worry about when the constraint was created.
That being said, I think a lot of applications would be better developed using something like a web service to cleanly separate the human interface from the action being taken. I can't think of many ways to do that without a lot of boilerplate code though.
- wpietri 14y agoIt's vendor lock-in either way, although I grant that proprietary lock-in is more problematic than open-source lock-in. Either way, I'm reluctant to place large bets on millions of lines of mystery code with complicated performance characteristics.