tag:blogger.com,1999:blog-5819005.post5620164581449021156..comments2024-03-16T02:17:55.433-07:00Comments on Programming and politics: Concurrency Patterns: Java, Scala, and ClojureAnonymoushttp://www.blogger.com/profile/08698131967747444207noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-5819005.post-1625965596715136292018-08-17T05:33:55.306-07:002018-08-17T05:33:55.306-07:00Nice Blog, I really wonder to visit your blog, Tha...<br />Nice Blog, I really wonder to visit your blog, Thanks a lot! for sharing the useful Information.<br /><a href="http://www.brninfotech.com/" rel="nofollow">iphone job Oriented course </a><br /><a href="http://www.brninfotech.com/" rel="nofollow">iphone app training course</a><br /><a href="http://www.brninfotech.com/" rel="nofollow">Best ios training in Hyderabad</a>BrnInfotechhttps://www.blogger.com/profile/16784594229517220833noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-13470750965422102722017-08-17T04:54:03.311-07:002017-08-17T04:54:03.311-07:00We are a third party technical support service. Av...We are a third party technical support service. <b><a href="http://www.avastcomsetup.com" rel="nofollow">Avast Customer Support</a></b> is here to help you out with the whole procedure to Download <b><a href="http://www.avastcomsetup.com" rel="nofollow">Avast Antivirus</a></b> online, We not only fix your <b><a href="http://www.avastcomsetup.com" rel="nofollow">Avast Support</a></b> related issues but will guide with how to get started with your new Avast product once it gets installed successfully.We at <b><a href="http://avastcomsetup.com" rel="nofollow">Avast Tech Support</a></b> provides service to protect your PC from potential online threats and external attacks like viruses, Trojans, malwares, spywares and phishing scams. And <b><a href="http://www.avastcomsetup.com/avast-refund.html" rel="nofollow">Avast Refund</a></b>. Call on our <b><a href="http://www.avastcomsetup.com" rel="nofollow">Avast Phone Number</a></b>.<br /><br /><b><a href="http://gmailcustomerservice.com/" rel="nofollow">Gmail Customer service</a></b> is a third party technical support service for Gmail users when they face any technical issue or error in their Gmail account. Our <b><a href="http://gmailcustomerservice.com/" rel="nofollow">Gmail Customer Support</a></b> team solves issues like forgot Gmail account password, Gmail configuration or Sync issues, recover deleted emails and many more. Toll Free number (800) 986-9271<br />How you install or reinstall Office 365 or Office 2016 depends on whether your Office product is part of an Office for home or Office for business plan. If you're not sure what you have, see what <b><a href="http://www.officecomsetup.ca" rel="nofollow">office com setup</a></b> products are included in each plan and then follow the steps for your product. The steps below also apply if you're installing a single, stand-alone Office application such as Access 2016 or Visio 2016. Need Help with <b><a href="http://www.officecomsetup.ca" rel="nofollow">office setup</a></b> Enter Product Key? Call 1-800-000-0000 Toll Free<br /><b><a href="http://www.supportfornorton.com" rel="nofollow">Norton Tech Support</a></b> is a third party service provider and not in any way associated with Norton or any of its partner companies. We offer support for Norton products and sell subscription based additional warranty on computer and other peripheral devices. Call our Toll Free number 1 855 966 3855<br />Other ServicesAnonymoushttps://www.blogger.com/profile/03771535874358363701noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-25945455979429770092011-11-01T06:03:52.858-07:002011-11-01T06:03:52.858-07:00Nice Post .. I am always looking for such articles...Nice Post .. I am always looking for such articles.. Which is really resourceful.Thanks <br /><br /><a href="http://www.china-tour-guides.com/" rel="nofollow">Chinese gambling</a>Gambling in Chinahttp://www.china-tour-guides.com/noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-16464139591972307392011-07-20T02:06:43.077-07:002011-07-20T02:06:43.077-07:00Very interesting. Java is making problems constant...Very interesting. Java is making problems constantly so I am happy for every information.Viagra kaufenhttp://www.depharmazie.com/viagra/noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-30943196719844772322011-07-17T03:22:03.978-07:002011-07-17T03:22:03.978-07:00Hi, This is really nice information here.... very ...Hi, This is really nice information here.... very interesting too... Thanks for the share....buy valium diazepamhttp://hepnermfg.com/noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-63136791764404512602011-07-09T08:47:52.630-07:002011-07-09T08:47:52.630-07:00Superb work! The data supplied was very useful. I ...Superb work! The data supplied was very useful. I hope that you maintain the good work accomplished.alprazolam onlinehttp://xanaxalprazolam.com/noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-71053643037300313192011-06-27T10:14:26.994-07:002011-06-27T10:14:26.994-07:00good things,I think that I will get more informati...good things,I think that I will get more information about it because java is one of the best system in the computerViagra Onlinehttp://www.iservepharmacy.com/noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-32292541623344724002010-07-07T17:05:54.338-07:002010-07-07T17:05:54.338-07:00I'm curious about your speed comparison. Did ...I'm curious about your speed comparison. Did you benchmark the three approaches and compare how they perform a similar operation, or are those placements on the axis based on your own assumptions and reasoning? Your line of reasoning makes sense to me, but I am skeptical about your conclusions in the absence of hard numbers. In particular I've read that Scala's actors are quite slow. If you *do* have any benchmarks, or know where we can find some, please let us know!Unknownhttps://www.blogger.com/profile/10646916946377688359noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-50017487935254621052009-11-12T05:32:58.070-08:002009-11-12T05:32:58.070-08:00Hi Michael,
I apprecie this article but I not unde...Hi Michael,<br />I apprecie this article but I not understand your difference In "Efficiency" and "Speed": I thin kthat a speed language is efficient too.<br />Scala requires the copy of data between object with the actor's model: it's a very inefficient operation. How it's possibile Scala is speedest language?alepuziohttps://www.blogger.com/profile/10635785196474126836noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-81210327454874701092009-10-28T02:02:16.467-07:002009-10-28T02:02:16.467-07:00@ouertani
Switched? No. But certainly another too...@ouertani<br /><br />Switched? No. But certainly another tool in the toolbox :-)Roman Roelofsenhttps://www.blogger.com/profile/12924457129060196577noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-47427701567423274292009-10-27T02:54:18.814-07:002009-10-27T02:54:18.814-07:00@roman
I remember you are scala fun ;) did you swi...@roman<br />I remember you are scala fun ;) did you switch to Clojure ?ouertanihttps://www.blogger.com/profile/12568186544549910882noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-56650839142457638712009-10-26T02:52:53.088-07:002009-10-26T02:52:53.088-07:00I have to be honest, Clojure scares me a bit with ...I have to be honest, Clojure scares me a bit with the amount of brackets... :) If there would be an "ease-of-use" gradation I'd put it at the far end. The main objection is code readability. <br /><br />I would be glad to believe that this will change if one spends half a year programming in it though. But my sympathies are with Scala for now :)Anna Nachesahttps://www.blogger.com/profile/06815076353874108574noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-56490950404958729782009-10-24T14:47:20.223-07:002009-10-24T14:47:20.223-07:00Java more than just locking for years comes with a...Java more than just locking for years comes with a very large concurrency package than covers most of common cases.<br /><br />As for STM we're (The DeuceSTM team) working on adding STM to Java and already release a pretty stable 1.1 version.<br />For more details see: http://www.deucestm.org/Guy Korlandhttps://www.blogger.com/profile/16851745576455431979noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-50490088226108342552009-10-23T08:32:32.727-07:002009-10-23T08:32:32.727-07:00For your speed comparison chart, you'd be bett...For your speed comparison chart, you'd be better off comparing Clojure's agents to Scala's actors. Comparing on that level, I'd imagine Clojure would actually be the fastest because "Clojure's agents are reactive not autonomous. There's no imperative message loop and no blocking receive."<br /><br />In regard to the difficulty of getting things right, Scala uses objects everywhere which are riddled with mutable state. If you forget to protect access via actors, you're going to run into problems. In contrast, Clojure's native types are all immutable, so the same danger doesn't exist.<br /><br />This being said, I did enjoy the article, but I feel like a little more research should have been done ahead of time.Travis Whittonhttps://www.blogger.com/profile/14592647486468034166noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-26897985196082681612009-10-23T02:56:31.310-07:002009-10-23T02:56:31.310-07:00"To write correct code in Clojure, you have t..."To write correct code in Clojure, you have to figure out what things need to be protected by a dosync macro, and make sure those things are declared as refs. I think that would be an easy thing to screw up."<br /><br />IMHO in Clojure it is exactly the opposite because its easy to do the right thing and hard to screw up:<br /><br />- If the data is immutable, there is no reason to protect it<br /><br />- If the data is mutable, you _must_ put the data in a ref<br /><br />- Once the data is in a ref, you are only able to modify it in a transaction<br /><br />Therefore Clojure guarantees that data is only mutated in a transaction and your are not able to to step out of this!Roman Roelofsenhttps://www.blogger.com/profile/12924457129060196577noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-80291789193058101632009-10-23T00:49:07.813-07:002009-10-23T00:49:07.813-07:00Great article on a complicated theme. One line I q...Great article on a complicated theme. One line I question though is this:<br /><br />"If you send around messages between actors, they need to be immutable, which means a lot of copies of data."<br /><br />Perhaps I misunderstood, but I think that having immutable messages means you _don't_ have to copy them, but can instead reuse them safely, knowing they can't be changed.Steve McLeodhttps://www.blogger.com/profile/14821039898589441072noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-66632762044245034752009-10-22T21:09:02.569-07:002009-10-22T21:09:02.569-07:00Just to quote myself: "It wold be more accura...Just to quote myself: "It wold be more accurate to say ... software transactional memory instead of Clojure"<br /><br />So yeah, I know that Clojure has more than just STM :-)Anonymoushttps://www.blogger.com/profile/08698131967747444207noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-90096141536346507492009-10-22T20:16:48.743-07:002009-10-22T20:16:48.743-07:00I think Clojure and Scala will (fairly quickly) pi...I think Clojure and Scala will (fairly quickly) pick up useful concurrency idioms from each other. Certainly Clojure already has several more choices than STM. <br /><br />Another important axis to consider is emphasis on/support for persistent data structures. Java does poorly here, and whether Clojure or Scala wins depends on whether you think supporting in-place mutation is a good idea.<br /><br />Have you seen Rich's video on persistent data and managed references at http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey? I would be curious to know how/if this influences your assessment.Unknownhttps://www.blogger.com/profile/12215509551577051295noreply@blogger.comtag:blogger.com,1999:blog-5819005.post-28955169104179250962009-10-22T19:40:51.470-07:002009-10-22T19:40:51.470-07:00Clojure gives you more than one model of concurren...Clojure gives you more than one model of concurrency:<br /><br />1) Refs (aka STM)<br />2) Agents (aka Actors)<br />3) Vars (aka thread-local state changes)<br />4) Atoms (similar to Agents but synchronous)<br /><br />http://clojure.org/concurrent_programming<br />http://clojure.org/vars<br />http://clojure.org/agents<br />http://clojure.org/atoms<br />http://clojure.org/refsAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5819005.post-48262123174037736562009-10-22T18:35:14.657-07:002009-10-22T18:35:14.657-07:00STM is one of three concurrency control mechanisms...STM is one of three concurrency control mechanisms in Clojure. STM is for synchronous, coordinated state. Agents are a more actor-like mechanism for asynchronous and independent state. Atoms are somewhere between and are used for synchronous, independent state.Unknownhttps://www.blogger.com/profile/03332537222647784056noreply@blogger.com