Loading ...
Sorry, an error occurred while loading the content.

305Re: [extremeperl] Better Development Tools for Perl

Expand Messages
  • Adam Turoff
    Jun 6, 2005
    • 0 Attachment
      On 6/6/05, chromatic <chromatic@...> wrote:
      > On Mon, 2005-06-06 at 13:10 -0700, J Matisse Enzer wrote:
      > > I am reasonably sure that neither vim nor emacs offer:
      > > - Built-in dynamic syntax checking
      > I'm not sure what this means.
      > > * Code-assist (pull-down menu of choices dynamically appears)
      > I'm not sure what this means either.

      There's an old saying that the world is divided into two groups: those who
      divide the world into two groups and those who don't. ;-)

      Whenever the topic of "better development tools" comes up, it's usually a plea
      for the innovations of the Windows world to trickle down to the Unix world.
      The Unix world doesn't see anything as broken, and generally misses the point
      of the discussion.

      "Dynamic syntax checking" is an IDE feature that goes back to the 1980s (if not
      before) where the compiler (or at least a full parser) is embedded into your
      text editor. This enables syntax highlighting, but also highlights syntax
      errors in an egregious format. For example, this bit of perl:

      if {$a == $b} {
      ## ...
      } elseif {$c} {
      ## ...

      as syntactically invalid. A syntax highlighter will see valid tokens
      and highlight them, while a syntax _checker_ will draw attention to the
      syntax errors much like Word highlights mispelt words. ;-)

      I'm assuming Code Assist refers to features like Intellisense(R)(C)(TM)(PP)
      in Visual Studio. This takes parsing-as-you-type one step further, so
      that as you're typing something like this:

      String s = String.newFrom

      the editor would figure out that you're trying to invoke one of the
      bazillion+1 methods on the String class (relative to whatever namespaces
      you have loaded in the current source file, of course) and prompt you
      with a dropdown box to show you which possible methods you might mean:

      String s = String.newFrom
      |String.newFromC |
      |String.newFromString |
      |String.newFromUnicode |
      |.... |

      and allow you to arrow down the list, much like URL completion works on
      the location box in $BROWSER. I haven't been keeping track, but
      features of this ilk may also provide you a handy lookup of the method
      signatures for each method in the dropdown. Should 'just work' with
      both system level APIs and stuff in your project.

      Of course, this kind of feature is crucial when dealing with a language
      like C#, C++ or Java dealing with the forests of complexity is easier if
      you have a tireless guide always at the ready. Those of us from the
      Churches of Emacs and Vi(m), on the other hand, tend to favor hacking on
      a beach chair along the shore instead of wandering aimlessly through the
      enchanted forest...

      I must say, though, that this wreaks of the arrogant XMLish "just use
      better tools" argument to bandage over unacceptable complexity. Over
      the last 8 years, though, the "better tools" haven't really
      materialized, and XML adoption has been successful to the degree that
      simple tools carry the day. Not sure if that is a point or a counter
      point regarding IDEs and development tools though...

      -- Adam
    • Show all 107 messages in this topic