On 24/11/2010 18:48, Andrew Wiley wrote:
    On 24/10/2010 00:46, bearophile wrote:

        Walter:


            As we all know, tool support is important for D's success.
            Making tools easier
            to build will help with that.

            To that end, I think we need a lexer for the standard
            library - std.lang.d.lex.
            It would be helpful in writing color syntax highlighting
            filters, pretty
            printers, repl, doc generators, static analyzers, and even D
            compilers.


        This is a quite long talk by Steve Yegge that I've just seen
        (linked from Reddit):
        http://vimeo.com/16069687

        I don't suggest you to see it all unless you are very interested
        in that topic. But the most important thing it says is that,
        given that big software companies use several languages, and
        programmers often don't want to change their preferred IDE,
        there is a problem: given N languages and M editors/IDEs, total
        toolchain effort is N * M. That means N syntax highlighters, N
        indenters, N refactoring suites, etc. Result: most languages
        have bad toolchains and most IDEs manage very well only one or
        very few languages.

        So he has suggested the Grok project, that allows to reduce the
        toolchain effort to N + M. Each language needs to have one of
        each service: indenter, highlighter, name resolver, refactory,
        etc. So each IDE may link (using a standard interface provided
        by Grok) to those services and use them.

        Today Grok is not available yet, and its development is at the
        first stages, but after this talk I think that it may be
        positive to add to Phobos not just the D lexer, but also other
        things, even a bit higher level as an indenter, highlighter,
        name resolver, refactory, etc. Even if they don't use the
        standard universal interface used by Grok I think they may speed
        up the development of the D toolchain.

        Bye,
        bearophile


 From watching this, I'm reminded that in the Scala world, the compiler
can be used in this way. The Eclipse plugin for Scala (and I assume the
Netbeans and IDEA plugins work similarly) is really just a wrapper
around the compiler because the compiler can be used as a library,
allowing a rich IDE with minimal effort because rather than implementing
parsing and semantic analysis, the IDE team can just query the
compiler's data structures.

Interesting, very wise of them to do that.
But not very surprising, Scala is close to the Java world, so they (the Scala people) must have known how important it would be to have the best toolchain possible, in order to compete (with Java, JDT, also Visual Studio, etc.).

--
Bruno Medeiros - Software Engineer

Reply via email to