digitalmars.D - Brain-limited informatics problems
- bearophile (10/11) Sep 29 2009 The following is a quote from the transcript of this:
- Walter Bright (2/5) Sep 29 2009 D's scope statement specifically addresses transactional safety.
- language_fan (4/10) Sep 30 2009 Indeed, maybe SPJ should just retire as D solves all problems wrt
The following is a quote from the transcript of this: http://www.infoq.com/interviews/armstrong-peyton-jones-erlang-haskell (To see the whole transcript click on the "show all" button, and then select "no style" if you use Firefox). This part of the dialogue shows a possible usage for pure (or more pure) languages: to correctly implement, avoiding to go mad, very tricky transactional algorithms. In such situations the limiting factor is not the CPU nor the amount of programmer's time spent on the code (so both C and Python are unfit), but it's the brain of the programmer, because such algorithms are so tricky and complex that the problem is to understand them (enough to produce a correct implementation). So a multi-purpose and multi-paradigm language (like Scala, and maybe future D2) can try to become fit for those purposes too (maybe not as fit as Haskell & Co. but fit enough for smaller similar purposes). In such situations performance is not the most important thing, as it's not important for the language to be handy and quick to write. What's useful is to have a language that keeps sides effects to the minimum allowing to create the more isolated subsystems as possible. I don't know if you can create such purer subsets into general languages like Scala/D2, but I think it may be doable.Suddenly people want to know how to write distributed programs, which they never wanted to do before. So, how do you do distributed transactions? How do you do consistency? It was always a pretty obscure part of computer science, these distributed algorithms. Then we said "We've got these to do parallel. How the heck do we program these things?" In Erlang or Haskell, these algorithms are just difficult, but in other languages they are...SPJ: Downright impossible! JA: Yeah, right! I mean even if you have a very clean, pure programming language and you take Paxton algorithms or something like that, they are complicated things. They make your head hurt. There is a whole branch of mathematics, a whole branch of computer science to understand distributed algorithms and they live at the bottom of these social networks and things, ticking along. So I don't think you are going to see Erlang replacing Javascript or anything like that in browsers, but where you are seeing them being deployed is in the infrastructures, in the clouds and things like that, to glue the bits together properly, because that's where you need the complex algorithms. We are seeing an infrastructure-building things, cloud computing and what you are doing inside modern massive multicores, how do you organize computations. There where it's being used a lot.< Bye, bearophile
Sep 29 2009
bearophile wrote:This part of the dialogue shows a possible usage for pure (or more pure) languages: to correctly implement, avoiding to go mad, very tricky transactional algorithms.D's scope statement specifically addresses transactional safety.
Sep 29 2009
Tue, 29 Sep 2009 18:15:27 -0700, Walter Bright thusly wrote:bearophile wrote:Indeed, maybe SPJ should just retire as D solves all problems wrt transactions. D2 also has a purely functional subset called SafeD which effectively replaces his modest brainchild, Haskell.This part of the dialogue shows a possible usage for pure (or more pure) languages: to correctly implement, avoiding to go mad, very tricky transactional algorithms.D's scope statement specifically addresses transactional safety.
Sep 30 2009