Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Anders Hejlsberg: Introducing TypeScript

Download

Right click “Save as…”

TypeScript is a programming language that makes it easier to write cross-platform, application scale, JavaScript that runs in any browser or in any host.  Microsoft Technical Fellow Anders Hejlsberg explains how TypeScript, which is a typed superset of JavaScript that compiles to idiomatic (normal) JavaScript, can dramatically improve your productivity by enabling rich tooling experiences, all while maintaining your existing code and continuing to use the same JavaScript libraries you already love.

The TypeScript language specification is available under Open Web Foundation and the compiler implementation is available as Open Source.

Tags:

Follow the Discussion

  • Scott KoonScott Koon

    I'll go on record as saying this is almost the dumbest idea ever. We already have a strongly typed language that can compile to idiomatic JavaScript. It's called C#. Or Java. Or Lisp. Or C++.

    I know MS is working on a better VM for JavaScript. I know they are working on making the JS tooling in Visual Studio better. Why are they waiting time with this language? Is Anders just bored at MS?

  • @Scott Koon no need to be rude. As much as I'd love to wake up one day and see js replaced with something/anything in all browsers, I can't deny its popularity. MS already tried with VB script in IE, and it didn't catch on despite massive market share. JS is surprisingly resilient - it won't even accept its official name - ECMAScript.
    Creating new "standards" that are incompatible with each other would be actually much worse. JS can truly be today's interoperable assembly language, and different initiatives like coffe script, script# or the new TypeScript make a lot of sense.

  • ShawnShawn

    IMO you're not making a valid comparison. MS has extended JS to include a type system and compiled it down to plain JS. The translation layer is much more coherent.

  • Derick BaileyDerick Bailey

    +1 to what Scott Koon said. This is as bad, or worse, than Dart.

    It would seem that Anders hates languages that aren't statically typed. So I'm not surprised that he's trying to build something on top of JavaScript to make himself comfortable, after having been given the direction of building JavaScript tooling. I'm just very, very sad that Microsoft is still paying him to ruin languages for the sake of tools, when the rest of the world is embracing the ideas of dynamic languages and providing tooling for them - including Microsoft! Visual Studio 2012 has some of the best support for JavaScript I've seen in an IDE, JetBrains builds at least 2 or 3 IDEs that provide great support and tooling, and even Eclipse has good JavScript tooling and support. But Anders claims that you need static typing to get tooling, so he's given free rain to ruin the language and build tooling for that instead? It's really, really sad.

    The only thing he seems to have done right, in this case, is open source.

  • The question that Microsoft (looking at you, Anders Smiley) needs to be addressing is why we need yet another JS+x language that compiles down to JS.  I'm all for innovation, and I hope that we end up with multiple usable flavors of programming languages for HTMLvNext clients.  But languages need to show clear advantages if they're going to be adopted by the mainstream - so what sets this apart from CoffeeScript, Dart, etc.?

    Another way to phrase the question: is it your intention to make TypeScript into a mainstream language, or to help merge the best traits of TS, CS, etc. into a new standard language down the road?  In the former case, you'll need to explain why you're not effectively fighting against the CoffeeScript community (to impose the One Microsoft Way).  In the latter case, you'll need to explain why early adopters of TypeScript can take the risk that they'll need to do some significant rewriting down the road once "ECMATypedScript" is approved (or once these typing features make it into ECMAScript).

  • The only thing he seems to have done right, in this case, is open source.

    Here's hoping that this becomes the foundation for something truly positive and open (beyond the sense of source code, to collaborate with the larger web development community). Smiley

  • stacyDraperstacyDraper

    I like it. I'd have preferred type var rather than var: type

  • I hate javascript for not having a structure and its something that only mother could love Smiley

    Writing LBA in js is nightmare, the standard OOP is needed in js  (it was even submitted to ACMEscript committee)

  • Bent Rasmussenexoteric stuck in a loop, for a while

    I like this a lot. It's a very pragmatic approach. If you already know Javascript then you have little new to learn. Now I just want the tools. Smiley

  • This looks pretty sweet - addressing not only some of my JS gripes but some of my C# gripes as well (structural typing! woo!)

  • @Derick Bailey,

    It would seem that Anders hates languages that aren't statically typed. ... I'm just very, very sad that Microsoft is still paying him to ruin languages for the sake of tools, when the rest of the world is embracing the ideas of dynamic languages and providing tooling for them - including Microsoft!

    I see why you're concerned (even though I personally like Anders's work).

    In the spirit of innovation, I like the idea of seeing where we can go by adding static typing.  Bear in mind that the most rugged code in the world (silicon-layer logic) is extremely statically typed.  There's a place for that, and in a world increasingly reliant on HTML for cross-platform client applications, we're going to see more and more apps requiring the level of ruggedness and static guarantees (as opposed to the Web 2.0 mantra of fail-fast iteration) that only these techniques can provide.

    So I'm going to wait and see.  But Microsoft definitely needs to acknowledge - up-front - the pioneers in this field (especially those outside of Redmond).

    The last enterprise I worked at was rapidly adopting CoffeeScript, for example; if MS starts to preach TypeScript as the One True Way then they're going to get some unexpected backlash.  If, instead, Anders acknowledges that this is an experiment and that there are going to be changes in the process of developing open standards (possibly even including the abandoning of TypeScript once it's served its purpose) then people are going to have a much warmer response.  It's harder to convince us that our investment won't be a wasted one, but ultimately it's the more honest path and would lead to a better outcome for everyone.

    Put another way, you (Anders) need to explain why this doesn't belong in DevLabs.

  • ShawnShawn

    Would be great to see msft throw support behind Dart rather than creating another offshoot. I don't think CoffeeScript has any notion of types.

    Just because they are adding types doesn't mean they are removing dynamics.

  • I like it as well! I find the syntax and general feel of the language more appealing than CoffeeScript or Dart, and Visual Studio support is a big plus. Your live typescript to javascript playground is very impressive.

  • BrentBrent

    From what I can tell, this goes much further than CoffeeScript and has the advantage of being supported by Visual Studio. Large JS projects can use static typing and the other features that TypeScript provides.

  • SebSeb

    This is great news.
    This looks like CoffeeScript on steroids.
    In the typed JS space, one project to mention is Opa http://opalang.org which has showed lots of progress recently

  • I don't know why They didn't implements Command Language Specification on internet explorer. control DOM and event management with CLS langs looks nice.

  • umm...

    WTF, we already have a language.. c#. why reinvent the wheel.

     

  • RaviRavi

    play with Typescript :)
    http://www.typescriptlang.org/Playground/

  • Obvious question: How is this better than Dart? / Why not create tooling for Dart?

    Also are there plans to implement C#-style async in TypeScript. It seems like it could be very useful.

  • JavaScript is clearly future of programming (... service defining) language. We leaned accessor methods are useless. Json style object frying on the Internet, Json is best data representation object model. (Pretty fit NoSQL style data-store) Mr.Andres known it. We wanna compress source code lines.

  • Is it the 1st of April today? Why not to co-operate on the Dart language?

  • @Scott Koon: Sorry but how do I compile C# to Javascript

  • DeathByVisualStudioDeathBy​VisualStudio If we all believed in unicorns and fairies the world would be a better place.

    Putting on my favorite fall edition Microsoft Apologist Hat I'd have to say that this is Microsoft providing another option to JS and not trying to herald in "the one true scripting language". It's all about tools and options and not knowing what to trust will be around in a year or two. Wink

  • This is great.

    I'm a heavy CoffeeScript user and would definitely use this.  Couple of suggestions:

    • Line number correlation is important for debugging.  I don't remember what happened to the standard proposal - but some browsers would going to support this is JS.
    • Is there an option to minify?  Now that more information is known I would expect a minifyier could do a better job.
    • What about aync support?  Would like to see something like Iced CoffeeScript.
    • Is there an option to generate interface only .ts files for distributable libraries (essentially just the metadata)?

    Also, would love to see a hosted dev environment for this Wink

     

  • csharpguycsharpguy

    This is GREAT!!!!!!

    Now I can start using javascript. I have tried JS before, didn't like the experience of waiting till runtime to fix common errors.

    I am a Windows developer, I don't care about open source or such nonsense. Just give me a well documented, productive development/debugging experience.

    The open source guys can stay with coffeescript, teascript, dart or whatever, Windows developers may not care about those (at least I don't).

  • Deactivated UserDeactivated User

    Comment removed at user's request.

  • RobRob

    To me, this is just great. And since it's open source, I might even try to to cram Lua metamethods into it. Oh the fun.

  • I like it a lot. Very good idea to keep it as aligned with ECMAScript6 as possible. One way of looking at a lot of the functionality is a ECMAScript6 stopgap.

    Some of the handling around "this" seems like it could use some cleanup, perhaps, but I guess that's a work in progress.

  • I like it.  It seems like a nature evolution of JS, I'm looking forward to see them in future ECMAScript.

     

  • Anders, seems to be using a Microsoft Surface Computer mounted on a docking station, and it runs Visual Studio!!! 

     

  • RonRon

    This is fantastic. I would estimate that 70% of my large Javascript bugs are wrong data in the wrong variable kind of things. It is really not an issue with smaller Javascript apps, but once you get into a big enough app - and you work on code that was written maybe a month ago - these issues creep all the time.

  • As for the static vs dynamic typing - surely a langauge that allows for both is the best.

    Dynamic typing is really just runtime validation.  If you want to validate code before runtime you should be able to.  Anybody that has written a large scale JavaScript application will know about the problems that TypeScript is trying to solve.

  • Juan ZamudioJuanZamudio Chaparrito

    Love it

  • Duncan MackenzieDuncanma "yeah that's awful close, but that's not why I'm so hard done by"

    @VironPapadopoulos: actually it looks like a Samsung Series 7, still cool, but not a Surface.

  • lol ... happening again - MSFT creates yet another pseudo-open "extension" of language then let people use it and then whammo stop using it you'll have to switch to our platform.

    Fool me once, fool me twice...

    NO NO NO NO NO NO NO NO NO NO NO NO

  • Colin JackColin Jack

    @Derick
    "Visual Studio 2012 has some of the best support for JavaScript I've seen in an IDE, JetBrains builds at least 2 or 3 IDEs that provide great support and tooling, and even Eclipse has good JavScript tooling and support."

    I love JS and spend as much time as I can writing it but I do think even the best tools for it are not good enough. Even with a good test suite and nicely designed codebase I pine for good refactoring support (which I'm assuming TS will make easier, though maybe I'm wrong).

    Also for me it is not just about tooling and indeed I think the documentation aspect is almost more important. Key here is the fact that optional/structural typing make it possible to use type information where you think it's useful, I think that could lead to much more manageable codebased if used sensibly.

    Slight detour but you mention JetBrains and I do have to say I think some of their tooling is utterly awful. For me Rubymine is slow, terrible UI, buggiest software I've ever used...just awful. I love Resharper but I'd definitely not recommend Rubymine to even my worst enemy.

  • @Lars Kemmann: while i'm very interested in this space (transcompilers to javascript) i'm underimpressed with typescript so far, but as for value/risk for early adopters. Since it produces relatively good and clean javascript, i think there is little risk, in that if typescript changes, or goes away you still have maintainable javascript to work with.

  • So when are they porting WinJS to the browser?  Smiley

  • it's cool, pretty easy and lightweight it seems. If they put decent tooling in, it might get used by People.

    Though when we're going down the js as an assemblylanguage road, I'd probably choose C# (e.g. Script#) or even cooler, F# (Websharper). or imagine being able to cross-compile your portable class libs down to js.. Smiley

    But what I'm also waiting for is for something Like Google Native Client as a (real) assembly on the web to take over, we can't be stuck with JS as the ONLY language forever.

  • JohnJohn

    C# to JavaScript Cross-Compiler:
    http://sharpkit.net/

  • mamundmamund hypermedia junkie

    the rash of "languages" that "compile down to JS" shows a trend; possibly based on a need, but this particular one seems like weak sauce.

    IMO, if the aim is to make devs more productive and less error-prone w/ JS, then let's take this in a whole new direction completely.  why are we still 'writing JS" w/ a few decorators? why not _draw_ our code or visualize it in entirely new ways that bypass the error-prone, confusing, and mundane parts of JS?

    if JS is so horrible, let's start thinking outside the box, eh?

  • P.S. Now that you've created a nice anonymous structural typing feature here, please port it back to C#. It would come in handy for ViewModels, for example ... Smiley

  • ParmenioParmenio () => {}

    Very interesting. I like the strong type inference particulary. Still feels like scripting but with the advantages of static typing for tooling (if not performance). Nice lightweight type syntax too, unlike Closure. Be interesting to see how it measures up against Dart, but it's certainly more ambitious than CoffeScript.

  • Robert Sundströmrobertsunds​trom Robert Sundström

    Just got reminded about a blog post I read a week ago. It's a tip for those who rather prefer to write code in a .NET language like C#. All of the tools still compile down to JS. Not as elegant as TypeScript though.

    Read the post here http://tirania.org/blog/archive/2012/Sep-06.html

  • EduardoEduardo

    Anyone knows what keyboard is Anders using?

  • Aaron StainbackAceHack AceHack

    I like it, especially all the inference.  Even though I don't like java script very much, this seems pretty nice.

  • RAHIM MohamedIslamath Software Architecte & Math Fan

    JS is becoming not only WebApp lang but also a Desktop/Tab/Mobile (Win8/WP8) App lang!

    Where do we put TypeScript in the Dev Cycle?

    Do we really need a new Language After C# & JS?

  • Edward MoemekaMoemeka Me

    Thank you Mr. Hejlsberg, you and your team continue to build tools for those of us who don't believe in unnecessary complexity.  This language is the rational solution to the JavaScript problem.  It can be used in a web application interchangeably with javascript and offers all the important features of c# without creating some bizarre Frankenstein hybrid.

    This is common sense, and it only seems to come from your team these days.  Thank You!!

    PS - can you take over Windows Phone / Windows 8 development story please !!!!!

  • SamSam

    This is absolutely great. What some of these commentators seem to have missed is that the problem with most JavaScript "alternatives" (such as Dart) is that they don't interoperate with existing JavaScript libraries. This is a huge problem when so much infrastructure already exists out there in the world written in JavaScript.

    This language fills a huge niche. There are *no* statically typed languages which are supersets of JavaScript currently. CoffeeScript is a great project, but it makes no attempt to introduce any kind of type system.

  • Very interesting news that I'd like to read more about and try out.  However, I just wonder whether the criticism from (say) @Derick Bailey and @Scott Koon is a little misplaced.  Surely Typescript is not so much something that will "ruin the language", but rather more of a development tool that's layered over Javascript, and even then only in the context of an IDE.  I think it's fairly clear that Javascript itself remains unaffected.

  • LOVEMOSSNOTLOVEMOSSNOT

    Another leaky abstraction, why not? : )

    CLIENT=> TYPESCRIPT => JAVASCRIPT => JSON => C# SERVICE/BLL/DAL => SQL

    Let's keep adding layers to that cake.. hmm hmmm hmm
    smells like complexity + money

  • martijnmartijn

    Great talk. This looks very promising. Having worked with ScriptSharp and SharpKit I noticed C# sometimes getting in the way of interacting with real js. Can we debug and refactor TypeScript as well?

  • Scott KoonScott Koon

    @Kofi

    You can use Script#
    http://channel9.msdn.com/Events/MIX/MIX11/HTM16

    or SharpKit
    http://sharpkit.net/

    And, once upon a time, you could use Volta. Although Volta was just a labs project.
    http://en.wikipedia.org/wiki/Microsoft_Live_Labs_Volta

    @seanfitzg - I wouldn't say it's going to ruin JavaScript. Some of the ideas are from the ES6 "Harmony" spec. e.g. classes, some of the modules stuff.
    But the interfaces, optional typing don't really add anything to the language.

  • @martijn: maybe source maps is the way for debugging http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

  • MarrickvillainMarrickvill​ain

    Is this "embracing and extending" JavaScript?

  • Kastellanos NikosKastellanos Nikos

    Will there be a line directive like in C? (Probably in a form of comments) In combination with the right tools it would make debugging much easier.

    #line Directive (C/C++)
    http://msdn.microsoft.com/en-us/library/b5w2czay.aspx

    I think what fabioparra propose is similar.

  • davewill2DaveWill2 because davewill wasn't enough

    Another leaky abstraction, why not? : )

    CLIENT=> TYPESCRIPT => JAVASCRIPT => JSON => C# SERVICE/BLL/DAL => SQL

    Let's keep adding layers to that cake.. hmm hmmm hmm
    smells like complexity + money

    TypeScript compiles to JavaScript.

    CLIENT=> JAVASCRIPT =>

     

  • Adam AnderlyAdam Anderly

    I have to disagree with most of the negative sentiments here. I've been very impressed with the developer tools Microsoft has put out in recent years (in tools like Visual Studio compared to say Eclipse). As such, I've always thought that Microsoft could expand Visual Studio's reach to include other languages and improve it for existing languages like javascript. They've done this with WebMatrix by adding PHP, node.js and even CoffeeScript support.

    I see this announcement for exactly what Anders said it is - a "development tool" to help write better, maintainable, application-scale javascript applications. It's not a new language per say, it's a superset (although not nearly much as CoffeeScript). Rather, it's another developer tool. Plus, being open source, I'm someone could even write a CoffeeScript extension to TypeScript to allow use of the shorter CoffeeScript syntax with the type features of TypeScript if you'd rather use the CoffeeScript syntax. Who knows, MS might already be working on this). Personally, I love seeing the latest news coming out of Scott Gu's org as it's open-source, relevant and less dogmatic.

    I view TypeScript as another developer tool to help write better javascript at "development time" and prevent more bugs from making it to production...and I believe that is exactly the way it is intended to be used. Neither Dart, nor CoffeeScript make that claim. CoffeeScript's aim for instance, is to strip away the syntax of javascript and essentially allow you to write short-hand javascript, while providing some new idioms (classes, etc.) that don't natively exist.

    Coming from many a c-style language background, I'm fine with curly braces and semi-colons and welcome the TypeScript efforts as having a more practical application to developers vs. CoffeeScript in that it won't simply help me write "less" code, but write "better" code.

    I think the point here is that javascript (like it or not) has become the assembly language of the web and we can either work with it directly or use more expressive languages supersets on top of it depending on our preference. I see TypeScript as a welcome addition.

    Anders and team, keep up the great work!

  • @Ekus:

    Is JS popular because it's so awesome or is it popular just because it's the only game in town? No other Brower supported vbscript except IE which guaranteed it would only be used in an intranet environment. 

  • Best news for JavaScript developers in a long time. For example, TypeScript's jQuery code completion is so much better than what VS2012 offers.

    Looking forward to using it! Thanks team.

  • IlyaIlya

    JS for human beings? Yes, please!
    Thanks you, MS for doing this stuff. I hope, that MVC guys would add support for TS soon, so that, I wouldn't need to endure pain of plain JS ever again.
    Thanks again!

  • good good studygood good study

    like it

  • MikeYeaneymyeaney Lovin the 9...

    It blows my mind that we are still investing time and energy in tools to make JS "not exist".  The common ubiquity of the language (good or bad) is the whole point. You can literally run pure javascript anywhere (cscript, spidermonky/v8, etc.) - the whole browser thing is just the tip of the iceberg.

    On second thought - never mind. There is a *ton* of money to be made by selling VS2012 licenses, and if the masses ask for it, then there is no reason for MS to not make it. Remember, you don't have to use it, although they'll probably bake it into every project template they can without even asking.

    Anders, et al - **please** think about the long-term implications of this. MS has failed the developer community many times on VS-specific things in the past...take this (potentially) good idea to ECMA, and drive the standard. Good tooling will follow.

  • Daniel BryarsDaniel Bryars

    Very impressive. This is superb.

  • Guys, TypeScript is like SASS/LESS for JavaScript. If you don't see the value in those tools, you'll probably not see the value in TS.

  • Excellent work, Anders and team at Microsoft.  This is going to revolutionalize JS much as JQuery has IMO.  Finally, we have some structure to aid in writing good JavaScript, as long as it does not take away JS' dynamic language property.

    I am not sure why some folks compare this to C#... do they have any clue what TrueScript is before commenting?  This tool is awesome!

    I am not sure about the other JS compilers, but as for the comparison of TrueScript to DART...well, DART's goal is to replace JS.  TS does not aim to do that; it does not have a "VM" like DART and it only compiles to JavaScript. 

    I can't wait to get my hands on this.

    Edit: Microosft, to make TypeScript truly awesome, please include a plug-in for VS2010.  That will definitely increase the number of people adopting the tool.

  • WinInsiderWinInsider Mike, MCAD

    JavaScript = Assembler
    TypeScript/Dart = C
    ???? = C++
    ???? = C#

    Can we fast-forward, and get to C# type language (with .NET Framework set of libraries, and XAML for UI) for building "browser apps". On desktop we already have great developer story.  Kudos to Anders, Cwalina, Abrams, Gossman for making this happen.

    * "browser apps" that is an oxymoron

    Nevertheless, TypeScript does look more elegant; but then again, is hard to do worst then JavaScript.

    Anders, do not stop, keep going... No .NET/C# developer wants to program (think) in "JavaScript" in their lifetime.

  • TypeScript will ease the path for the evolution of JS in the near future.

    Thank you!

  • Antonio Alexander CastroAntonio Alexander Castro

    I like the idea of MS adopting standards that they did not invent. In this case, creating a superset for Javascript. In a way I think this is MS answer to DART. DART is google's implementation/answer to JS and Typescript is MS' answer. Since most companies will not support DART, Typescript might get adopted since in is a superset of JS and compiles down to JS. Being Open-sourced and having great tool support thru VS 2012, it might just be what MS needs.

  • BenBen

    I'll admit I haven't watched the video but I did skim the PDF and examples and checked out the repo.

    What I saw looked great.

    80+% comments here are ignorant. I say this as a non-user of MS products (unless required for testing or something), and as someone who has programmed JS a long time. Since before jQuery existed and before AJAX was an acronym.

    I feel bad for some of the folks on this page because they aren't able to evaluate something on its merits. Good luck to you. The rest of us will be taking advantage of useful stuff hopefully far away from you.

  • testtest

    I download the mp3 file and when I run them in VLC I found a word "Saar Sandesh" in Hindi as cover image.

    Is this conver add from any of my files I have or it's come from your side.


  • Richard Collettercollette Success is to prepare for opportunity.

    @joeyw:First constructive post in a list of mostly uninformed whining.  The notion of async is interesting.    However, he did show the "meta" file you are seeking such as the ones for ECMAScript, jQuery, node.js, etc.  and also showed how the compiler can generate that for you as well.   Minification is a separate responsibility, but included in asp.net 4.5 as pluggable service.

  • I'm really impressed with what I see. I'm curious what the thinking was behind the pattern chosen for private members though - not making them private ultimately. There are patterns that can accomplish this, such as those that return a object literal from within a function body. This object literal can maintain references to members of the function body outside of the object long after execution.

    ​var myClass = function(){
        var private;
        return {
            setPrivate: function(x){ private = x; },
            getPrivate: function(){ return private; }    
        }    
    };
    
    var foo = new myClass();
    foo.setPrivate(10);
    console.log(foo.getPrivate());

    There's no way to access the private member without going through the methods provided in the returned object. It seems like this would have been (one possible) approach that would be more true to the intent.

    I'm sure you guys had a perfectly legitimate reason for not going with a pattern like this, and instead making the privately declared members publicly accessible (no sarcasm), so I'm curious what - if anything - I'm missing here.

  • @VironPapadopoulos: No, Anders is using a Samsung Series 7 slate like those handed out at //BUILD last September or available from MicrosoftStore.com:

    http://www.microsoftstore.com/store/msstore/pd/Samsung-Series-7-Slate-with-3G/productID.247107500/parentCategoryID.44066900/categoryID.54536100/list.true

  • Good idea to move forward.

  • This is truly awesome. I don't understand some of the negative comments above.

    • There are advantages to static typing (and in modern day static typing you tend to type less). Some of the extra complexities you take out from static typing in making a dynamic languages could simply reemerge in other places in your development process.
    • There is virtually no learning curve for the superset if you know JS and some basic OO. Being a framework there is always the risk that if you take a dependency the framework could go out of date someday - this is a more universal problem. The open source nature of the project could probably help here.
    • As already mentioned the advantage of TS compared to Script# is that it interoperates better with existing or new JS libraries. Providing wrappers could quickly go out of sync as the libararies evolve.
  • Richard Collettercollette Success is to prepare for opportunity.

    TS is awesome and the best part is that I believe I can be really productive with it with no more than a few hours of working with it. I can't say exactly why but it just seems to make sense, which is rare when it comes to new web technologies these days.
    Fantastic presentation on this as well. I can't remember the last time someone demo'd something like this and it did not feel rushed, choppy or incomplete.

    Point/Counter Point

    • Aims to sell MS tooling - Not really since it's command line open source. But their tooling does do it well.
    • Aims to replace JS with a proprietary language that locks you into MS tooling - Not really, in fact it generates straight JS that, from this video, appears rather tight and "manually" maintainable.
    • Creates a redundant language that competes with existing OO languages like C# - If you've used any other language to compile to JS, you know that there are all kinds of limitations on that language and the IDE doesn't warn you of those incompatibilities. TS avoids impedance mismatch. I would love to see C# in the browser. Heck, I know Silverlight/C# are far more productive than JS/HTML development. The reality is that the browser standards are only being solidified so hoping for a miracle doesn't help anyone.
    • Creates a redundant language that competes with existing compiled script languages like CoffeeScript - As others have pointed out CoffeeScript doesn't have the notion of types and frankly I find the syntax cryptic (could be just me). TypeScript is closer to the metal in my opinion. I don't see why we should be so dedicated to the first option on the block purely out of loyalty.  This isn't high school sports. Let's recognize an implemented innovation when we see it.
    • Bloats an existing language that is already perfect and deserves no further improvement - You know, you have a point. Enjoy the refactoring support you already love and your co-workers will love you for the self documenting code that you have left behind for them. I am sure you're a winner. Smiley

    I do recognize the effort that Dart has made and that is commendable but I have to say I did not "get it" the way I get TS simply by watching a 1 hour video. To me, this is super easy and at the same time resolves the issues causing .NET developers to loathe JS development. Together I can see this driving adoption in my company.

    I didn't agree with the association someone was making between a strongly typed script languages and architectural complexity but I understood the underlying pain. It takes a ton of time to do:

    UI=>JS=>Service=>BusinessObject=>DataAccessObject=>Stored Procedures

    Note I have not even included all the redundancies like validation nor design time for UI/OO/Data Modeling. I think MS was starting down the path with LightSwitch but then changed gears completely by end of lifeing Silverlight (though I am no fan of Entity Framework).  Perhaps TS combined with LightSwitch will start to reduce the cycle time for applications over the long haul (If there is such a thing for MS).

  • DiryBoyDiryBoy Nothing is true, everything is permitted

    The PlayGround editor is impressive, is it also open source?

  • Absolutely Brilliant.

    I spent the last month on a project involving C++, C# and JS. The only thing that didn't went as smooth as I liked was the JS. Mainly due the fact that I cannot keep a whole API in my head. (The 8000 lines Anders is referring too.) As a matter of fact I was using a for me new API, three.js and it was just tedious. Opening files manually, looking for members all over the code etc... And then three.js is a nice structured library.

    So I am off to download this as I've got work to do.

  • PaulSPaulS

    I have a really dumb question: Instead of people fixing JavaScript’s flaws by building on top of its shaky foundation, why don’t we all work to fix JavaScript itself?

    Is it that hard to get productive work out of the ECMAScript committee? Given all the work on CofeeScript, Dart, and now TypeScript (and many projects pointed out by others), it seems that the major problems with fixing JavaScript are political, not technical.

    -Paul

  • nekaniicnekaniic

    ts = js done right

    thanks Anders and the team!

  • wow ! thank you Anders and team !

    after a decade of working with c# and asp, I felt out of place with js during 2009-2010;

    jquery in 2010 and typescript now, saved me.

  • Actually I was expecting something like this to come out since mary-jo mentioned on zdnet a while ago that anders and team are working on something similar to this

  • Lee DaleLee_Dale .nettter

    I think what alot of people complaining about are missing is the fact that most developers who are stuck within the Microsoft development stack and don't really look beyond it just open up Visual Studio and use whatever Microsoft puts in front of them.

    I don't think this is created to fix or replace Javascript but to allow developers to work on Javascript code and be A) more productive and B) safer in the use of the language i.e. not getting themselves in trouble with dynamically typed languages.

    We forget that there are many many developers out there that just want to build LOB applications the quickest and safest way possible.

    I like the fact that it compiles down to standard Javascript and if developers adopt TypeScript then they are not stuck with alot of code that Microsoft might abandon several years down the line (*cough* Silverlight *cough*).

    Anyway I think it looks cool to me, I personally prefer statically typed languages and adding type safety (at compiler level not runtime) makes me happier.  I work mainly with back end enterprise applications and I see alot of rubbish javascript, I'm not saying Typescript is the answer to this but it might help a little.

    Anyway I don't think this is necessary a bad thing just another way of getting things done within the MS ecosystem.

  • KevinKevin

    @leeappdaleco​m, I think the best approach for this is to wait for a few years..

    - got burn so bad on silverlight :(

  • I installed the VS Plugin and now get an error starting VS2012:

    Exception has been thrown by the target of an invocation. Anyone has an idea?

  • This i great! I've been waiting for it ever since I started using JavaScript for my mobile development. Since JS today is used to build a whole applicationion with HTML5, the devs need to have a greater control over their code. TypeScript allows exactly that, thank you Anders and the team!

  • What I also love about it is that it's so easy to add TypeScript to your code and it's even easier to remove it - just compile and it's gone. The compiled JS looks very clean and clear. It would be nice if the compiler could optionally include comments in the resulting JS file from the source TS file.

  • @RazoRek: I agree.

     

  • Thanks Anders, this is exactly what JavaScript-developers have been waiting for: structure!

  • FZ14FZ14

    How soon we can expect ports of other libraries like jQuery?

    Looks like all that need to to do is describe objects by using interfaces, so it can be done using some code generation or something. Will be there any utils that will help with this process?

  • I guess this is cool, but also Scott Koon got a point there.

  • Hans Olavhansol Cloudtastic

    This is the most exciting new tech since C# and .NET came out! JavaScript is near useless for bigger projects, and with this it has suddenly transformed into a beauty.

  • i agree with you hansol. nice avatar by the way Wink

  • sreesivsreesiv

    When I first read the post, and the post that led me to this page, me too was of the opinion that creating a new lang spec for this was sort of an overkill... But after gaining more insights into this and watching the video, my perception actually changed a lot. This is very beautiful. Using Java (GWT) or C# (Script#) and compiling out JS instead of the bytecode OR IL is a nice idea and you get the benefits of using a strongly typed language. But they (the lang we are writing in and the JS output) feel a lot more disjoint, and JS only programmers would not feel so comfortable with the options. And there is a definite loss of fidelity due to the translations and paradigm shift involved. Also as Anders Hejlsberg rightly pointed, the programmers will always be an arms lenght distance away from the latest developments in the Javascript language or libraries or specs or the community...

    This is actually a very good solution and infact is the right direction for enabling not just web programmers but app devs especially the ones writing Modern Win8 apps using HTML5 and Javascript, to write large JS apps.

  • SebastianSebastian

    I think this is good thing. I do a lot of JS and I feel the pain of not having a type system. This is very welcome. Maybe this will encourage ECMA script to bring back optional typing into the dialogue.

    I think it is brilliant how Typescript enhances JS without requiring you to port everything into some other language. The ability to just copy existing JS code and use it is excellent.

    It would be nice if Microsoft would invest some time in building tooling for Linux / Mac in the way of plug-ins for popular editors (e.g. Sublime text), that would encourage a developers like me to try Typescript in real projects.

  • MarcelMarcel

    @Sebastian: look here http://blogs.msdn.com/b/interoperability/archive/2012/10/01/sublime-text-vi-emacs-typescript-enabled.aspx

  • Most developers would prefer a real fix. Like Dart. But the big boys wont play nice so the pragmatic approach, the tight fit, and the derived tooling is clever.

    Godt tænkt, Anders Wink   

  • Edwin YipEdwin Yip

    It's a good idea that TypeScript is being designed as a superset of JavaScript, since that'll let JS programmers transit to it easier, as compared to other compile-to-js languages such as CoffeeScript (actually, in terms of taste and simplification, I like CoffeeScript more, you know, I like Python :).

    I'm glad that I've started my LIVEditor project (live html/css/js code editor for the web with a Firebug-like UI, at http://liveditor.com, in beta soon), look, how flourishing the web development industry is!

  • nice ...

  • Surjit Singh WaliaSurjit Singh Walia

    It's great concept and I will try to use the tools.

    I thinks their is a need for a correction In this video related to private variables in javascript.

    As stated in this video that their is not notion of private variable in JavaScript, but I we can define private variable and I have used in may of my web projects. Please see below link for more information:
    http://www.crockford.com/javascript/private.html.

    Google for more info on private variables and function.

    The code generated by tools in in accurate.

    Surjit Singh Walia
    PMP, MCSD, MCPD, MCAD, OCA, MCTS, PSD

  • In TypeScript, I can take my existing JavaScript code, cut-n-paste it into TypeScript source file (foo.ts)... and it works.  TypeScript is a superset of JavaScript.

    In C#, I can take my existing JavaScript code, cut-n-paste it into a C# source file (foo.cs)... and the compiler barfs.  C# is not a superset of JavaScript.

    TypeScript is to JavaScript as C++ is to C.

    And TypeScript introduces some draft ES6 facilities (subject to change!) into modern browsers now.  Which is not re-inventing the wheel at all, but very forward looking.

  • Lex LavnikovLex Lavnikov

    Just ported TypeScript RayTracer source code to Silverlight 5.

    Raw C# performance is 12x better than Chakra IE10 and Chrome V8.
    Dynamic languages are still very, very slow :(

  • @FZ14: You wish for jQuery to be ported to TypeScript.

    I just want to point out that you don't actually need to port existing libraries to TS in order to get a strongly typed experience consuming them. TS let's you write "declare files" that describe a typed view of existing code, so that you can get IntelliSense and type checking against them when you consume them from TS.

    The TypeScript site contains several examples of this on the "Run it" tab. For instance, the "JQuery Parallax Starfield" sample contains a "jquery.d.ts" file that does this for jQuery. Check it out!

    Our hope is that authors of JS libraries will also author .d.ts files for them. If you write your library in TypeScript, the TypeScript compiler can also generate a .d.ts file for it, along with the JS.

    As a matter of fact I wouldn't be surprised if some JS (not TS) editors would start picking up .d.ts files so that they can offer better tool support even for vanilla JavaScript programs that consume those libraries Smiley.

  • Richard Collettercollette Success is to prepare for opportunity.

    @LexLavnikov - What's the performance on Mac Chrome?   Silverlight is(was) great for intranet development where you have control over the browser platform.  Not so much for the general internet.   Instead of having to constantly update Silverlight for N browsers, they can focus on a standards based development platform and do it one time.   Perhaps my feelings that Silverlight development is quicker will start to diminish when using TS.   UI behaviors are still majorly kludgy and incohesive compared to Silverlight.   JS/TS seems light years ahead of HTML/DOM at this point.

  • sweet.. This is really cool stuff.  Compile time checks and easier refactoring in javascript.. the world must be coming to an end soon.

  • RugbyRugby

    TypeScript very similar to Traceur Compiler, JavaScript++ or JSX. Why is Microsoft creating a new language instead of joining one of existing projects?

  • Eric ElliottEric Elliott

    A lot of these features are already planned for ES6. Why is this TypeScript instead of an EcmaScript 6 -> oldskool ES compiler?

  • fanbabyfanbaby

    A couple of questions for Andres:

    1) When did you decide open sourcing your work is a 'good thing'? Did your views on open source changed in time?

    2) What's your personal take on the fact that Microsoft claims that Linux infringes on many of its patents?

    Thanks, fanbaby

  • Does someone know what machine he is using? it looks like a docked 15''+ tablet, I want one

  • "if JS is so horrible, let's start thinking outside the box, eh?"

    @mamund: Well Said ...

    Kill the spider, do not clean its web everyday ...

    But then again, even this tool generated so much negative feedback. Not that it can't, but imagine if Microsoft even tries to find a CURE for javascript's problem (as in a total replacement solution) ... wow I can't imagine the feedback of opensource/JS AFICIONADOs would be like MS is attacking Opensource and the rest of the usual accusations like Expressionless (burn the MS witch maybe or sentences including the famous M$). I think we are in a phase of a Javascript political-evolution ... which in the end (hopefully soon) will lead to your "thinking outside the box".

  • Ben KotvisBen Kotvis

    Anyone know why there isn't automatic compilation on build of these TS files? It seems like that would make a lot of sense. Or at lease have a "Run Custom Tool" option in the context menu. I mean there is a lot of generated code from the .net stack and I almost never need to use command line to compile.

    Otherwise this is pretty amazing.

  • CharlesCharles Welcome Change

    @zbend: Samsung Series 7 tablet.
    C

  • MaazMaaz

    This is good ... it's a clear step towards cloud based computing where everything is done via internet and remote clouds and making apps that do exactly that

  • P SchlupP Schlup

    I agree with @stacyDraper. Let's keep "type var" instead of the hideous "var: type".

  • Jason NelsonJason Nelson

    Anders, I absolutely admire ALL of your work. You know I still use Delphi EVERY DAY in addition to C# (Unity on Mono). Thankyou for telling people what they're too chicken to tell themselves... Javascript is a TERRIBLE tool... and it needs to be replaced with something with actual real structure. Good choice on deciding to compile down to JS. That means that it can be compiled on the backend and drive a rich UI on the front. Language syntax is the most important attribute of a programming tool. And everything you've ever built is beyond brilliant. I sincerely hope you're remembered in the history books alongside the greatest of scientists.

  • I just watched the video and love the syntax. No more weired stuff for writting real Javascript.

  • niu techniu tech

    Hi folks! I am pleased to announce the new way of running TypeScripts - just like native JavaScript, without hassle using tsc. It's called TypeScript Compile and it automatically compiles TS into JS on the fly. Please check it out and fork it on GitHub: https://github.com/niutech/typescript-compile

  • VladVlad

    Andres,

    I've been using your stuff since Turbo C 1.5, and hugely admire your contribution to the field, but yet another Script#/Dart/GWT? C'mon..

    What you made is Script# without having to create declarations for 3rd party JS libraries first. Otherwise, it is no different: we'd still write program in one language and IDE, and debug in another.

    I spent 2 years writing large app using Script#, WebKit browsers, WebSQL and Sencha Touch, and learned that while these tools make creation of portable RIA enterprise apps possible, they do not make it practical. The whole ecosystem still has a very distinct 1.0 feel - all of this almost 20 years after it has become clear that browser is just another operating system and could use a decent programming language and a tool set.

    The only real solution to the horrible "JS is the only game in town" situation would be if MS, Apple and Google got together all deciding that there will be another language that both WebKit and IE would support, the real language, like C# or Java, strongly typed, with classes, etc. Toss the coin to choose whether it is going to be Java or C# - we won't care, but TypeScript is just yet another too-little-too-late type of incremental improvement that are so typical for the glacier pace of innovation in browser-based RIA. For a moment we hoped that Silverlight would be the one, but then MS didn't find the charisma to lead the industry to wide, cross-platform adoption of it.
    MS, Apple and Google appear to pay only lip service to the idea of portable RIA, while it's pretty clear that portable, easy-to-write RIA will cannibalize each company's proprietary platform so there is not real incentive for them to innovate: just another case of incumbents protecting their turf instead of innovating. When I first saw JS back in 1990's, I found the language so mediocre that I gave it no more than 2 years of life. More than 15 years later JS is still with us and sucks only just a little bit less, but you guys are now legitimizing terrible idea of JS, instead of building an interpreter of a first-class programming language into all browsers.

    This whole state of affairs is very sad, especially that Andres now adds credibility to the patently mediocre idea. I think it's a really poor place for Andres to spend his huge political capital. We need a real programming language in all browsers, and now it looks like there is one less thought leader who could take the industry there.

  • @Scott Koon: "We already have a strongly typed language that can compile to idiomatic JavaScript. It's called C#. Or Java. Or Lisp. Or C++."

    Sorry, but do you even watch the presentation? Within the first two minutes, Anders addresses this point and in fact gives it as one of the reasons for creating TypeScript in the first place.

  • PeterPeter

    You can do typing in ECMAScript already, the browser just dont support it. So what's the point to screw around with the syntax. The 'compiler' does nothing than removing the types...

  • muhammad hussainmuhammad hussain

    @Ekus, exactly you are right. But one thing is sure in this industry is that you can't rely on a single tool as we have to accept sometimes the dynamical phenomenon.
    But I think Javascript and Jquery is enough till 2020.

  • I was ready to write this off immediately because I assumed it would be similar to Dart.

    Just finished watching the whole presentation and was pleasantly surprised. I can't wait to start using this!

  • Nestor SanchezNestor Sanchez

    I only hopes Anders is no abandoning innovations in statically-typed vm-based C#, which is the equilibrium between js and C++.

  • Lex LavnikovLex Lavnikov

    @rcollette, I don't have a Mac to test it there.

    But about Windows 8, IE10 & Chrome have similar (very slow) performance of JavaScript (using Raytracer demo from TypeScript playground). Using ThreadPool I was able to improve performance of Silverlight 5 C# code being x15 times faster to 29x times faster than JavaScript.

    On my machine, Raytracer with 1000x1000 canvas works about 29 seconds in IE10 Desktop. On Chrome it takes probably even longer, because Chrome displays "Script is frozen" window.

    Silverlight 5 code takes 1.8 seconds to render, in 4 parallel threads - just 1 second.

    I am still not convinced, that JavaScript is the future for mobile devices, being such a CPU hungry beast, burning out the batteries so effectively.

    Don't we all want to recharge our phones once per week like 15 years ago? :)

  • BartBart

    This looks really nice. I'll be trying to use it for a small project in the next few weeks. Thank you.

  • Nice superset so far.

  • Daniel Earwickerdanielearwi​cker I used to be language agnostic, now I'm language atheist

    Lots of critics saying "why not just use an existing language"? One thing people seem to be missing about TS is that it already has a BETTER type system than most previous mainstream high-level languages.

    It's structural instead of nominal. In C# and Java you can have an interface IFoo with method Bar, and a class C that has method Bar with exactly the right signature, but C doesn't implement IFoo unless you edit the definition of C accordingly.

    Whereas in TS, C already implements IFoo merely because it has the right structure.

    This is already an excellent improvement, but when they add generics to TS it's going to be a big  improvement on C#. An interface could be used to specify a constraint on a generic parameter, but it doesn't mean that a generic argument has to nominally implement the interface. It just has to have the right structure.

     

  • @danielearwicker: Don't interfaces exist to validate their proper signature in implementations?

    What's a point in occasional implementation of an interface by matching it's signature? Did I actually want to implement the interface, or I just get a "lucky" strike? What happen if I rename/refactor my method? Will somebody tell me that I break an interface?

  • HuangxfHuangxf

    Actually, the programmers whose major are object oriented languages like C++, Java etc. do not like Javascript very much. Because it's too hard to write it in OO way and it's also very hard to debug. But they have to use Javascript because it's widely spread in Web applications and almost become a standard in front side programming.
    If Microsoft could provide a language which like this video told. I think it's good. More OO style, more easy to control and debug. I don't doubt Microsoft could make this happen. But I really need more time to confirm this new language could become popular in this industry.
    By the way, Google also released a new language called Dart. It also aim to replace Javacript.
    What is going to happen finally? We'll see

  • Andrew Steitzacsteitz Andrew Steitz

    I am convinced that some people would complain if you gave them a certified check (i.e. it won't bounce) for $1 million instead of giving them cash because that means they have to go to the bank to cash it.  I'm not saying there is anything wrong with dart or coffeescript but I have never bothered using them because I don't want to HAVE TO learn yet another syntax.  With TypeScript you can use POJ (plain ole javascript) and the environment will just point out potential gotchas.  As you feel the need and comfort level, you can introduce TypeScript specific constructs which create less error prone javascript than manually creating it.  In other words, it makes it harder to shoot yourself in the foot but if you insist (i.e. type straight javascript with hidden gotchas), it will let you.  I'll take that any day over having to learn a whole new syntax (dart and coffeescript.)  BTW, I am NOT an M$ "fan."  I think the DOJ should have ripped them to shreds for the monopolistic practices they used in the 90s to get the market dominance they have.  However, I am also not stubborn enough to say something is bad or a waste of resources just because it comes from Microsoft.

  • Greg CowinGreg Cowin

    My Top 10 reasons why TypeScript will be widely adopted: http://www.pursuitofgreatdesign.com/2012/10/top-10-reasons-why-typescript-will-be.html

  • @jonathansampson: I completely agree and I was going to post the same comment. Javascript does have a notion of private properties by using closures, and your sample demonstrated it. The fact that Anders even said "there is no notion of private properties" really made me *facepalm* because he's leading this whole thing as a supposed language guru.

    Also, C# "buries" property getters and setters in the CLR by hiding actual methods named get_MyProperty() and set_MyProperty(..); theoretically, this could be used to support private field access via public access "properties" on ECMAScript 3 clients.

    Perhaps since this project is open sourced you can bring this up in the discussion forum and/or introduce an evil fork of righteousness. Tongue Out

  • THANK YOU for not using "that" for "this"! I hate the semantic of "that"! "_this" (underscore suggests a scoped fieldname) is sooo much more appropriate.

  • The example starting at 17:00 says:

    Imagine that you have a 200 lines object in the return statement. If you mistype or make an error, JS tells you nothing about it, so you have to stare at the 200 lines of code to find the error. TS will help you find error.

    Yeah, but how? When in the example "add" is mistyped to "addx", the whole return statement (only 3 lines in this case) was underlined indicating an error, not just the specific line containing an error.

    Anyway, TS looks great, I'll definitely try it!

  • I was going to add my comments to this list, but I believe that other have sufficiently addressed the concerns and questions raised here. 

    I find it interesting that persons are lashing out at Anders and how MS are are spending their time and pointing out that there are efforts like Dart and CoffeeScript that are suitable ... well, if you read Mary Joe's article, you'd realize that this isn't really Anders' project (http://www.zdnet.com/who-built-microsoft-typescript-and-why-7000005206/) and also, these guys are language designers, day in day out the think about creating better languages. 

    The way I see it is this ... Even Languages/tools like Dart, CoffeeScript and Script# were created because their creators saw deficiencies in the JavaScript language ans sought out to help make developers more productive and their application less error prone. 

    Statically typing and type inferencing  allow for design time verification have clear advantages ... all developers know this. It seems that TypeScript set out to help bring these advantages to developers *today8 while still doing a number of other things correctly ...

    1. Compiling to existing JavaScript - No new runtime needed, plays well with everything that exists today.

    2. They stuck to proposed EcmaScript recommendations so they're sticking to recommendations of a *standard*. You get the best of both worlds .. existing runtime support with future/better language capability* while also ensuring that the typescript code you write today may in fact become the javaScript of tomorrow.

    3. They've Open Sourced the thing .. use it, change it, contribute ... whatever you like. 

    4. They've added awesome tooling support to existing tools like VS that compiles on the fly in the background for users

    The Dart language is not ratified as a standard , but it does compile to JavaScript. It's also pretty cool that on the server, there is a DART specific VM. Dart also seems to vary lexically from javaScript though, which may not be that enticing to existing javaScript devs.

    I'm really happy with what I see so far from TypeScrip. I'm going to continue to use it, get to team to use it and benefit as much as we can the additional productivity that we get from the tools.

  • JohnJohn

    Invest in Silverlight!

  • gcowingcowin

    My top 10 reasons why TypeScript will be widely adopted: http://www.pursuitofgreatdesign.com/2012/10/top-10-reasons-why-typescript-will-be.html

  • I created this boilerplate app template on github to make it easy to get started with TypeScript https://github.com/ntheile/TypeScript-Backbone-Require-Boilerplate

  • OlandeseOlandese

    It would be nice to be able to download the sources of the examples, like the battle app

  • OlandeseOlandese

    Already found it:

    http://www.typescriptlang.org/Samples/#Warship

    Great job!

  • @DaveWill2:Another opportunity should be

    TypeScript VStudio

    Javascript   Node.js

    JSON  Mongodb

    Pc Linux Max Tablet Iphone

     

  • Amazing!  Really amazing!

    This implementation is so well executed, I have a lot of confidence in Microsoft for this over Google.  The mental barrier to entry to this is so much lower than, say, Google Closure Compiler with this strong tool integration, attention to real-world concerns such as jQuery, etc interoperability, and a better syntax for type annotations.  Well done.

    And my mind is totally blown by the slickness of the Playground code editor.

  • BKienerBKiener

    Awesome! This is what I'm waiting for since the last 3 years. For me it brings JavaScript program-ing to a new level. Thanks to MS.

  • TypeScript User Manual:

    http://www.heronote.com/files/TypeScript.htm

  • Du JianyuRoyDu My daughter and I.

    @Derick Bailey:you are right...MS still do themself standard far away from others.It's too bad.

     

  • Du JianyuRoyDu My daughter and I.

    +1 to what Scott Koon said. This is as bad, or worse, than Dart.

    It would seem that Anders hates languages that aren't statically typed. So I'm not surprised that he's trying to build something on top of JavaScript to make himself comfortable, after having been given the direction of building JavaScript tooling. I'm just very, very sad that Microsoft is still paying him to ruin languages for the sake of tools, when the rest of the world is embracing the ideas of dynamic languages and providing tooling for them - including Microsoft! Visual Studio 2012 has some of the best support for JavaScript I've seen in an IDE, JetBrains builds at least 2 or 3 IDEs that provide great support and tooling, and even Eclipse has good JavScript tooling and support. But Anders claims that you need static typing to get tooling, so he's given free rain to ruin the language and build tooling for that instead? It's really, really sad.

    The only thing he seems to have done right, in this case, is open source.

    the right thing is just what other support it.but the ts have to compile in windows platform.

  • Du JianyuRoyDu My daughter and I.

    This is GREAT!!!!!!

    Now I can start using javascript. I have tried JS before, didn't like the experience of waiting till runtime to fix common errors.

    I am a Windows developer, I don't care about open source or such nonsense. Just give me a well documented, productive development/debugging experience.

    The open source guys can stay with coffeescript, teascript, dart or whatever, Windows developers may not care about those (at least I don't).

    if not open source,who will give a better similar tools.

     

  • Du JianyuRoyDu My daughter and I.

    Another leaky abstraction, why not? : )

    CLIENT=> TYPESCRIPT => JAVASCRIPT => JSON => C# SERVICE/BLL/DAL => SQL

    Let's keep adding layers to that cake.. hmm hmmm hmm
    smells like complexity + money

    you are right...

     

  • sequoiarsequoiar

    static type checking is useful to find coding typo. But, in mean time, we are always going to use JavaScript's dynamic type mechanism.

  • Claude BerubeClaude Berube

    Looks very promising. Some king of CoffeeScript++ bringing real value to scripting not just hype. TypeScript is already compatible with with Node and NoSQL some of the major trends in the industry. Thumbs up on this one.

  • Anders is brilliant!  I love it.  I'll definitely use TypeScript.  That being said... all you other negative cry-babies, TypeScript "HELPS" you. Unless you desire to spend more time debugging your awfully structured JS.  I'd bet most of you cry-babies are frontend developers and DO NOT appreciate type safety because you're too ignorant to understand how it can make your life easier.

    Cheers TypeScript and thank you MS!

  • MansynMansyn

    JS is only difficult to debug if you refuse to use anything but IE. Chrome is amazing at it.

    Hey DART and CoffeeScript are really on to something, lets do our version of them and pretend like we invented it.

  • I've been doing a lot of work with javascript recently and it's really hard when you have a lot of code. Javascript needs tools like this if it's to go beyond being a web site helper. TypeScript is C++ to javascript's C. There are many similarities. Early C++ compliers were preprocessors that output C. The main problem with CoffeeScript and the like, is that you write CoffeeScript but debug javascript. The big step is being able to debug in the language you wrote the application in and that's when it moves into mainstream development. TypeScript isn't there yet but I bet it won't be long.

    If you like coding in C then great but if all we had was C then building today's apps would be a monumental task. I for one think this is just the first step on the road and getting the likes of Microsoft involved must be good.

  • Good stuff, very interesting.

  • RAFRAF

    I'm mad as Hell and I'm sick of it all!

    @Microsoft, @Sun, @Oracle, @IBM, @AnyOtherITCompany & @SuperTalentedHighIQHobbyProgrammers out there:

    STOP IT!
    NOW!
    Don't throw another WhatEverScript on the market!

    All your products: Dart, CoffeScript, Typescript, BlahBlahScript.... based-on/compiled-to/replaced by JavaScript is only a workaround and an avocation for everyone!

    The main problems are:

    1. the big holes in JavaScript: JS cannot solve the problems of our time, because it was invented in the 90's for the problems of 90's (childhood of WWW)!

    2. Missing cooperation between big companies, because every one of them wants to dominate the market with his own browser!

    3. Missing "a clear word of action" neither by the US nor by EU governments, to put the Browser-Inventors under pressure. So all browsers would (at least in the US or EU, or even both) be compatible in scripting-engine.

    4. The "holy grale" of backward-compatibillity! Why could not they just also redesign the JS-language and engine with the new HTML-5 specifications? All at once.

    Sometimes something must die, so a new and better one can born.

    Regards!

  • Great product! Good work team!

    Unfortunately the quality level of the comments for this presentation makes me very sad.

    Some guys at Microsoft are trying to make your life easier and to give you the needed free time to go home to your family and play with your kids instead of spending hours at work to write JS code and you are not grateful – worst, you despite them.

    No problem my dears, spend your life in front of PC and ignore your child and family. Have a long life like prisoners in a small room writing tone of code lines!!!

    I will use any tool that will give me 1 free hour to live my life.

  • This is a brilliant tool especially if you are from the OO, type safe world as many of us are. Now these is nothing wrong with pure JS as we have produced some impressive products with it. My latest project was working on a video player where the UI is entirely in pure JS. This effort was made much easier with use of the Module Pattern, RequireJS and Underscore. The point is that JS is a language that was developed in 1994 in 10 days. Good grief Smalltalk took 9 years!  I am sure Typescript development effort is measured in person years. JS  languished for years but in the last 2-3 we seen a remarkable steps forward in the tooling. This is what is really helping as so much time is wasted in JS with things like typos.

    Anders is one of the great minds in this business and I applaud his efforts here. I really like the integration with Visual Studio including Express. It appears that Anders will evolve this product along industry standards and that is critical.

    Like everything this is not a solution for all but for one who has been in the trenches with JS I embrace a tool like this that can help in so many ways.

    I also feel is too bad that people cannot share opinions in a professional manner as I truely believe they do not realize that it diminishes the point they are trying to make.

     

  • This is cool but honestly it seems like a copy of Google's DART.. Why can't (if this is Open Source anyway) Microsoft get together with Google on stuff like this (I ask this of both sides). It would do the community a whole heck of a lot of good if both companies are indeed committed to web standards.

Remove this comment

Remove this thread

close

Conversation Locked

This conversation has been locked by the site admins. No new comments can be made.