4 ms·
Yeah, I know, same deal with type safe database query DSLs, none have hit the mark yet, including M$'s Linq to Sql, Scala's Slick, Haskell's Esqueleto and Opale
by virtualwhys 12y ago
Yeah, I know, same deal with type safe database query DSLs, none have hit the mark yet, including M$'s Linq to Sql, Scala's Slick, Haskell's Esqueleto and Opaleye, etc.
Seems we're on the brink of a completely type safe distributed stack, but argghingly not quite there. Maybe in another couple of years the computing community will have turned the corner.
FWIW, from the outside looking in Haskell seems to be kicking ass in terms of language evolution (7.8 and 7.10 in particular). Here on the Scala side of the fence we've got a ways to go, probably 4 years or so until the dust settles with various compiler forks and research work brings a (hopefully) vastly improved Scala into being.
- tel 12y agoYeah! I want to see an EDSL impl of a nicely typed Tutorial D sometime already! Personally, I don't know that I care about the distributed part of the stack. I want something like Erlang's actor model in Haskell even on one machine. I think if there was a nicely typed way to do that (and see pipes-concurrent and mvc for nice examples) there'd be some fantastic "large scale" application operating space that would get opened up. Akka does this somewhat below par with Erlang. I'd wonder if a GHC implementation of straightforward single machine Erlang's semantics could do better with typed effects and true asynchronous exceptions. This would be nice even with just effect typing (e.g. untyped channels and lots of living in some IO-alike) and could be a good interpreter target for simpler strongly-typed organizational designs. I started fiddling with this (under the name hotep) a few months ago and got sidetracked but it keeps coming up!
- tome 12y agoI would be interested in what you think is missing from Opaleye. Of course there is plenty of Postgres functionality that hasn't been ported across yet, but I'm wondering what you think is missing conceptually.