From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Perry E. Metzger" Newsgroups: gmane.emacs.devel Subject: Re: Emacs contributions, C and Lisp Date: Sat, 10 Jan 2015 17:07:54 -0500 Message-ID: <20150110170754.5190cc81@jabberwock.cb.piermont.com> References: <83bnxuzyl4.fsf@gnu.org> <87vbkovhh7.fsf@engster.org> <87387rvobr.fsf@engster.org> <83ppat84hk.fsf@gnu.org> <20150106143933.0090bc83@jabberwock.cb.piermont.com> <83r3v77ij6.fsf@gnu.org> <20150106154539.3d0752c4@jabberwock.cb.piermont.com> <87wq4ype3z.fsf@fencepost.gnu.org> <878uherlf3.fsf@wanadoo.es> <20150108194342.1bd83ed1@jabberwock.cb.piermont.com> <20150109131335.1a39f892@jabberwock.cb.piermont.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1420927707 20758 80.91.229.3 (10 Jan 2015 22:08:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 10 Jan 2015 22:08:27 +0000 (UTC) Cc: emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jan 10 23:08:23 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YA4Ch-0007dC-Ur for ged-emacs-devel@m.gmane.org; Sat, 10 Jan 2015 23:08:20 +0100 Original-Received: from localhost ([::1]:56311 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YA4Ch-0004gA-1o for ged-emacs-devel@m.gmane.org; Sat, 10 Jan 2015 17:08:19 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55719) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YA4CT-0004g5-Kb for emacs-devel@gnu.org; Sat, 10 Jan 2015 17:08:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YA4CQ-0007hf-De for emacs-devel@gnu.org; Sat, 10 Jan 2015 17:08:05 -0500 Original-Received: from hacklheber.piermont.com ([166.84.7.14]:41596) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YA4CQ-0007XS-9O; Sat, 10 Jan 2015 17:08:02 -0500 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id F244224B; Sat, 10 Jan 2015 17:07:54 -0500 (EST) Original-Received: from jabberwock.cb.piermont.com (jabberwock.cb.piermont.com [10.160.2.107]) by snark.cb.piermont.com (Postfix) with ESMTP id A4EB82DEA48; Sat, 10 Jan 2015 17:07:54 -0500 (EST) In-Reply-To: X-Mailer: Claws Mail 3.10.1 (GTK+ 2.24.25; x86_64-apple-darwin14.0.0) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 166.84.7.14 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:181133 Archived-At: On Sat, 10 Jan 2015 14:29:53 -0500 Richard Stallman wrote: > Here's how all this appears to me. I am considering choosing a > course that seems dangerous, and someone asserts that it is > obligatory, a forced move. He presents arguments I cannot follow, > about a feature I have never seen, which he claims is very > important but I don't know that. The arguments cite facts about > whose veracity I have no independent knowledge. I am happy to provide 1) Detailed explanations of anything you do not understand, regardless of the number of iterations needed so that you feel you have a comfortable working knowledge of the topic. 2) Detailed references to commercial products that provide the sorts of features I'm describing so you may verify for yourself that these features exist and are useful without needing to trust me on anything at all. 3) Detailed and patient assistance of any other sort so you may determine, for yourself, if what I am saying is true. No one wants you to have to trust other people's opinions blindly. > Changing the subject -- making arguments about refactoring while I > am trying to understand about completion -- doesn't impress me > favorably. It interferes with my effort to understand the issue. We have, however, a much fuller set of concerns than completion. Refactoring *is* a real concern. Here, for example, is a list of the sorts of refactorings that IntelliJ, a proprietary editor, makes available for Java programming. You can read them and decide for yourself how many of these could be done without access to an AST -- I suspect the answer is "only a few, and with difficulty". https://www.jetbrains.com/idea/help/refactoring-source-code.html (If you don't know what any of these things mean, we can help explain.) Here is a set of refactorings that the commercial DevExpress add-on to Visual Studio provides: https://www.devexpress.com/Products/CodeRush/refactor_pro.xml#autolist5 There's quite a lot of them as you can see. Now, it is my contention that Emacs could provide much more general sorts of tools, not merely competing with such a proprietary systems but far surpassing them. The commercial tools rarely provide the end user with the ability to reprogram the ways the tools work. They provide only for doing what the developer imagined the user might want to do. One of the reasons that the Clang crowd now has libAST is because they found they needed to write custom code to do many refactorings they wanted to do, and this provided them with a way to do that. However, Emacs could get us beyond all of this. Emacs has, after all, elisp available. In addition to canned refactorings, users could build their own. They could get access to the AST matching API in elisp directly, and with some work one could even allow for interactive development and application of matchers/transformers. The potential here for really cool developer tools is high. I recognize that you don't want me to "change the subject" to refactoring, but I don't see this as a change of subject. The concern isn't as such code completion, that's just a detail. The underlying concern is being able to make Emacs the very best programmer's editor it can possibly be. Modern development environments have astonishing power, and there is an enormous desire on the part of certain parts of the Emacs community to have that power or even more available in Emacs. If you find that you do not understand any comment being made, I am happy to expand and restate until you do feel you understand it. I am sure that others feel the same way. If you wish to be able to verify anything I claim independently, I can provide references and pointers to programs so you can check that I am telling you the truth without having to trust me at all, and I'm sure others will also happily provide such information. Perry -- Perry E. Metzger perry@piermont.com