Hacker News new | ask | show | jobs
Kicking TypeScript’s Tires (blogs.adobe.com)
12 points by mariusc 4991 days ago
2 comments

“Sadly, Adobe has missed to provide a language specification for ActionScript and for that reason never really made the list of what I consider well-designed programming languages.”

I develop an ActionScript-to-JavaScript compiler. The lack of a spec wouldn’t be so bad if the reference implementation (Flex/ASC) were any good. There are innumerably many bad things about ActionScript-the-implementation that make ActionScript-the-language seem a lot worse than it is. Maybe I’ll blog about them sometime. Even at that, I’d rather write a web application in AS3 than in TypeScript. And soon I’ll be able to. :)

“I am in particular interested in Array, because Arrays turn everything you put into them into untyped Objects. In ActionScript Vectors are therefore a better choice.”

ActionScript “Vector.<T>” is not statically checked—by Adobe’s compiler, anyway. Inserting an element of the wrong type fails at runtime with an abstruse error message.

The problem with these languages really is their dynamic typing; type annotations don’t buy you anything if you can’t make semantics-preserving transformations because someone can (and will) use dynamic features. TypeScript had a chance to be innovative, but I suppose Microsoft figured that static typing just doesn’t market well to JavaScript developers.

Where I'm at as a JS developer, I'm looking for three things when I start a new project:

1) A object oriented system with "compiler" - currently I use the Google Closure Compiler and JsDoc style data annotations. It's basically a robust linter. For real OO, I use Resig's class implementation, but I'm not aware of any tools that support it for linting or "compiling". TypeScript is a potential breath of fresh air.

2) Something to cut down the boilerplate required to bind JS objects to the DOM. I've read most of the angular docs, but haven't had the chance to do a project using it yet. It will be interesting to see how long before there is a TypeScript import file for angular. I'm not holding my breath because I foresee competing ecosystems emerging.

3) A browser homogenization library. This isn't a big deal, just use jQuery or limit support for legacy browsers and use jQlite.