From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tom Tromey Newsgroups: gmane.emacs.devel Subject: Re: What a modern collaboration toolkit looks like Date: Tue, 01 Jan 2008 12:43:52 -0700 Message-ID: References: <20071230122217.3CA84830B9A@snark.thyrsus.com> <20071231130712.GB8641@thyrsus.com> <20071231214108.GD26639@thyrsus.com> <87fxxi1k4k.fsf@catnip.gol.com> Reply-To: Tom Tromey NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1199218429 6215 80.91.229.12 (1 Jan 2008 20:13:49 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 1 Jan 2008 20:13:49 +0000 (UTC) Cc: esr@thyrsus.com, esr@snark.thyrsus.com, Eli Zaretskii , emacs-devel@gnu.org To: Miles Bader Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 01 21:14:09 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1J9nUw-00075e-WC for ged-emacs-devel@m.gmane.org; Tue, 01 Jan 2008 21:14:03 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J9nUa-00058s-Te for ged-emacs-devel@m.gmane.org; Tue, 01 Jan 2008 15:13:40 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J9nUX-00058f-Qy for emacs-devel@gnu.org; Tue, 01 Jan 2008 15:13:37 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J9nUW-00058P-Gr for emacs-devel@gnu.org; Tue, 01 Jan 2008 15:13:36 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J9nUW-00058F-7Q for emacs-devel@gnu.org; Tue, 01 Jan 2008 15:13:36 -0500 Original-Received: from mx1.redhat.com ([66.187.233.31]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1J9nUP-0001hk-FQ; Tue, 01 Jan 2008 15:13:29 -0500 Original-Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m01KDN8B011001; Tue, 1 Jan 2008 15:13:23 -0500 Original-Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m01KDNYt001652; Tue, 1 Jan 2008 15:13:23 -0500 Original-Received: from opsy.redhat.com (ton.yyz.redhat.com [10.15.16.15]) by pobox.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m01KDMo3019906; Tue, 1 Jan 2008 15:13:22 -0500 Original-Received: by opsy.redhat.com (Postfix, from userid 500) id DF667C8803B; Tue, 1 Jan 2008 12:43:52 -0700 (MST) X-Attribution: Tom In-Reply-To: <87fxxi1k4k.fsf@catnip.gol.com> (Miles Bader's message of "Tue\, 01 Jan 2008 09\:10\:03 +0900") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.990 (gnu/linux) X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:85816 Archived-At: >>>>> "Miles" == Miles Bader writes: Miles> These people apparently treat software as some kind of fashion Miles> contest. Do you expect us to put any stock in what they say? I tell all my friends that I work in a fashion industry :-). How else to explain the long parade of fads and silver bullets, or at least silver-handled six-shooters? But seriously... A couple years ago, after using and loving Emacs for 15 years, I moved all my Java development into Eclipse. I did this despite the facts that Eclipse's editor is amazingly bad and its UI is clunky and impossible to customize. The reason I did this is that Eclipse provides a number of compelling features which Emacs does not. At least, it does for Java -- for other programming languages it is not nearly as useful, IME. * An integrated Java compiler that knows about your whole project. This has a number of nice implications: * No more waiting. It compiles while you type. When you save a file you are ready to run your tests immediately. * Class browsing, call hierarchy information ("find all callers of this method"), intelligent completion, documentation and API help while you type. * Refactoring. E.g., a simple one is "rename this class". If you rename into a different package it will update all users, all import statements, etc. (There are lots of nice refactorings.) * Quick fix. Certain common problems (warnings and whatnot) can come with a fix, you click and Eclipse fixes your code. * Will write the Javadoc "skeleton" for you, so you can just fill in the details. * A problem view. I loved this. Instead of compiling and then stepping through errors and warnings, the view shows everything, is always up-to-date, and is filterable. * Eclipse knows about projects, and you can easily share settings with other developers. (This is what inspired my as-yet-unfinished "project.el" hacks.) This means that getting a new developer up-and-running is extremely easy. Combined with the integrated compiler and build setup, usually a developer can check out a project and immediately have it be built and be ready to work. You can check in launchers so that common test or debug invocations are automatically available after checkout. Many features are trivial to restrict to the current project -- the problem view, searches, browsing, file-name completion. In Emacs most things are global by default -- you can run a single gdb, find-tag uses a global tags buffer, etc. * The version control UI is much friendlier than VC. At least, that is true as of a couple weeks ago. Newer versions have bugzilla integration, and task-based ways to filter what you work on and see ("mylyn" -- I still haven't played with this). The above is necessarily a brief list. I can go into more detail if you really want. Basically, for Java, Eclipse changed the way I work. It pained me to make this move. I love Emacs. But, Emacs doesn't get the same level of investment, and at the time appeared from the outside to be dead (no release in years). None of these features is impossible to implement in Emacs. In fact many could probably be done by reusing Eclipse's Java compiler. Another interesting IDE to look at is NetBeans. I've used it a lot less than I used Eclipse, and it seemed to have fewer killer features. But I went to JavaOne last year and saw something really interesting -- every new technology introduced during a keynote came with a corresponding NetBeans plugin. And, you could get started using that technology *immediately* by going to some online NetBeans repository (accessible directly in the IDE) and downloading the plugin. This is, more or less, where ELPA came from. The idea is simple -- your IDE won't ever contain absolutely everything, so make it trivial to fetch and install helpful packages. (Eclipse also has a plugin downloader, though it is pretty bad.) Anyway, the bar for a programming editor is much higher now than when I started using Emacs. Nowadays intelligent completion, API help, browsing, and refactoring are the baseline. Emacs does some of these in some modes -- elisp is the best example; lisp-complete-symbol and eldoc are quite nice -- but for most modes this stuff is either missing, or the defaults are wrong. I hope you don't mind that I don't enumerate Emacs' many advantages. There are tons of them. Emacs is very, very strong at the mechanics of editing, and it is very simple to extend (lisp may be weird or whatever, but even a trivial Eclipse plugin is really hard). However, while Emacs rocks at these things, the IDEs have been working hard to intelligently analyze source and apply this understanding in useful ways. HTH, Tom