Return-Path: X-Original-To: apmail-mahout-dev-archive@www.apache.org Delivered-To: apmail-mahout-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 E92C99285 for ; Tue, 12 Jun 2012 06:37:32 +0000 (UTC) Received: (qmail 50718 invoked by uid 500); 12 Jun 2012 06:37:32 -0000 Delivered-To: apmail-mahout-dev-archive@mahout.apache.org Received: (qmail 50510 invoked by uid 500); 12 Jun 2012 06:37:31 -0000 Mailing-List: contact dev-help@mahout.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@mahout.apache.org Delivered-To: mailing list dev@mahout.apache.org Received: (qmail 50483 invoked by uid 99); 12 Jun 2012 06:37:31 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Jun 2012 06:37:30 +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 srowen@gmail.com designates 209.85.213.170 as permitted sender) Received: from [209.85.213.170] (HELO mail-yx0-f170.google.com) (209.85.213.170) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Jun 2012 06:37:23 +0000 Received: by yenm2 with SMTP id m2so5874629yen.1 for ; Mon, 11 Jun 2012 23:37:03 -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=KwQHt29joxBxAvNgAJkZrf5cv/TQJ5cjT/bw/GqZrWE=; b=alKjCdS1yUC40QjZCjtdl053nh6ojRbwCkQEGzSBziKqlaE4X9O/C6e1nz2vyZdHvm AqGt1SSbK7jcB2N7NUoQdcwRP96Qk29wisbMpFS8A8tfxULW5sZQeyLkKYeC9AKaahBE Ie/aNwiwcVlWRbK4Y5FhNv2PdJa5+hADfghbtoTQrRgLlasZPIWNuV+kaojEuzMupen+ 6Qb9M5O0IGCbGKoULIkqgAw+STjoXD2kvCfL69rc2loltJNYqI6QpgOfnFxOUcNvXJvw PlWmN/D/4C5+H/8ovuDa+Y52qePVd5u7cP7YYkXe9R3pLPjD4JpT/yuEGn+FYSqc2ucE NtUA== MIME-Version: 1.0 Received: by 10.50.158.129 with SMTP id wu1mr7634041igb.33.1339483022898; Mon, 11 Jun 2012 23:37:02 -0700 (PDT) Received: by 10.50.163.10 with HTTP; Mon, 11 Jun 2012 23:37:02 -0700 (PDT) In-Reply-To: <4FD67A46.7060904@windwardsolutions.com> References: <4FD6014F.6070704@windwardsolutions.com> <4FD67A46.7060904@windwardsolutions.com> Date: Tue, 12 Jun 2012 07:37:02 +0100 Message-ID: Subject: Re: Turn on code inspections, please From: Sean Owen To: dev@mahout.apache.org Content-Type: multipart/alternative; boundary=14dae9340395c3362a04c240b1d9 --14dae9340395c3362a04c240b1d9 Content-Type: text/plain; charset=UTF-8 I myself am only advocating turning on *editor* support for avoiding even writing problems to begin with. I actually agree that post-commit hooks can be hard to use (error #39, stray space on line 319 of file X.java, now where is that...) and noisy. I don't want that burden. I am merely surprised to see funny-looking Java code since, for Java, there has always been one standard across the industry from the start (Sun's), and with editor support, you kinda have to *try* to write such code. I do think tools matter in this regard; IntelliJ is more seamless in finding/fixing stuff but Eclipse does fine here too. Anything like Sun-style Java would be great; what's being committed is not nearly. Style isn't important per se; it's a broken-windows thing. If nobody's bothered about keywords or C-style arrays, it's a good chance people aren't bothered about stuff static analysis can find. And that is correct here. Again -- I'm advocating things that just make these non-issues at time of writing. No hard work. It's hard to use the wrong variable in a loop when the IDE flags it, or says "this cast can't be right" or "'transient' doesn't make sense here" (Again: IntelliJ simply does this a mile better than Eclipse. I do think it shows when you use an IDE that flags this, and when you don't. FWIW -- IntelliJ dominated at Google.) Even this isn't as important per se as the real problems: the code just looks un-designed or at best differently designed in most every major package. Rotting code, deprecated APIs, incomplete stuff, TODO, a mile of copy-and-paste in Bayes, three different frameworks for the same thing (collections, Hadoop jobs, serialization). This is a real problem and tools won't detect this one. But when you aren't worried about formatting and small bugs, when you can refactor with tool support that much more easily -- you do. When it's hard you don't, and others don't. And that's been borne out here. I sense consensus that all this doesn't really matter so much, yes -- that is why it is this way indeed. My years of seeing bad software and good tell me that small-scale quality correlate with, and cause, big-scale quality. At this point I don't know that it is worth really 'fixing' Mahout; it will be superseded in a year or two anyway having accomplished some mission. But it still doesn't hurt to start chipping away, from the small stuff. I will stop tilting at this windmill since I'm not going to do new development in Mahout anyway. On Tue, Jun 12, 2012 at 12:07 AM, Jeff Eastman wrote: > In my case the projects that actually generate revenue for me all use > Eclipse so I have little incentive to switch horses at this point. If we > are raising the bar on style so far that reasonable Eclipse tooling > generates build failures then I am opposed to this level of style checking. > I frankly think we are arguing about minutia and it is counterproductive. > > --14dae9340395c3362a04c240b1d9--