TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

The real world is mutable – consequences for system design

39 点作者 ash超过 5 年前

11 条评论

TeMPOraL超过 5 年前
No, it isn&#x27;t.<p>&gt;<i>The reality of life is that the real world is not immutable. I mean that at two levels. The first is that sometimes people make mistakes and publish things that they very strongly wish and need to change or retract. Pretending that they do not is ignoring reality. Beyond that, things in the real world are almost always mutable and removable because lawyers can show up on your doorstep with a court order to make them so</i><p>That&#x27;s not about what the world is. That&#x27;s what some people think it should be, and systems (e.g. legal systems) have been created on top of real world to feature this mutability.<p>Real world is immutable with respect to time. What happened, happened; you can&#x27;t change it without a time machine. You can&#x27;t just unpublish something, you have to actively work to destroy all practically accesible traces of it (and fight the people with interest in preserving these traces).<p>So a better, more accurate way of phrasing GP&#x27;s point would be: <i>systems designed by humans</i> are mutable <i>by design</i>. Physical reality is immutable with respect to time and causality.
评论 #22213413 未加载
评论 #22213331 未加载
评论 #22213368 未加载
__MatrixMan__超过 5 年前
I don&#x27;t think that the exciting part about immutability in large scale distributed systems is immutability itself, but rather referential integrity--particularly from names to arbitrary data (usually seen as cryptographic hashes that function as pointers).<p>If that reference is mutable then there needs be some authority that handles which names resolve to which data at which times. This makes it difficult to determine at time t if the bits you received at time t-1 were the right ones for some name.<p>In immutable designs the complexity of deciding &quot;which version?&quot; Is moved up in the stack (where the answer is typically mutable). In many cases, pushing this complexity out to the user is indeed the right thing to do.<p>Sure, the ability to resist a government&#x27;s desire for censorship _might_ be a design goal, but there are other reasons to prefer immutability.
评论 #22212858 未加载
Barrin92超过 5 年前
I prefer to adopt Daniel Dennett&#x27;s model of &#x27;useful fictions&#x27; when trying to talk about what the world &#x27;is&#x27;. The question for developers isn&#x27;t if the world is immutable or mutable, it&#x27;s if mutability or immutability are <i>useful concepts</i>.<p>To ask if the world is mutable is like asking if money is real or if the colour red is real. Does it make more sense to talk about RGB values or colours? The only reasonable answer is &#x27;it depends&#x27;.<p>It depends on what aspect or properties one is interested in and what lens is best suited to solve problems or which one personally finds most insightful. The world can be modelled as an immutable sequence of state transitions or as a place full of stateful objects, there isn&#x27;t any clear answer and programmers shouldn&#x27;t be too literal about what they perceive the problem to look like but rather think about what toolbox is most useful.
评论 #22213185 未加载
dustingetz超过 5 年前
Or is it, because physics!<p>you can model mutation on top of values and in fact immutable systems do this
评论 #22212346 未加载
virgilp超过 5 年前
&gt; The first is that sometimes people make mistakes and publish things that they very strongly wish and need to change or retract. Pretending that they do not is ignoring reality.<p>Really? I&#x27;d say regardless what their wishes might be, pretending that they can is ignoring reality (at least in some cases). You change or retract things as you do in accounting - by issuing amendments. Not by pretending you never published something, but by updating what you published (i.e. publishing a new version).<p>&gt; Beyond that, things in the real world are almost always mutable and removable because lawyers can show up on your doorstep with a court order to make them so, [...] If the court says &#x27;stop serving that&#x27;, you had better do so.<p>How does that have anything to do with immutability? Immutability is not &quot;The president is Obama&quot;, it is &quot;At 01 Feb 2020 my belief was that at 01 Feb 2016 the president was Obama&quot;. You can trivially say that &quot;At 01 Feb 2020 my belief was that at 01 Feb 2020 the president was Trump&quot; without contradicting the previous statement. You can even forget what your belief was at 01 Feb 2020. And if the ministry of truth knocks on the door, you might end up to believe, at 01 Feb 2025, that at 01 Feb 2016 the president was Trump. This way, you satisfy the ministry&#x27;s desires, without violating immutability in any way.
评论 #22213143 未加载
dnautics超过 5 年前
This video talks about good programming practice regarding immutability and the mutable world:<p><a href="https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;talks&#x2F;boundaries" rel="nofollow">https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;talks&#x2F;boundaries</a>
opvasger超过 5 年前
provocative blanket statements like &quot;the real world is immutable&quot; (or otherwise) aren&#x27;t correct, nor healthy.<p>Some problems are more easily dealt with using tools like immutability, or mutation for that matter.<p>as with all things in software - it depends.
dathinab超过 5 年前
Looking at immutability wrt. immutable data in the database&#x2F;at rest then yes that a problem. Same if you build a system which can&#x27;t be updated.<p>I just don&#x27;t see how many other cases of immutability have anything to do with it (like general purpose immutable data structures, statically fixed data structures, or static linking). I mean you can always change your code to comply with changes, and I would be very irritated if people believe they can put put code out into the world and never need to update it (but _not_ modify it, updating means replacing it with a mostly similar new system while carrying over all data).<p>Through as a side not: GDPR deletion request basically have the effect that any event sourcing system which doesn&#x27;t has (perma-) deletion features is unlawful to use (if you process any personal data). It also means that soft deletion is not always lawful wrt. personal data.<p>Now for some event sourcing systems that is quite a problem. Some might cope with it through snapshots which &quot;compact&quot; the state and as such can have perma deletion effects if the events before the snapshot are deleted, but that only works if you can do so every week or so or you will not be able to keep with deadlines. Given that some systems want to keep logs longer than that this _is_ a problem which can lead to major additional cost if you ran into it.
评论 #22213449 未加载
diminish超过 5 年前
Interesting enough several quantum interpretations assume an immutable reality
fnord77超过 5 年前
I&#x27;ve written a lot of software. Using both mutable patterns and immutable patterns.<p>I keep coming back to the immutable MODEL of things because it mostly works and it is easier to get right and maintain.<p>I think the author misses the point of MODELLING your systems as immutable
danielovichdk超过 5 年前
A philosopher would say &#x27;we don&#x27;t know yet&#x27;.<p>In the world we live in, based on the human accomplishments so far in history, we can say the world i immutable. But over time, we can&#x27;t be certain.