[Ur] Strategy - UrWeb Backend
Adam Chlipala
adamc at impredicative.com
Tue Dec 7 18:40:43 EST 2010
Stephane Le Dorze wrote:
> Indeed, for a language/framework to break throught, it needs to get
> momentum with a big/growing community and to play with current/hypped
> technologies, take advantage of working with existing librairies and
> getting a decent tooling.
I'm not sure I buy into the importance of integration with "hyped"
technologies. Perhaps you could be more specific about some project
that you feel can't be implemented adequately with Ur/Web as it stands
today? I'm asking for a description of the user experience you're
aiming for; requiring integration with some specific technology that the
end user doesn't see is "cheating." ;)
I also want to emphasize that I'm not trying to maximize adoption of
Ur/Web. Rather, I'm trying to maximize the effectiveness of people who
do choose to use it. This means that I'm completely happy if basic
features of Ur/Web mean that 90% of programmers will never be able to
use it.
> (a FFI via C only does not target the right community).
There's been a JavaScript FFI since well before the first Ur/Web beta
release.
> When I think about it, I immediatly see a JS backend. Just being able
> to integrate this community and run on NodeJS for instance or take
> advantage of existing JS APIs and Tools.
Which benefits do you see from server-side JavaScript? I'll be really
surprised if any such system can get over the inherent costs of the
JavaScript language, to match the performance and security of Ur/Web.
> Would a JS backend be hard to integrate with the current compiler
> which is already targetting the JS frontend?.
There wouldn't be anything technically interesting to do. It would
probably be a significant amount of mostly-boring work.
> Another question: are there other reasons than timing not to have
> targeted a LLVM backend instead of the current one?
Since the Ur/Web compiler works via generated C code, I have a feeling
it would be trivial to just drop in LLVM's clang as an alternate
compiler to call in the last stage of compilation. To me, the
engineering benefits of going via C rather than a lower-level language
are clear, so I wouldn't want to output LLVM bytecodes directly, just
like I don't output assembly directly now.
More information about the Ur
mailing list