The DeRailed Challenge
kris
foo at bar.com
Fri Feb 9 13:14:47 PST 2007
'DeRailed' is a project intended to compete in the space where RoR has
been successful. We believe an RoR "killer" will do wonders for D as a
language, in terms of publicity and potential widespread adoption.
To get there we need to surmount some hurdles. This is simply an
overview, not a detailed analysis:
1) D is a statically compiled language; it doesn't have the late-binding
support of a language like Ruby or Python. We need to find a way of
enabling late-binding of code & symbols, in a manner that is seamless to
a user/developer. DDL is a project targeted at exactly this issue, but
it's a thorny problem to address. Some help from the compiler itself
would go a long way to making this a reality (on linux, this currently
appears to be resolvable).
2) Full reflection at run time is something D lacks. We need this to
properly enable late-binding to the extent we feel is needed. There's a
side-project under way right now to address this particular issue.
3) a GUI front end, capable of being generated on the fly, yet
sufficiently powerful and extensible. We've been investigating various
existing technologies and approaches.
4) A back-end interface, to the DB. DDBI currently looks like a
reasonable solution, and there's work currently under way to make it
much more useful.
5) A runtime platform, with clustering support. We can leverage various
tools from the Mango project.
The big question for us right now is this: in what manner might a
compile-time DSL (or set thereof) make life significantly easier for
either a user/developer, or for us whilst constructing this tool?
The DSL(s) in question should adhere to all the usual stipulations about
being transparent, working cleanly with a debugger etc. They would also
have to provide value above and beyond what might be enabled by a
separate (non compile-time) domain-specific tool. To illustrate, one DSL
suggestion might be some limited form of GUI? However, there are better
tools available for exactly that domain, which expose a richer
environment than we could hope to achieve via a compile-time
implementation. Please keep this particular aspect in mind.
What do you think? Can you come up with something?
More information about the Digitalmars-d
mailing list