Return-Path: X-Original-To: apmail-commons-dev-archive@www.apache.org Delivered-To: apmail-commons-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 241AC10303 for ; Thu, 6 Jun 2013 16:21:59 +0000 (UTC) Received: (qmail 83984 invoked by uid 500); 6 Jun 2013 16:21:58 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 83813 invoked by uid 500); 6 Jun 2013 16:21:58 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 83797 invoked by uid 99); 6 Jun 2013 16:21:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jun 2013 16:21:56 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of garydgregory@gmail.com designates 209.85.214.41 as permitted sender) Received: from [209.85.214.41] (HELO mail-bk0-f41.google.com) (209.85.214.41) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jun 2013 16:21:48 +0000 Received: by mail-bk0-f41.google.com with SMTP id jc3so1718278bkc.0 for ; Thu, 06 Jun 2013 09:21:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=7h3MBFQwXYmw9r1eolcE+ys/zy8Ue3SCn7Arm+fDsyA=; b=UtaK4Kgf0CL6gSX4DgvA2RvH3GAjWFJGEEjKhQR0GzOvI5AUOfsD90FGsfcE7jz46Y iJ9HO743mVfjnBYHiEty2BRdDQNG7+uKSn7/piiBKz5Z4v6fjKPNfqLlUBbFnGEpttaY DndfEZOKtsO7EActYa9eA3HU4jzPUkcXsIx7MuMCQ4EIuYtNkj7nov1ttlZa5hUDWYMp CpXp9g/spSZdNwCuHaNS5qDGftpEj98i7eqVhCLgxwB6Dmd5e8MXkeRQ0a5RqAo6kN6o dExk1aIGHux7q6Nzl+XruIDKusp1iIxHOSJtO8V/IpElJk7FlXB6xTozninaiPN4bf/Z yZqg== MIME-Version: 1.0 X-Received: by 10.204.170.200 with SMTP id e8mr11191369bkz.168.1370535688481; Thu, 06 Jun 2013 09:21:28 -0700 (PDT) Received: by 10.204.50.139 with HTTP; Thu, 6 Jun 2013 09:21:28 -0700 (PDT) In-Reply-To: References: <519B9852.7050206@apache.org> Date: Thu, 6 Jun 2013 12:21:28 -0400 Message-ID: Subject: Re: Creating CSVFormats (again :) From: Gary Gregory To: Commons Developers List Content-Type: multipart/alternative; boundary=bcaec52c6635dd681004de7eb4aa X-Virus-Checked: Checked by ClamAV on apache.org --bcaec52c6635dd681004de7eb4aa Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Jun 5, 2013 at 9:22 AM, Benedikt Ritter wrote: > 2013/5/23 Gary Gregory > > > On Thu, May 23, 2013 at 3:31 AM, Benedikt Ritter > > wrote: > > > > > 2013/5/21 Gary Gregory > > > > > > > On Tue, May 21, 2013 at 2:52 PM, Benedikt Ritter > > > > > wrote: > > > > > > > > > 2013/5/21 Emmanuel Bourg > > > > > > > > > > > Le 21/05/2013 17:47, Benedikt Ritter a =C3=A9crit : > > > > > > > > > > > > > Well that still doesn't tell us, what your definition of a > "real" > > > > > builder > > > > > > > is :-) The latest trunk contains a builder implementation wit= h > a > > > > fluent > > > > > > > API. It has been criticized for being to verbose when creatin= g > > new > > > > > > formats > > > > > > > from existing ones. This is why we came up with this new > > proposal, > > > > that > > > > > > is > > > > > > > less verbose but requires static imports. > > > > > > > > > > > > What about simply going back to the previous design (fluent API > > > without > > > > > > builder) ? The only drawback was the need to validate the forma= t > > > > > > explicitly. That is the best compromise IMHO. > > > > > > > > > > > > > > > > Hi Emmanuel, > > > > > > > > > > I think we have discussed this a lot (maybe to much). You certain= ly > > > know > > > > my > > > > > arguments against the old solution and I still think they are > valid. > > > > Also, > > > > > I understand your arguments and think they are equally valid. > > > > > I believe we have tried a lot to finally reach consensus about th= is > > > > issue. > > > > > We have tried several solutions and to me it seems, that consensu= s > > can > > > > > simply not be reached (an argument that can't be settled in 5 > minutes > > > > can't > > > > > be settled with arguments at all). > > > > > > > > > > Having this said, I'm willing to give my +0 for going back for th= e > > old > > > > impl > > > > > if the others (by this I specially me Gary and sebb) also agree. > > > > > I believe that this issue has blocked us for such a long time fro= m > > > > pushing > > > > > csv forward, that it is time to overcome personal preferences and > > just > > > > > chose one solution or the other. > > > > > > > > > > So if you can at least convince Gary and sebb, let's do it and th= en > > go > > > > on. > > > > > I want to see csv see the light of day :-) > > > > > > > > > > > > > Nice message Benedikt. > > > > > > > > > > Thanks :) > > > > > > > > > > > > > > At the end of the day, here is what I am looking for: Don't force m= e > to > > > use > > > > a style of API to use the product. If I want to use fat constructor= s > > that > > > > may be hard to read, let me. If I want to use a fluent API, provide > it > > > and > > > > let people who like that style use it. At a lower level, do make > things > > > > immutable where they make sense. If the fluent API and/or the > > > immutability > > > > of some objects has the side effect or creating a lot of garbage, > then > > > that > > > > is the cost of using that feature, which is why I do not want to > force > > > > people to use it. Let there be light ;) > > > > > > > > > > So this is your +1 for the old API + public ctor? > > > > > > > I'm not sure which is which anymore and I do not want to take the time > > today to dive back in this one. But it does feel we are getting close..= . > to > > something ;) > > > > > Sorry, for the late follow up... > What we are talking about is probably something like r1399051 [1] but wit= h > a public ctor. > > WDYT? > That should be OK. Turning the default ctor into a public one should satisfy both audiences: the fluent-obsessed and the I-know-what-I'm-doing. Gary > > Benedikt > > [1] > > http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/a= pache/commons/csv/CSVFormat.java?revision=3D1399051&view=3Dmarkup > > > > > > Gary > > > > > > > > I'm excited to hear sebb's opinion :) > > > > > > Benedikt > > > > > > > > > > > > > > Gary > > > > > > > > > > > > > Benedikt > > > > > > > > > > > > > > > > > > > > > > Emmanuel Bourg > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > http://people.apache.org/~britter/ > > > > > http://www.systemoutprintln.de/ > > > > > http://twitter.com/BenediktRitter > > > > > http://github.com/britter > > > > > > > > > > > > > > > > > > > > > -- > > > > E-Mail: garydgregory@gmail.com | ggregory@apache.org > > > > Java Persistence with Hibernate, Second Edition< > > > > http://www.manning.com/bauer3/> > > > > JUnit in Action, Second Edition > > > > Spring Batch in Action > > > > Blog: http://garygregory.wordpress.com > > > > Home: http://garygregory.com/ > > > > Tweet! http://twitter.com/GaryGregory > > > > > > > > > > > > > > > > -- > > > http://people.apache.org/~britter/ > > > http://www.systemoutprintln.de/ > > > http://twitter.com/BenediktRitter > > > http://github.com/britter > > > > > > > > > > > -- > > E-Mail: garydgregory@gmail.com | ggregory@apache.org > > Java Persistence with Hibernate, Second Edition< > > http://www.manning.com/bauer3/> > > JUnit in Action, Second Edition > > Spring Batch in Action > > Blog: http://garygregory.wordpress.com > > Home: http://garygregory.com/ > > Tweet! http://twitter.com/GaryGregory > > > > > > -- > http://people.apache.org/~britter/ > http://www.systemoutprintln.de/ > http://twitter.com/BenediktRitter > http://github.com/britter > --=20 E-Mail: garydgregory@gmail.com | ggregory@apache.org Java Persistence with Hibernate, Second Edition JUnit in Action, Second Edition Spring Batch in Action Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory --bcaec52c6635dd681004de7eb4aa--