Re: IDE support?

2011-09-17 Thread François REMY
, 2011 7:15 PM To: Andreas Rossberg Cc: es-discuss@mozilla.org Subject: Re: IDE support? On Sep 15, 2011, at 11:57 AM, Andreas Rossberg wrote: On 13 September 2011 16:48, Brendan Eich bren...@mozilla.com wrote: On Sep 13, 2011, at 5:33 AM, Andreas Rossberg wrote: * There are extra costs in space

Re: IDE support?

2011-09-17 Thread Brendan Eich
On Sep 17, 2011, at 2:57 PM, François REMY wrote: The best way to avoid the over-annotation of codes is probably to teach users about WHEN or WHY they should add types guards. If you add the feature and don't explain what's her purpose and what specific scenarii it can solve, you'll get in

Re: IDE support?

2011-09-17 Thread Mike Shaver
On Fri, Sep 16, 2011 at 1:55 AM, Andreas Rossberg rossb...@google.com wrote: Being able to detect when a condition is violated is not equivalent to knowing that it always holds. You're right, of course. Thanks for slicing that more finely for me. Mike

Re: IDE support?

2011-09-16 Thread Claus Reinke
On the subjects of code navigation and DoctorJS as a basis for tools: - Jump to the definition of a method/function. .. - Find all invocations of a method/function. .. I'm in the process of adding scoped tags support to DoctorJS, so that in Vim you can also navigate to local definitions and

Re: IDE support?

2011-09-16 Thread Andreas Rossberg
On 16 September 2011 02:12, Mike Shaver mike.sha...@gmail.com wrote: On Thu, Sep 15, 2011 at 9:02 AM, Andreas Rossberg rossb...@google.com wrote: On 14 September 2011 00:00, Brendan Eich bren...@mozilla.com wrote: So, static+dynamic. The static side has some powerful algorithms to bring to

Re: IDE support?

