On Mon, Oct 1, 2012 at 6:18 PM, Mark Hahn <m...@hahnca.com> wrote:

> >  This will allow the runtime to then perform explicit string
> optimizations (whatever those might be).
>
> But there aren't any optimizations that can be made.  All I'm asking for
> is one real use case that does something useful.
>
>
Yes, there are and I've given you a legitimate use case: in this particular
example, if the runtime can assume that no type coercion needs to occur, it
can skip that step all together, which means it performs better.

Rick




>
> On Mon, Oct 1, 2012 at 3:05 PM, Rick Waldron <waldron.r...@gmail.com>wrote:
>
>>
>>
>> On Mon, Oct 1, 2012 at 6:03 PM, Mark Hahn <m...@hahnca.com> wrote:
>>
>>> > Yes, it will work, that's not the point.
>>>
>>> Then give me an example that does make the point.  I'm a little
>>> thick-headed.
>>>
>>
>> See my last email to Gustavo.
>>
>> Rick
>>
>>
>>>
>>>
>>> On Mon, Oct 1, 2012 at 2:59 PM, Rick Waldron <waldron.r...@gmail.com>wrote:
>>>
>>>>
>>>>
>>>> On Mon, Oct 1, 2012 at 5:53 PM, Mark Hahn <m...@hahnca.com> wrote:
>>>>
>>>>> > The above example is fairly contrived
>>>>>
>>>>> And useless.  The JS would work fine passing it a number.
>>>>>
>>>>
>>>> Did you actually read the entire example? I said that for you, but
>>>> thanks for the additional coverage.
>>>>
>>>> Yes, it will work, that's not the point. The point is that the runtime
>>>> can optimize the execution if it can find ways to make assumptions about
>>>> the code it's executing. One the most common is based on types.
>>>>
>>>>
>>>> Rick
>>>>
>>>>
>>>>
>>>>>
>>>>> On Mon, Oct 1, 2012 at 2:36 PM, Rick Waldron 
>>>>> <waldron.r...@gmail.com>wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Oct 1, 2012 at 5:15 PM, Gustavo Machado 
>>>>>> <machad...@gmail.com>wrote:
>>>>>>
>>>>>>>
>>>>>>> For less sophisticated developers (most people, and most of the VS
>>>>>>>> market), the compiler errors will remove much debugging frustration and
>>>>>>>> allow them to focus on creating rather than debugging.
>>>>>>>>
>>>>>>>>
>>>>>>> It also allows them to focus on "creating" instead of understanding
>>>>>>> what they are doing. Take the sample on the playground for instance:
>>>>>>>
>>>>>>>  constructor (message: string) {
>>>>>>> this.greeting = message;
>>>>>>> }
>>>>>>>
>>>>>>> will translate to:
>>>>>>>
>>>>>>>     function Greeter(message) {
>>>>>>>         this.greeting = message;
>>>>>>>     }
>>>>>>>
>>>>>>> If you can only handle string, should you not be doing a check and
>>>>>>> writing a proper message? What will happen to javascript users that 
>>>>>>> consume
>>>>>>> your code generated with TypeScript? It's not a huge gain IMO, and a few
>>>>>>> CONS:
>>>>>>>
>>>>>>> - only get intellisense in VS (a gigantic IDE which will handle from
>>>>>>> databases, to manual tests).
>>>>>>> - TypeScript seems to be making the code longer to type and less
>>>>>>> readable instead of shorter/better (like others do).
>>>>>>> - yet another language/dependency on your project.
>>>>>>> - most of the type-related things could be handled gracefully with
>>>>>>> comments.
>>>>>>>
>>>>>>
>>>>>> You can't get runtime optimizations with comments.
>>>>>>
>>>>>>
>>>>>> Take a look at this example:
>>>>>>
>>>>>> function f( a ) {
>>>>>>   return "Hello Number " + a;
>>>>>> }
>>>>>>
>>>>>> // Say you called it like this, of course it will work,
>>>>>> // but the runtime won't necessarily optimize
>>>>>> // because you've given it no information about what
>>>>>> // it CAN optimize. Besides, you really wanted a string.
>>>>>> f(1);
>>>>>>
>>>>>>
>>>>>> // So enforce it...
>>>>>> function f( a: string ) {
>>>>>>   return "Hello Number " + a;
>>>>>> }
>>>>>>
>>>>>> // throws on compilation
>>>>>> f(1);
>>>>>>
>>>>>> // Which would encourage you to go back to your code
>>>>>> // and make it a string:
>>>>>> f("1");
>>>>>>
>>>>>> // Now it passes the compilation and this is what it outputs:
>>>>>> function f(a) {
>>>>>>   return "Hello Number " + a;
>>>>>> }
>>>>>> f("1");
>>>>>>
>>>>>> The point is that it made you think about what you were passing to
>>>>>> the function.
>>>>>>
>>>>>>
>>>>>> The above example is fairly contrived and I'm sure that most runtimes
>>>>>> will figure that specific case out and optimize just the same, but allow 
>>>>>> it
>>>>>> to serve as a simplified example case.
>>>>>>
>>>>>>
>>>>>> Rick
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Gus
>>>>>>>
>>>>>>> --
>>>>>>> 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
>>>>>>
>>>>>
>>>>>  --
>>>>> 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
>>>>
>>>
>>>  --
>>> 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
>>
>
>  --
> 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