Hacker News new | past | comments | ask | show | jobs | submit login

While WebDatabases have a PITA async-only API for reasons which are entirely beyond my comprehension

That's because they want to support responsive applications. Javascript doesn't really have native concurrency operations, so the best (only?) way to do it is via async operations.

It's like XMLHttpRequest: Async only, which can be harder to program, but makes it a lot more robust.




> Javascript doesn't really have native concurrency operations

Except for Web Workers, also part of HTML5. The way Google Gears handled this was to allow synchronous database operations only in worker contexts.


Worker<->UI communication is asynchronous, and has additional limitations (only copying, only JSON-able data), so synchronous worker API in many cases would just shift complexity elsewhere.


In part. It makes conditional, nested queries much simpler, however, when you don't need to nest async callbacks 20 layers deep.

I understand that having a synchronous API would mean more people would use it. But honestly, I see that as their problem. A fair number of queries, such as "select * from your_table where id = ?", are useful to have synchronous as an option, and should perform quickly enough to be invisible. And synchronous can easily be made asynchronous, but the other way around is essentially impossible without any Thread.join.




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

Search: