IMHO, TypeScript makes Javascript feel like ActionScript/Java/C#... loss JavaScript's agility, and the things smell awful enterprise
My vote goes to coffeescript Regards, ty 2012/10/2 Shripad K <[email protected]> > Okay I just tried it in the TypeScript playground. Doesn't seem like it > supports translating multiple constructors/methods. Also, support for > pre-initialization of variables before constructor is invoked would also be > a good feature. However, TypeScript is definitely a step in the right > direction. It would be cool if it could support multiple > constructors/methods. Helps in converting this code: > > var Test = (function () { > function Test(message) { > if(typeof message === "string) { > this.greeting = message; > } else if(typeof message === "number") { > this.num = message; > } > }; > Test.prototype.setGreeting = function (message) { > this.greeting = message; > }; > Test.prototype.setNum = function(num) { > this.num = num; > }; > Test.prototype.getNum = function() { > return this.num; > }; > Test.prototype.getGreeting = function() { > return this.greeting; > }; > return Greeter; > })(); > > to a much cleaner code.. something like this: > > class Greeter { > num: number = 0; > greeting: string = ""; > constructor (message: string) { > this.greeting = message; > } > construtor (message: number) { > this.num = message; > } > void set(message: string) { > this.greeting = message; > } > void set(message: number) { > this.num = message; > } > string getGreeting() { > return this.greeting; > } > string getNum() { > return this.num; > } > } > > > On Tue, Oct 2, 2012 at 8:16 AM, Shripad K <[email protected]>wrote: > >> I'm sorry I don't have Windows running to test it on. Can you write >> multiple constructors/methods of varying types? How does TypeScript >> translate this code to equivalent JS code? >> >> constructor (message: string) { >> this.greeting = message; >> } >> >> constructor (message: number) { >> this.greeting = message; >> } >> >> If it can translate properly, this definitely looks like a big plus for >> easing development in JS. >> >> On Tue, Oct 2, 2012 at 4:40 AM, Dick Hardt <[email protected]> wrote: >> >>> +1 to putting this on your blog Isaac. >>> >>> On Oct 1, 2012, at 3:50 PM, Rick Waldron <[email protected]> wrote: >>> >>> >>> >>> On Mon, Oct 1, 2012 at 6:46 PM, Isaac Schlueter <[email protected]> wrote: >>> >>>> I've been through the paces quite a few times trying to optimize the >>>> hell out of very hot code. In the last few years, this has been >>>> mostly in V8, of course, but the basic principles are not too far off >>>> in different JS environments. >>>> >>>> It's important to not put too much weight in rules of thumb, and we >>>> programmers are particularly bad at that, given our tendencies towards >>>> abstraction. But that disclaimer out of the way, I've found very few >>>> exceptions to these two rules: >>>> >>>> 1. If you have more than one of something, use a class; not a "plain >>>> old object". I recently changed the "url" module in node-master, and >>>> made it twice as fast by replacing the plain {}-style objects with Url >>>> class instances. >>>> 2. Always put the same kinds of things in the same places. An array >>>> of numbers should only ever have numbers; an array of objects should >>>> always only have objects. If a FooBar object has a "foo" member, then >>>> set this.foo to *something* in the constructor. >>>> >>>> It's really nice writing code in a loosely typed language. Most of >>>> the time, these optimizations are not all that relevant, and when they >>>> are, the odd exception is probably fine, if it's truly exceptional. >>>> But when you really care about maximizing speed, that flexibility can >>>> make it surprisingly tricky to track down all the deviations. >>>> >>>> I'm probably not going to stop using Vim to write code any time soon. >>>> I'm probably never going to use Windows as my development environment. >>>> Code completion sort of annoys me, and I've usually turned it off >>>> when I had editors that did it. But I'm actually very excited about >>>> TypeScript. >>>> >>>> It'd be a great idea to write up a TypeScript header file for the API >>>> surface in Node. Then, we could automatically test for API >>>> deviations, validate and flesh out our documentation, etc. Static >>>> typing *does* confer some very relevant value. Typically it does so >>>> at the cost of flexibility, but this brings a lot of the benefits to >>>> JavaScript in an optional way, which is very powerful. >>>> >>>> Also, it's not reinventing the language. It is JavaScript, mostly. >>>> Or JavaScript entirely, if you just write JS and have a separate >>>> declaration file, but with the benefits of linting that does more than >>>> whine about comma placement and indentation, and *actually finds >>>> subtle errors* in your programs. >>>> >>>> There have been a lot of attempts to come up with ways to add type >>>> hints and API-auto-documentation to JavaScript. (JSDoc, YUIDoc, >>>> AS3/ES4, etc.) Most of those are not very compelling. The fact that >>>> Microsoft is doing this, and building products on top of it (which >>>> they will inevitably hope to make money on), is very encouraging. It >>>> says to me that this is going to be a real thing with real developers >>>> working on it, with budgets and timelines, and the whole bit. It's >>>> somebody's job. >>>> >>>> >>>> I had some suggestions that I passed along to the folks at Microsoft: >>>> >>>> 1. It'd be *amazing* if there was a way to automatically try to guess >>>> at the best types, given a set of JavaScript code. Writing a >>>> declaration file is insanely tedious. I don't want to do it, and >>>> that's a blocker to adoption. I know that this is a hard problem, and >>>> totally not what you'd expect in a first release, but hey, V8 is >>>> guessing types pretty good, so it must be possible. That would make >>>> me happy. >>>> >>>> 2. It'd be nice (as I think someone mentioned in this thread) to let >>>> it put run-time type-checking into exposed functions at the API >>>> surface. If this needed to be a dev flag or something, then that's >>>> fine. I'd go ahead and let it in exported functions, though. We have >>>> a lot of that code in Node, and it's tedious to write and maintain. >>>> >>> >>> >>> Isaac, >>> >>> This belongs on your blog, no joke. I'm going to nag you until you do it. >>> >>> Rick >>> >>> >>> >>>> >>>> -- >>>> 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 [email protected] >>>> To unsubscribe from this group, send email to >>>> [email protected] >>>> 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 [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> 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 [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> 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 [email protected] > To unsubscribe from this group, send email to > [email protected] > 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
