Changes between Initial Version and Version 3 of Ticket #1605
- Feb 13, 2012 8:58:21 PM (3 years ago)
initial v3 1 1 A lack of high-level data store methods is a huge weakness in haskell. 2 2 3 Data storage is absolutely critical for web development . Haskell web development has languished largely because one had to choose between lower-level SQL or Happstack's experimental data store. All other widely used web frameworks have ORM's for proven databases. Haskell needs an equivalent. 3 Data storage is absolutely critical for web development. 4 4 5 This concept is also useful outside of web development for *any* program that must interact with stored data. 6 7 The persistent library is a universal data store interface that already has postgresql, sqlite, and a mongoDB backend. Most users of the Yesod web framework are using it, and it is also being used outside of web development. With some more improvements, persistent could become the de-facto data store interface for haskell programmers. 5 The persistent library is a universal data store interface that already has PostgreSQL, Sqlite, MySQL and a MongoDB backend. Most users of the Yesod web framework are using it, and it is also being used outside of web development. With some more improvements, persistent could become a great data store interface for haskell programmers. 8 6 9 7 What improvements you ask? Certainly more backends should be written. One possibility is a pure-haskell backend, possibly using happstack's storage system- so that a haskell programmer not be required to have any database dependencies to get up and running, but would always have the option of switching to a battle-tested database later on. The current backends should be improved. Persistent has been designed with NoSQL in mind while still using SQL backends- now there is a clamoring for more SQL features. This could be satisfied with integration with a relational algebra (haskellDB or DSH) for powerful SQL capabilities. Adoption of haskellDB has been suprisingly slow in part because it hasn't provided enough perceived benefit to justify its use. With persistent we can provide a much nicer interface to cleanly map to and from Haskell data types, and have the freedom to provide an alternative query interface. Persistent can also have improvements in the realm of modularization, testing, and benchmarking.