unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Mike Mattie <codermattie@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: What IDE features do we need?
Date: Mon, 28 Apr 2008 11:28:45 -0700	[thread overview]
Message-ID: <20080428112845.2c4222e6@reforged> (raw)
In-Reply-To: <4810C19F.5000408@emf.net>

[-- Attachment #1: Type: text/plain, Size: 4033 bytes --]

On Thu, 24 Apr 2008 10:21:35 -0700
Thomas Lord <lord@emf.net> wrote:

> Eli Zaretskii wrote:
> >>
> >> Refactoring requires a lot more infrastructure than what etags and
> >> ebrowse provide.
> >>     
> >
> > I'm not convinced, but I won't argue.
> >   
> 
> 
> The tools that people are excited about differ from etags and ebrowse
> by virtue of their incremental nature (updating the databases as the
> code is modified) and precision.    The precision aspect is mainly a
> Java thing since the simple (enough) scoping rules and absence of
> syntactic abstraction make incremental parsing tractable.  
> 
> If you were to argue and you argued that the actual software
> engineering practice of refactoring and other correctness-preserving
> global transforms doesn't need such heavy guns, and is very
> well-served by more simply text based tools like Emacs has, etc:
> well, you'd get no argument back from me.

These are not just issues of simple productivity, likening them to
a useful crutch.

These tools are priceless for the fella that is new to a code-base
and needs to learn how the system works. If you wrote a book on
a scale that could not be bound (like the source for a large system)
a standard back-matter preparation would not scale (e.g the index).

semantic like static analysis tools allow the code to be navigated
structurally. If the architecture is clean both humans and
programs can navigate this structure which is quite exciting with
sufficient imagination.

But the vital need for static analysis is clear with the sophisticated 
linkage of large systems, and the fact that vast amounts of C/C++/java
have entered maintenance mode.

To picture a use case imagine the hero consultant squaring off against
a legacy system of COBOL,pascal,C,C++ (standard industry progression layered),
with a deadline to make a correction in the system.

Examples: Y2k, euro conversion.

etags does not cut the mustard in that scenario. Semantic has the potential
to equal the task.
   
> But, afaict from watching people in various communities talk about
> it, Eclipse's Java features have basically /taught/ the utility of
> global transforms to many programmers.   So many people tend to be
> excited about the Eclipse approach and to assume that that's how
> things are supposed to work.

Characterizing re-engineering as a java feature is tempting due to
the iosomorphism of the byte-code/source-code. However static analysis
is a natural response to the rise of sophisticated scoping and linking
that happened a *while ago*. You can argue that such mechanisms are
a response to "human wave" tactics, but the relics of such efforts
are now vital infrastructure.

The right thing for static analysis as the author of CEDET no doubt
discovered is a surprisingly large system, to large to be called a
feature. The right thing gives birth to a number of vital features
however.

The infrastructure required to complete a symbol correctly is the
same infrastructure required to change the storage of a field
and accurately analyze the propagation of that change throughout the
code-base with a measurable margin of error.

The prior art goes all the way back to SCID (source code in database) AFAIK,
and the design convergence is remarkable. I have a architectural design
for an almost identical system independently developed. A second team,
again independent, attacked the problem again and drew the same diagram 6 months 
later. I can bet with high confidence that the proprietary coverity system has
a similar design as well.

So to wrap up everyone ends up drawing the same architecture. CEDET is
a implementation of that high-level architecture. If you can draw a
different architecture and make it work then you should publish
and claim your fame. Otherwise CEDET is a good idea that everyone has
had and few have had the stamina to implement.

Cheers,
Mike Mattie

> 
> 
> -t
> 
> 
> 
> 
> 
> 
> >
> >
> >   
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2008-04-28 18:28 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-21 19:46 Please stop proposing changes in defaults! Richard Stallman
2008-04-21 21:32 ` Paul R
2008-04-22  4:20   ` Richard Stallman
2008-04-21 21:40 ` Juri Linkov
2008-04-22  3:30   ` Eli Zaretskii
2008-04-22  4:20   ` Richard Stallman
2008-04-22  8:48     ` Juri Linkov
2008-04-22 11:52   ` What IDE features do we need? [Was: Please stop proposing changes in defaults!] Alan Mackenzie
2008-04-22 12:22     ` Dan Kruchinin
2008-04-22 12:28     ` Dan Kruchinin
2008-04-22 20:08       ` Richard Stallman
2008-04-22 21:13         ` Paul R
2008-04-22 13:28     ` What IDE features do we need? defaults!] Eli Zaretskii
2008-04-22 13:41       ` joakim
2008-04-22 17:07         ` klaus.berndl
2008-04-22 14:27       ` Drew Adams
2008-04-22 15:44       ` What IDE features do we need? Alan Mackenzie
2008-04-22 15:40         ` Drew Adams
2008-04-22 17:12         ` joakim
2008-04-22 15:44     ` Eric Hanchrow
2008-04-22 16:27       ` Drew Adams
2008-04-22 21:12     ` Juri Linkov
2008-04-23 15:58       ` Richard Stallman
2008-04-23 20:29         ` Tassilo Horn
2008-04-24  3:21           ` Eli Zaretskii
2008-04-24 12:26             ` Stefan Monnier
2008-04-24 16:26               ` Eli Zaretskii
2008-04-24 17:21                 ` Thomas Lord
2008-04-25  3:40                   ` Richard M Stallman
2008-04-28 18:28                   ` Mike Mattie [this message]
2008-04-28 17:57                 ` Mike Mattie
2008-04-28 18:23                   ` Eli Zaretskii
2008-04-24 19:55             ` Bruce Stephens
2008-04-24  5:15           ` Richard Stallman
2008-04-24  6:24             ` joakim
2008-04-24 19:42               ` Richard M Stallman
2008-04-24  6:35             ` Tassilo Horn
2008-04-24  9:58               ` klaus.berndl
2008-04-24 10:25                 ` David Kastrup
2008-04-24 19:43               ` Richard M Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080428112845.2c4222e6@reforged \
    --to=codermattie@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).