Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!fx02.iad.POSTED!not-for-mail From: Arved Sandstrom User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Alternatives languages on the JVM: which one or is there no alternative? References: <5293388a$0$15988$e4fe514c@news2.news.xs4all.nl> <529453d2$0$15908$e4fe514c@news2.news.xs4all.nl> <73997663-103c-4e48-ac9b-c50e8babfaa6@googlegroups.com> <5294b061$0$15961$e4fe514c@news2.news.xs4all.nl> <52955f0f$0$296$14726298@news.sunsite.dk> <5295a669$0$15879$e4fe514c@news.xs4all.nl> <19zo5i01fjd4t.101filzjnniw.dlg@40tude.net> <52972d87$0$15919$e4fe514c@news.xs4all.nl> <5297cbd9$0$15882$e4fe514c@news2.news.xs4all.nl> <16c2e66f-de41-4a63-8525-b6703837ae15@googlegroups.com> <52987501$0$15919$e4fe514c@news.xs4all.nl> <01086072-1547-49d0-8ef6-ab6a22deb401@googlegroups.com> <529c9e1c$0$15920$e4fe514c@news.xs4all.nl> <529ca6a9$0$15992$e4fe514c@news.xs4all.nl> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Lines: 73 Message-ID: X-Complaints-To: abuse@newsgroups-download.com NNTP-Posting-Date: Sat, 14 Dec 2013 07:56:08 UTC Organization: Public Usenet Newsgroup Access Date: Sat, 14 Dec 2013 03:56:07 -0400 X-Received-Bytes: 5143 X-Received-Body-CRC: 4081091469 Xref: csiph.com comp.lang.java.programmer:26886 On 12/04/2013 05:39 AM, Sebastian wrote: > Am 03.12.2013 03:07, schrieb markspace: >> On 12/2/2013 12:07 PM, Robert Klemme wrote: >> >>> Still, I don't see any hard reasons that speak against doing real >>> closures. Maybe it's just the pragmatic way, i.e. not enough resources >> >> Have you read any of the discussion on the lambda-dev list? Brain Goetz >> was dead-set against "real" closures. He insisted on several occasions >> that "real" closures were broken and would not have been designed the >> way they were if computer science had known what they know today. >> >> The main issue iirc was that he wanted the lambdas to be immutable. If >> you go back and modify objects or fields by closing over them, then you >> no longer have an immutable operation. Whether the risk was thread >> safty and optimization, or programmer misuse, or something else, I don't >> recall off hand, but he was pretty adamant it was a dumb idea. >> > > Brian Goetz also takes exception to talk of "real closures". Here's > an excerpt from an interview at > > http://www.infoq.com/articles/Brian_Goetz_Project_Lambda_from_the_Inside_Interview > > > > InfoQ: Lambdas, Closures, there is some debate about what the difference > is. What's your perspective? > > Brian: I think getting worked up over whether lambdas as expressed in > Java SE 8 are "real" closures or not is a pretty unconstructive > activity. To me, the use of the term "real" here should be a syntax > error; there are many different languages with closure-like constructs, > with varying degrees of similarity and difference. Declaring that > language X gets to define what a real closure is and any language that > doesn't do it exactly that way isn't real is not helpful. > > That said, there were hard decisions to make about whether to support > features like mutable local capture, nonlocal control flow, exception > transparency, and other features, and having left some of these out > means certain use cases are harder to express naturally; these are > tradeoffs between expressiveness and complexity, and we tried to spend > our complexity budget where it had the most impact for developers. It's > fair to talk about the pros and cons of each of these decisions, but > framing this in terms of "real vs fake closures" is not a constructive > way to have this dialog. > > > -- Sebastian > I get Goetz' argument, a bit. But there is a fairly well established notion of closure - I don't think it's up to Goetz to suggest that there is ambiguity about the definition. I don't like the terminology "closure-like". I respect Brian Goetz. I've read and relied upon much of his literature. Having said that, it's unhelpful and not healthy for any one single person to control so much of the conversation about a language or platform. There's only so many people that can directly influence Java development...as in a dozen or less...but millions use it, and presumably thousands are just as proficient with Java as Goetz or Bloch - except you never hear from them. I think Goetz could have just summarized by explaining what a real closure is, and explaining whether or not Java 8 has one. Maybe two or three sentences. AHS -- When a true genius appears, you can know him by this sign: that all the dunces are in a confederacy against him. -- Jonathan Swift