2011-09-16 Thread Brendan Eich
On Sep 16, 2011, at 1:55 AM, Andreas Rossberg wrote: Being able to detect when a condition is violated is not equivalent to knowing that it always holds. Yes, this is the point I mangled in that dynamic is necessary [in JS] ... and gives strictly more information (and more relevant

Re: IDE support?

2011-09-16 Thread John J Barton
On Fri, Sep 16, 2011 at 7:04 AM, Brendan Eich bren...@mozilla.com wrote: On Sep 16, 2011, at 1:55 AM, Andreas Rossberg wrote: Being able to detect when a condition is violated is not equivalent to knowing that it always holds. Yes, this is the point I mangled in that dynamic is necessary [in

Re: IDE support?

2011-09-15 Thread Andreas Rossberg
On 13 September 2011 16:48, Brendan Eich bren...@mozilla.com wrote: On Sep 13, 2011, at 5:33 AM, Andreas Rossberg wrote: * There are extra costs in space and time to doing the runtime analysis. * Compile time is runtime, so there are severe limits to how smart you can afford to get in a

Re: IDE support?

2011-09-15 Thread Andreas Rossberg
On 13 September 2011 21:32, Wes Garland w...@page.ca wrote: When I write shell programs, and JS programs, I keep an extra terminal window open to a spare shell or a JS REPL.  I try stuff. Stuff that works, I copy into my program.  Then I run my program - which happens quickly, because the

Re: IDE support?

2011-09-15 Thread Andreas Rossberg
On 14 September 2011 00:00, Brendan Eich bren...@mozilla.com wrote: So, static+dynamic. The static side has some powerful algorithms to bring to bear. Dynamic is necessary due to eval and kin, and gives strictly more information (and more relevant information!). Nitpick: I believe you are

Re: IDE support?

2011-09-15 Thread Mike Shaver
On Thu, Sep 15, 2011 at 9:02 AM, Andreas Rossberg rossb...@google.com wrote: On 14 September 2011 00:00, Brendan Eich bren...@mozilla.com wrote: So, static+dynamic. The static side has some powerful algorithms to bring to bear. Dynamic is necessary due to eval and kin, and gives strictly more

Re: IDE support?

2011-09-13 Thread François REMY
in the SunSpider test. But it will never make ECMAScript a fast language. Just a less slow one. François -Message d'origine- From: John J Barton Sent: Tuesday, September 13, 2011 2:05 AM To: François REMY Cc: es-discuss@mozilla.org Subject: Re: IDE support? From: François REMY

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 12, 2011, at 12:22 PM, John J Barton wrote: On Mon, Sep 12, 2011 at 12:00 PM, es-discuss-requ...@mozilla.org wrote: Some of the discussion on this thread amounts to IDEs work great for typed languages so let's make JS typed. What if we started with What would be great for

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 12, 2011, at 12:35 PM, Mikeal Rogers wrote: I was super confused as to why good tools and IDEs would require typing. A bunch of typed languages do have great IDEs but I feel like that's mainly because programming in a typed language can be considerably more difficult which puts

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 12, 2011, at 11:58 PM, François REMY wrote: Let me explain something (maybe you all know it, but you just didn't notice how important it is). function(x) { x.data++; } This code is slow by nature. Because you don't know what kind of data x will be, you need to call

Re: IDE support?

2011-09-13 Thread François REMY
- From: Brendan Eich Sent: Tuesday, September 13, 2011 9:33 AM To: François REMY Cc: John J Barton ; es-discuss@mozilla.org Subject: Re: IDE support? On Sep 12, 2011, at 11:58 PM, François REMY wrote: Let me explain something (maybe you all know it, but you just didn't notice how important

Re: IDE support?

2011-09-13 Thread Claus Reinke
There are some half dozen or more papers on Javascript type inference or static analysis (hmm, is there a central wiki or bibliography where we could record and collect such JS-related references? should I post here what I've found so far?). For as far as you haven't already, I'd love to see

Re: IDE support?

2011-09-13 Thread Claus Reinke
Improved, statically checkable, types would also help mitigate Javascript's silent failures (silently breaking code when trying to refactor, fixing bugs, or adding features). Unless the type system is fairly advanced, type safety only expresses a thin veneer of invariants, but coverage is total,

Re: IDE support?

2011-09-13 Thread Ionuț G. Stan
On Sep/12/2011 22:19, Rick Waldron wrote: On Mon, Sep 12, 2011 at 11:38 AM, Claus Reinke claus.rei...@talk21.com mailto:claus.rei...@talk21.com wrote: I'm hopeful that type inference combined with class syntax and an (eventual) traits system will get us there, so that

Re: IDE support?

2011-09-13 Thread Axel Rauschmayer
For features such as expansion help (e.g. when you type a dot after a parameter name inside a function), you still need static analysis. But your point stands: JS IDEs can and should go beyond “edit-compile-debug” (which has become so mainstream that many people forget about languages such as

Re: IDE support?

2011-09-13 Thread Andreas Rossberg
On 13 September 2011 09:33, Brendan Eich bren...@mozilla.com wrote: You are simply way out of date on JS optimizing VMs, which (based on work done with Self and Smalltalk) all now use hidden classes aka shapes and polymorphic inline caching to optimize to exactly the pseudo-assembly you

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 13, 2011, at 5:33 AM, Andreas Rossberg wrote: On 13 September 2011 09:33, Brendan Eich bren...@mozilla.com wrote: You are simply way out of date on JS optimizing VMs, which (based on work done with Self and Smalltalk) all now use hidden classes aka shapes and polymorphic inline

Re: IDE support?

2011-09-13 Thread Wes Garland
Speaking pragmatically, for myself and my unusual (server-side) environment: On 13 September 2011 10:48, Brendan Eich bren...@mozilla.com wrote: Does JS need to be as fast as Java? Would half as fast be enough? If it's compute-bound then that's plenty. Provided we develop so that we can

Re: IDE support?

2011-09-13 Thread John J Barton
On Tue, Sep 13, 2011 at 12:26 AM, Brendan Eich bren...@mozilla.com wrote: On Sep 12, 2011, at 12:22 PM, John J Barton wrote: On Mon, Sep 12, 2011 at 12:00 PM,  es-discuss-requ...@mozilla.org wrote: Some of the discussion on this thread amounts to IDEs work great for typed languages so let's

Re: IDE support?

2011-09-13 Thread Dean Landolt
On Tue, Sep 13, 2011 at 12:03 PM, John J Barton johnjbar...@johnjbarton.com wrote: On Tue, Sep 13, 2011 at 12:26 AM, Brendan Eich bren...@mozilla.com wrote: On Sep 12, 2011, at 12:22 PM, John J Barton wrote: On Mon, Sep 12, 2011 at 12:00 PM, es-discuss-requ...@mozilla.org wrote:

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 13, 2011, at 9:03 AM, John J Barton wrote: On Tue, Sep 13, 2011 at 12:26 AM, Brendan Eich bren...@mozilla.com wrote: On Sep 12, 2011, at 12:22 PM, John J Barton wrote: On Mon, Sep 12, 2011 at 12:00 PM, es-discuss-requ...@mozilla.org wrote: Some of the discussion on this thread

Re: IDE support?

2011-09-13 Thread Peter van der Zee
I'm assuming that conclusion already because the current tools for JS development are so incredibly lame that wasting time on static analysis -- which we know does not work without changing the language Ok, your assumed conclusion rests on a prior assumption: static analysis ... we know

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 13, 2011, at 1:02 AM, François REMY wrote: Okay, maybe you don't have to seek throug a dictionnary anymore. But still, the performance overhead is higher than you would want to. Because it's possible to achieve no overhead, even a small overhead is an overhead to be deleted. The

Re: IDE support?

2011-09-13 Thread Wes Garland
Great post, Allen! On 13 September 2011 15:01, Allen Wirfs-Brock al...@wirfs-brock.com wrote: We need to do the same thing with our JS tools. All of the great dynamic language IDEs (that, BTW, preceded and largely inspired the modern static language IDEs) were live environments. They

Re: IDE support?

2011-09-13 Thread François REMY
today. It’s just one more tool in your toolbox. Not a complete language change. From: Allen Wirfs-Brock Sent: Tuesday, September 13, 2011 9:01 PM To: Axel Rauschmayer Cc: es-discuss ; Breton Slivka Subject: Re: IDE support? There are key points in Breton's post below that should not be lost

Re: IDE support?

2011-09-13 Thread François REMY
d'origine- From: Brendan Eich Sent: Tuesday, September 13, 2011 9:11 PM To: François REMY Cc: John J Barton ; es-discuss@mozilla.org Subject: Re: IDE support? On Sep 13, 2011, at 1:02 AM, François REMY wrote: Okay, maybe you don't have to seek throug a dictionnary anymore. But still

Re: IDE support?

2011-09-13 Thread John J Barton
Just to point out that Web Inspector in the Chrome browser has run time dot completions (as does Firebug) and it has live JS and CSS editing with save to file. I won't defend the user experience, that needs work. I tried and failed to convince one IDE team that starting from the runtime tools was

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 13, 2011, at 12:26 AM, Brendan Eich wrote: On Sep 12, 2011, at 12:22 PM, John J Barton wrote: On Mon, Sep 12, 2011 at 12:00 PM, es-discuss-requ...@mozilla.org wrote: Some of the discussion on this thread amounts to IDEs work great for typed languages so let's make JS typed. What

Re: IDE support?

2011-09-13 Thread Bill Frantz
I am always amused by the continuing demands for more performance. The only real advantage of performance as a major metric is that it is relatively easy to measure. If performance is your number one goal, then the only languages you should consider are assembler and machine language. :-)

Re: IDE support?

2011-09-13 Thread Brendan Eich
On Sep 13, 2011, at 3:49 PM, Bill Frantz wrote: I am always amused by the continuing demands for more performance. The only real advantage of performance as a major metric is that it is relatively easy to measure. If performance is your number one goal, then the only languages you should

Re: IDE support?

2011-09-12 Thread Peter van der Zee
On Mon, Sep 12, 2011 at 1:04 AM, Brendan Eich bren...@mozilla.com wrote: Type Inference can do a lot. See http://doctorjs.org/. We do not want people adding guards all over their code, IMHO. Anyway, we don't know have guards ES6. While true, I've found that you can't really overcome the

Re: IDE support?

2011-09-12 Thread Axel Rauschmayer
Sorry, that was garbled -- but you can always consult the strawman:strawman and harmony:proposals pages to confirm that guards did not make ES6. Right. Those tell me that guards are not *currently* scheduled for ES6. Have all decisions in this regard already been made? -- Dr. Axel

Re: IDE support?

2011-09-12 Thread Brendan Eich
On Sep 12, 2011, at 12:51 AM, Peter van der Zee wrote: On Mon, Sep 12, 2011 at 1:04 AM, Brendan Eich bren...@mozilla.com wrote: Type Inference can do a lot. See http://doctorjs.org/. We do not want people adding guards all over their code, IMHO. Anyway, we don't know have guards ES6.

Re: IDE support?

2011-09-12 Thread Brendan Eich
On Sep 12, 2011, at 12:58 AM, Axel Rauschmayer wrote: Sorry, that was garbled -- but you can always consult the strawman:strawman and harmony:proposals pages to confirm that guards did not make ES6. Right. Those tell me that guards are not *currently* scheduled for ES6. Have all decisions

Re: IDE support?

2011-09-12 Thread Claus Reinke
I'm hopeful that type inference combined with class syntax and an (eventual) traits system will get us there, so that you can use structural type tests for enforcement and that the IDE can get the benefit of hints through inference. Improved, statically checkable, types would also help mitigate

Re: IDE support?

2011-09-12 Thread Alex Russell
On Sep 12, 2011, at 8:38 AM, Claus Reinke wrote: I'm hopeful that type inference combined with class syntax and an (eventual) traits system will get us there, so that you can use structural type tests for enforcement and that the IDE can get the benefit of hints through inference.

Re: IDE support?

2011-09-12 Thread Peter van der Zee
There are some half dozen or more papers on Javascript type inference or static analysis (hmm, is there a central wiki or bibliography where we could record and collect such JS-related references? should I post here what I've found so far?). For as far as you haven't already, I'd love to see

Re: IDE support?

2011-09-12 Thread Rick Waldron
On Mon, Sep 12, 2011 at 11:38 AM, Claus Reinke claus.rei...@talk21.comwrote: I'm hopeful that type inference combined with class syntax and an (eventual) traits system will get us there, so that you can use structural type tests for enforcement and that the IDE can get the benefit of hints

Re: IDE support?

2011-09-12 Thread John J Barton
On Mon, Sep 12, 2011 at 12:00 PM, es-discuss-requ...@mozilla.org wrote: Some of the discussion on this thread amounts to IDEs work great for typed languages so let's make JS typed. What if we started with What would be great for JavaScript developers? Then we would not waste a lot of time

Re: IDE support?

2011-09-12 Thread Mikeal Rogers
I was super confused as to why good tools and IDEs would require typing. A bunch of typed languages do have great IDEs but I feel like that's mainly because programming in a typed language can be considerably more difficult which puts more emphasis on creating great tools to help deal with it.

Re: IDE support?

2011-09-12 Thread Axel Rauschmayer
Right. Those tell me that guards are not *currently* scheduled for ES6. Have all decisions in this regard already been made? Pretty much -- the guards and trademarking proposals came in at the May meeting, kind of last minute. We could start worrying about Dart and try to revive them.

Re: IDE support?

2011-09-12 Thread François REMY
: Monday, September 12, 2011 9:22 PM To: es-discuss@mozilla.org Subject: Re: IDE support? On Mon, Sep 12, 2011 at 12:00 PM, es-discuss-requ...@mozilla.org wrote: Some of the discussion on this thread amounts to IDEs work great for typed languages so let's make JS typed. What if we started with What

Re: IDE support?

2011-09-12 Thread Wes Garland
On 12 September 2011 16:31, François REMY fremycompany_...@yahoo.fr wrote: JavaScript is simple for the developer, but sometimes its flexibility makes it impossible to optimize code properly. And it makes JavaScript slower. I made this graph earlier this year, coincident with the Firefox 4

Re: IDE support?

2011-09-12 Thread John J Barton
From: François REMY fremycompany_...@yahoo.fr To: es-discuss@mozilla.org Date: Mon, 12 Sep 2011 22:31:17 +0200 Subject: Re: IDE support? Types are not only desirable to borrow concepts from current IDEs. We know from DotNET that a language running in a VM can be pretty fast, close

Re: IDE support?

2011-09-12 Thread Juan Ignacio Dopazo
On Mon, Sep 12, 2011 at 5:17 PM, Axel Rauschmayer a...@rauschma.de wrote: Regarding tool support, adding type annotations in comments (JSDoc-style) should be enough, mid-term. For IDEs, it would really help if there weren’t so many competing standards for even the most basic things in the JS

IDE support?

2011-09-11 Thread Axel Rauschmayer
One thing I liked about the Dash/Dart email was that it explicitly stated the goal of tool/IDE support (this is the only area where I miss Java when programming JavaScript). Is there something corresponding among the Harmony goals [1]? (5) Support a statically verifiable, object-capability

Re: IDE support?

2011-09-11 Thread Axel Rauschmayer
Language's don't need direct support for IDE's to have good IDEs (most of the good Java IDEs worked through reflection and manual parsing of the source files and parsing of defacto standard comment formatting). I mostly agree. However, I have yet to find an IDE that makes source code

Re: IDE support?

2011-09-11 Thread Brendan Eich
the Dash/Dart email was that it explicitly stated the goal of tool/IDE support (this is the only area where I miss Java when programming JavaScript). Is there something corresponding among the Harmony goals [1]? (5) Support a statically verifiable, object-capability secure subset

Re: IDE support?

2011-09-11 Thread Alex Russell
. /be On Sep 11, 2011, at 3:10 PM, Axel Rauschmayer wrote: One thing I liked about the Dash/Dart email was that it explicitly stated the goal of tool/IDE support (this is the only area where I miss Java when programming JavaScript). Is there something corresponding among the Harmony goals

Re: IDE support?

2011-09-11 Thread Axel Rauschmayer
We do not want people adding guards all over their code, IMHO. In many cases, adding type information to my code helps me to think more clearly about it (e.g.: signature of a function-valued parameter and arrays whose elements all have the same type). In other cases, not having to do it is a

Re: IDE support?

2011-09-11 Thread Brendan Eich
On Sep 11, 2011, at 5:35 PM, Axel Rauschmayer wrote: Anyway, we don't know have guards ES6. Guards definitely won’t be in ES6? Or will be? Sorry, that was garbled -- but you can always consult the strawman:strawman and harmony:proposals pages to confirm that guards did not make ES6. /be