On Wednesday, December 12, 2012 at 8:09 PM, Jorge Chamorro wrote:

> On 13/12/2012, at 01:47, Rick Waldron wrote:
> > 
> > On Wed, Dec 12, 2012 at 7:20 PM, Jorge Chamorro <jo...@jorgechamorro.com> 
> > wrote:
> > On 12/12/2012, at 18:37, Rick Waldron wrote:
> > > 
> > > On Wed, Dec 12, 2012 at 2:17 AM, Isaac Schlueter <i...@izs.me> wrote:
> > > On Tue, Dec 11, 2012 at 7:18 PM, spqr <sritacc...@gmail.com> wrote:
> > > > maybe my question should have been "why does JavaScript have eval()?" 
> > > > ;-)
> > > 
> > > 
> > > I think a lot of people have wondered the same thing.
> > > 
> > > Yes, it has its uses, but at this point, I don't know of any that
> > > aren't better served using some other mechanism. eval() has weird
> > > optimization-destroying semantics that cannot ever be changed, due to
> > > the fact that JavaScript must be backwards compatible forever.
> > > 
> > > 
> > > Runtime code generation? new Function( thecode ) works just as well, I 
> > > guess
> > 
> > ...sometimes:
> > 
> > (function (p) {
> > 
> > eval("(function(){console.log(p)})")();
> > 
> > try {
> > Function("console.log(p)")();
> > }
> > catch (e) {
> > console.log("FAIL -> "+ e.message);
> > }
> > 
> > })("OK");
> > 
> > OK
> > FAIL -> Can't find variable: p
> > 
> > 
> > Of course not, but that's not what I was talking about, is it? I definitely 
> > said "Runtime code generation", by which I meant "the entire program" is 
> > first generated, by some means, into a string, which is then eval'ed. See 
> > also: Traceur, CoffeeScript (anything the compiles something else into 
> > JavaScript at runtime)
> 
> 
> (Sorry I hit send too soon)
> 
> Well put, simple as that, I completely agree.
> 
> What eval() is: a call right to the compiler as in compile(program), which is 
> -no matter what they say- a very nice -power- feature to have.
> 
> And a footgun? Perhaps *sometimes*, yes, so? Beware and don't be fool!
> 
> Yet the fools are foolish and there's little to do about that, neither eval() 
> *nor*the*threads* are evil, nor the culprits.

I agree with every single word and all of the sentiments they imply.

Rick
> -- 
> Jorge.
> 
> -- 
> Job Board: http://jobs.nodejs.org/
> Posting guidelines: 
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nodejs@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
> 
> 


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to