Problem is: your idea has already been tried and found to be pretty slow.
React devs did briefly consider this, but found that it had fundamental
speed limitations. And precompilation is already happening with existing
templates, even though building them normally is still cheap to do.

http://facebook.github.io/jsx/#why-not-template-literals

On Wed, Jan 13, 2016, 05:45 /#!/JoePea <[email protected]> wrote:

> > modulo the obvious mistake
>
> Oops. x]
>
> > you could use it as a vdom library as almost like a Lisp reader macro:
>
> That would be interesting. There's still lots of runtime processing
> though. Maybe a build-time tool can also optimize it though, but if it
> happens to be executed at runtime it'll just work. Here's a JSX-like
> concept, let's call it 'xjs' for sake of argument:
>
> ```
> let style = {background: 'turquoise'}
> let content = xjs`<p>hello</p>`
> let el = xjs`
>   <div style=${styleObject}>
>     ${content}
>   </div>
> `
> ```
>
> It could be compiled statically as well as have a runtime template-tag
> implementation.
>
> On Wed, Jan 13, 2016 at 12:05 AM, Isiah Meadows <[email protected]>
> wrote:
> > A use I thought up (although I got lazy and abandoned it later) was an
> > `exec` template tag, for executing commands. Or, and this just came off
> the
> > to of my head, you could use it as a vdom library as almost like a Lisp
> > reader macro:
> >
> > ```js
> > n`.form-ctrl`(
> >   n`input#input`("input"),
> >   n`a[href="/submit.html"]`("Submit"))
> > ```
> >
> >
> > On Tue, Jan 12, 2016, 17:34 Alexander Jones <[email protected]> wrote:
> >>
> >> The two code samples you posted are equivalent (modulo the obvious
> >> mistake). AFAIU there is still only a single parsing pass for template
> >> strings.
> >>
> >> On Tuesday, 12 January 2016, /#!/JoePea <[email protected]> wrote:
> >>>
> >>> The thing with template strings is that they are used at runtime. This
> >>> could be slow if we're compiling things at runtime all the time,
> >>> whereas a server-side templating solution might lead JavaScript
> >>> functions compiled from templates (like in the case with Meteor Blaze
> >>> Spacebars or React JSX), which can be faster at runtime.
> >>>
> >>> What are template strings good for besides the obvious benefit that
> >>> they make things like
> >>>
> >>> ```
> >>> var str = "llo"
> >>> console.log(`he${str} world!`)
> >>> ```
> >>>
> >>> easier to read than
> >>>
> >>> ```
> >>> var str = "llo"
> >>> console.log('he'+'str'+' world!')
> >>> ```
> >>>
> >>> ?
> >>>
> >>> Maybe writing regexes can be nicer with template strings? I gave it a
> >>> try at npmjs.com/regexr.
> >>>
> >>> On Mon, Jan 11, 2016 at 8:43 AM, Manuel Di Iorio <[email protected]>
> >>> wrote:
> >>> > Yes Bob, after a personal testing with a complete template engine
> using
> >>> > the
> >>> > ES6 template strings, I realized that their use (in mine use case, of
> >>> > course) is slowest than the approach that I'm using right now (like
> the
> >>> > Underscore template). Thanks everyone :)
> >>> >
> >>> > _______________________________________________
> >>> > es-discuss mailing list
> >>> > [email protected]
> >>> > https://mail.mozilla.org/listinfo/es-discuss
> >>> >
> >>> _______________________________________________
> >>> es-discuss mailing list
> >>> [email protected]
> >>> https://mail.mozilla.org/listinfo/es-discuss
> >>
> >> _______________________________________________
> >> es-discuss mailing list
> >> [email protected]
> >> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to