Mozilla was involved with the standardization of the LocalStorage and IndexedDB APIs. If this is the API that users really want — and I'd argue that it is — I wish they would've realized it sooner and lobbied to standardize a simple, asynchronous, variable type key value store.
One major goal for IndexedDB was to be low-level enough that people could build the APIs they want on top of it. This type of design is popular these days due to some older standards like appcache and localstorage which have nice, simple, usable APIs but are not flexible enough to handle many real world situations.
(Now, one could argue that IndexedDB is still not low-level enough... but that's a separate problem.)
> One major goal for IndexedDB was to be low-level enough that people could build the APIs they want on top of it.
IndexedDB is neither low or high level, it's just worthless. I'd like to be able to use HTML APIs WITHOUT a framework. At least WebSQL was usefull. One could build an IndexedDB on the top of it if one wanted,or use it directly, but you cant build WebSQL on top of IndexedDB.
It's a bit much to call IndexedDB "worthless". You can asynchronously store/access large amounts of indexed JS objects. That's a huge win, despite the fact that I agree the IndexedDB API is not ideal.
you cant build WebSQL on top of IndexedDB.
I don't see why you couldn't build Web SQL on top of IndexedDB. Nobody's done it and it would be a ton of work, but it should be possible.
I'd like to be able to use HTML APIs WITHOUT a framework.
You can use the IndexedDB API directly. It's not that hard. It's just overkill for something like localForage that is only doing very simple data storage and retrieval.
Thank you Mozilla.
It wasn't just Mozilla. Microsoft deserves much of the credit/blame, since they were also in the anti-Web SQL and pro-IndexedDB camp. And Google quickly came to agree with them, even though they had implemented Web SQL previously.
It's a nice API, but I don't think it's the API everybody wants.
Simple key-value store is quite useful in most cases, but it's not enough if you want to build really advanced applications, e.g. when you have a dataset that doesn't fit all in memory at once, but you want to filter/sort/search it (imagine GMail that stores e-mails client-side).
IndexedDB primitives are powerful enough to be an engine for a SQL database (and I presume was the idea given it's been created as the WebSQL killer).