From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: IDE Date: Fri, 16 Oct 2015 14:42:45 +0300 Message-ID: <5620E2B5.1030304@yandex.ru> References: <5610207A.2000300@harpegolden.net> <83fv1r3gzp.fsf@gnu.org> <83bncf3f9k.fsf@gnu.org> <5610E0BC.8090902@online.de> <83si5r106e.fsf@gnu.org> <831td9z18h.fsf@gnu.org> <5612E996.7090700@yandex.ru> <83bnc7tavr.fsf@gnu.org> <5618C92A.3040207@yandex.ru> <83a8rrt9ag.fsf@gnu.org> <5618D376.1080700@yandex.ru> <831td3t62e.fsf@gnu.org> <561A6199.1020901@cumego.com> <561B9D87.70504@yandex.ru> <561C2C17.3090503@cumego.com> <561DC1CA.6090901@siege-engine.com> <561E3FB6.8010407@yandex.ru> <561EEFDE.7000809@gmail.com> <561F29D0.3070605@yandex.ru> <561FA79C.30207@gmail.com> <56200D07.30206@yandex.ru> <5620A99E.7080009@cumego.com> <5620D109.2010006@yandex.ru> <5620DCCD.8030809@cumego.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1444995798 3383 80.91.229.3 (16 Oct 2015 11:43:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 16 Oct 2015 11:43:18 +0000 (UTC) Cc: emacs-devel@gnu.org To: =?UTF-8?Q?Przemys=c5=82aw_Wojnowski?= , Eric Ludlam Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Oct 16 13:43:18 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 1Zn3Pg-0006u1-SG for ged-emacs-devel@m.gmane.org; Fri, 16 Oct 2015 13:43:09 +0200 Original-Received: from localhost ([::1]:52904 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn3Pg-0003Yj-2G for ged-emacs-devel@m.gmane.org; Fri, 16 Oct 2015 07:43:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:32864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn3PQ-0003Y7-G6 for emacs-devel@gnu.org; Fri, 16 Oct 2015 07:42:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zn3PN-0007Qj-P3 for emacs-devel@gnu.org; Fri, 16 Oct 2015 07:42:52 -0400 Original-Received: from mail-wi0-x234.google.com ([2a00:1450:400c:c05::234]:36567) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn3PN-0007PT-Da for emacs-devel@gnu.org; Fri, 16 Oct 2015 07:42:49 -0400 Original-Received: by wicgb1 with SMTP id gb1so5751240wic.1 for ; Fri, 16 Oct 2015 04:42:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=rq2/E0itbQ44A1QZxWDk6tZYEcOimeUtyJglfQbE2pQ=; b=BkNENoKHPq6yBKX54YA40PhiObwDgBeaU7dJjbPxQqsAGYAcus48QDJzq4DWXGmaqo xS0PpkN3QB6HGyCpoIUaVcFVQ7pM+TYMdMTVM4Uy6opqp7siJIDZ3QGpbMYr+8//s3Ev yRAYTIE8AltvEtYh2ZTmESz3ZlS4X/Zbe4fDqGKdOuW7THemluTz/qrRuko8YP6UBkCi XDd1PPFeoVomWNER8r9ARmzDv6BNOxhy2FhdQPAHE7nMr2YcRglUKFKD+UI1bOTJsYGd pXlv3fX8Mi8GNa4TfzM3iO49PwD+SaZpJGjj72d7KRWBuDpXc9bbM/FEzA0ci0ScXaz0 tlgg== X-Received: by 10.180.149.211 with SMTP id uc19mr4217167wib.50.1444995768506; Fri, 16 Oct 2015 04:42:48 -0700 (PDT) Original-Received: from [10.9.0.103] (nat.webazilla.com. [78.140.128.228]) by smtp.googlemail.com with ESMTPSA id ka10sm22096203wjc.30.2015.10.16.04.42.46 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Oct 2015 04:42:47 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 Thunderbird/42.0 In-Reply-To: <5620DCCD.8030809@cumego.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::234 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:191743 Archived-At: On 10/16/2015 02:17 PM, Przemysław Wojnowski wrote: > IIUC you suggest to use the Bridge Pattern to separate Project Type and > Build Tool abstractions and allow to exchange them independently, right? Possibly. But I'm not sure yet how it'll end up looking in Elisp, and in the API. For all I know, the Project Type doesn't need to reference the Build Tool at all, in the general case. Certain commands would just reference both. So we might be served better with separate notions of "current project" and "current build tool". > (One thing Design Patterns give, except solutions to common design > problems, is a common vocabulary to facilitate communication. So instead > of writing elaborates on design, one can simply say "We could apply The > Bridge between X and Y abstractions", etc.) Yes and no. Details matter. > For example Maven doesn't run "clean" phase by default, when one runs other > phases (compile/package/install), so if an user wants to run "clean > install" > she has to execute two separate commands. But that can be easily defined > as one > compound command (clean-compile). It should be easy to write as a user-defined command anyway. > BTW in the Command Pattern, commands implement a common interface, so an > executor doesn't even know what is executed, except that it is a > command, which > can be a Composite (pattern) Command that implements the same interface. I know all these words as well. :) If you'd like a stab at the implementation (or just defining the API), be my guest. If you'd like to use composite commands, my first question would be how a user would form them (that requires a UI). I think at this stage we should just be satisfied that this is doable, and can be delayed almost indefinitely (that's the beauty of the Composite pattern). > Yes, that would be a good addition too. But sooner or later a use has a > workflow, a set of commands that she runs every time and it would be > good to > allow to define in a separate, easily accessible command. a) We can have command history, b) The user could define new commands. Certain tools could provide some pre-defined ones as well. > By contributors. Sometime projects have very restrictive attitude towards > new contributions and just reject most of proposals if they are not > perfect up > front and doesn't solve all their problems at once. We try to "hone" the proposals to our general liking. On the flip side, that can result in long discussions and, at times, contributor dissatisfaction. >> CEDET is in Emacs sources as well (although is has some omissions). >> See lisp/cedet. > Yes, so when one would like change EDE to, lets say, apply the Bridge > pattern, > which one should be used? I'll let Eric answer this one.