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