From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: IDE Date: Sun, 11 Oct 2015 19:04:02 +0300 Message-ID: <834mhxqtn1.fsf@gnu.org> 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> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Trace: ger.gmane.org 1444579465 15460 80.91.229.3 (11 Oct 2015 16:04:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 11 Oct 2015 16:04:25 +0000 (UTC) Cc: emacs-devel@gnu.org, adatgyujto@gmail.com, dgutov@yandex.ru To: =?utf-8?Q?Przemys=C5=82aw?= Wojnowski Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Oct 11 18:04:13 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 1ZlJ6b-00009M-HX for ged-emacs-devel@m.gmane.org; Sun, 11 Oct 2015 18:04:13 +0200 Original-Received: from localhost ([::1]:48859 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlJ6a-0004pP-VP for ged-emacs-devel@m.gmane.org; Sun, 11 Oct 2015 12:04:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlJ6O-0004pC-8V for emacs-devel@gnu.org; Sun, 11 Oct 2015 12:04:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlJ6K-0007yU-UX for emacs-devel@gnu.org; Sun, 11 Oct 2015 12:04:00 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:56360) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlJ6K-0007yO-MH for emacs-devel@gnu.org; Sun, 11 Oct 2015 12:03:56 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NW200300CB8AH00@a-mtaout20.012.net.il> for emacs-devel@gnu.org; Sun, 11 Oct 2015 19:03:55 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([84.94.185.246]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NW2003SHCMH6O20@a-mtaout20.012.net.il>; Sun, 11 Oct 2015 19:03:54 +0300 (IDT) In-reply-to: <561A6199.1020901@cumego.com> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.166 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:191244 Archived-At: > Cc: adatgyujto@gmail.com, emacs-devel@gnu.org > From: Przemys=C5=82aw Wojnowski > Date: Sun, 11 Oct 2015 15:18:17 +0200 >=20 > For (project-oriented/enterprise) Java the features are: > 1. Project support > IDE has to know the boundaries of a project - where are sources, te= sts, libs,=20 > resources/assets (additional files used in an app in runtime), docs= - and what=20 > are relations between them. Also it has to know how to work with pr= oject's build=20 > tool (be it Maven, Gradle, etc.). > A programmer joining a project (99% of cases) should be able to ope= n/import it=20 > and start work. Every Java IDE have that. >=20 > 2. Code completion > From whole project, used libraries, and resources >=20 > 3. Jumping around the project code and resources. > Jumping to around the project code and used libraries. Another thin= g is jumping=20 > to/from resources (for example aspects can be defined in an XML fil= e and IDE=20 > could allow to jump to matching classes). >=20 > 4. Finding usages of fields, methods, types. > Helps to wrap head around project. >=20 > 5. Automatic compilation and showing compilation erros/warnings. > Tightens development feedback loop. >=20 > 6. Running the tests (current, selected, all) > Tighten development feedback loop. >=20 > 7. Debugging > A must, especially for legacy code, so, basically 99% of projects. = :-) >=20 > 8. Running the app >=20 > 9. Basic refactoring. > I do refactor _a lot_ and in my experience the most important refac= toring is=20 > Extract Method. Others, while helpful, are less often used, compare= d to the EM. > One variation of Extract Method is "EM with finding duplicates", wh= ich works=20 > like this: > - ask user for a method name, > - find all occurrences of selected code in the buffer > - ask user if she wants to replace all occurrences with the call to= the new method. > This is fantastic feature that Intellij has and helps to remove a l= ot of=20 > duplicated code. >=20 > 10. Showing documentation (tooltip, etc.) I think you forgot profiling.