Intel might just soon be up against a physical wall (i.e. the kT barrier) which will put an end to Moore's law, and where a paradigm shift is needed (Ray Kurzweil refers to this as the 4'th age of computing). And some of the more prominent theory regarding the subject suggests that immutability is perhaps *not* the way of the future then.
The theory of entropy [specifically Landauer's principle] states that it costs time and energy to destroy information, which is why there's research going into so-called symmetric reversible computing [http:// en.wikipedia.org/wiki/Reversible_computing]. There would be no clash with our trusted Turing nor Neumann, though we *would* need new logic gates as NAND and NOR gates are irreversible - Toffoli [http://en.wikipedia.org/wiki/Toffoli_gate] and Fredkin [http://en.wikipedia.org/wiki/Fredkin_gate] gates are examples of such reversible gates. It all seems just a bit more approachable than quantum computing, as there are entire ALU's implemented using reversible logic. On Jun 17, 5:04 pm, Kirk <kirk.pepperd...@gmail.com> wrote: > I too suspect that eventually Intel and like will find a solution to the > write bandwidth problem but until then.... Kirk > On Jun 17, 2011, at 4:45 PM, Kevin Wright wrote: > > > > > > > > > While we're travelling down this line of thought... let me throw Jonathan > > Edwards' "Coherent Reaction" approach into the mix. > >http://dspace.mit.edu/bitstream/handle/1721.1/45563/MIT-CSAIL-TR-2009... > > > (yes, the same guy who wrote "switching to plan J") > > > As Kirk points out, CPU write bandwidth can be a problem for performance, > > and immutability puts extra pressure on this. Hardware can help, and I > > believe we *will* get this support as future core counts continue to grow. > > After all, the pressure here is coming from LINQ in .NET, F#, fortress, > > clojure, etc. in addition to Scala, so it's going to be of value to the HPC > > crowd, as well as IBM, Oracle, Microsoft and other groups who are highly > > persuasive when it comes to requesting hardware features. > > > So sure, there are valid reasons for sacrificing immutability; but the > > problem is that we're talking about performance, and therefore > > optimisation. > > > As we all know, premature optimisation is the root of all evil, and I don't > > think you can get much more premature than giving up on the concept after > > reading a mailing list long before you've written even a single line of > > code. > > > On 17 June 2011 15:16, Josh Berry <tae...@gmail.com> wrote: > > On Fri, Jun 17, 2011 at 10:05 AM, Kirk <kirk.pepperd...@gmail.com> wrote: > > > If you don't want something to change the internal state, don't export it. > > > Hmm... sounds like you are talking more about complex datastructures. > > I'm typically more concerned with immutability in value types. And, I > > ultimately wouldn't even care if the actual representation of the > > String I'm using is mutated behind me. Interned for example. What I > > care about is the value that I get when I use it stays the same. This > > is similar to the GC argument. I don't care if my object stays put in > > memory after I construct it. Only that I always get back to the same > > object when I reference it. > > > Now, I know there are "persistent" datastructures. My understanding > > is the majority of those actually use mutations behind the scenes. > > (At least the complex ones. I confess I have not read all of > > Functional Datastructures. Much less understood it.) > > > -- > > You received this message because you are subscribed to the Google Groups > > "The Java Posse" group. > > To post to this group, send email to javaposse@googlegroups.com. > > To unsubscribe from this group, send email to > > javaposse+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/javaposse?hl=en. > > > -- > > Kevin Wright > > > gtalk / msn : kev.lee.wri...@gmail.com > > mail: kevin.wri...@scalatechnology.com > > vibe / skype: kev.lee.wright > > quora:http://www.quora.com/Kevin-Wright > > twitter: @thecoda > > > "My point today is that, if we wish to count lines of code, we should not > > regard them as "lines produced" but as "lines spent": the current > > conventional wisdom is so foolish as to book that count on the wrong side > > of the ledger" ~ Dijkstra > > > -- > > You received this message because you are subscribed to the Google Groups > > "The Java Posse" group. > > To post to this group, send email to javaposse@googlegroups.com. > > To unsubscribe from this group, send email to > > javaposse+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/javaposse?hl=en. -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to javaposse@googlegroups.com. To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.