4 ms·
Ask HN: Immutable data structures for the back end?
Immutable data structures are being adopted on the frontend with frameworks like redux. Can this same concept be applied to the server? An express like framework that works with immutable state?
- uptownhr 10y agoAre there any examples of this being done?
- galistoca 10y agoWhat do you think would be the benefit?
- hakanderyal 10y agoYou can check out Datomic[0], a database built on immutability, championed by Rick Hickey of Clojure. [0]: http://www.datomic.com/ http://www.datomic.com/
- bbcbasic 10y agoWell it is trite to say it but Haskell has many examples of servers and idiomatic haskell will almost always use immutable data. Examples are web frameworks like Yesod and web servers like Warp. I'm working on a toy stock exchange app to learn haskell and of course it will be mostly immutable. It will use some shared global state. This will have mutable reference using mvars or transactional memory but the "objects" themselves will be immutable. Communicating between threads makes total immutability hard (maybe impossible?) unless you have a very clever threading model.
- arms 10y agoSure they can. You can use server side languages like Clojure, Erlang, Elixir, F# and a few others I'm sure I'm missing. There also exist libraries for some languages that introduce immutable data structures, like pysistance for Python.
- gary__ 10y agoSee the event sourcing pattern for an example of immutability at the backend. http://martinfowler.com/eaaDev/EventSourcing.html http://martinfowler.com/eaaDev/EventSourcing.html https://msdn.microsoft.com/en-us/library/dn589792.aspx https://msdn.microsoft.com/en-us/library/dn589792.aspx
- _RPM 10y agoDid you just learn about the concept of Immutable? It's a very simple concept, it seems to be the buzzword lately, especially with JavaScript libraries.