Well, I used AS3 and Flex while it occupied a useful niche and at the time it was SO much better than the web platform.
BUT, AS3 was not a great language. The VM was pretty slow (that GC! I'm sure you game devs optimized the hell out of it with object pools and all, but still, modern JS VMs could run circles around Flash's), the static typing was extremely limited: you could only type "Function", not the actual arg and return value types; type inference was non existant, Vector was invariant, etc. Let's face it, Adobe wasn't the best at language design.
Typescript is today so much better than AS3 ever was.
When Typescript came, I was like. Yay! Someone made JS become AS3 like. That's when I seriously got into javascript. Flash could do some amazing things back in the day, They had GPU accelerated graphics, microphone, image manipulation, video, and a whole host of other things that HTML didn't have. I think Flash inspired browsers to do better.
You should look at C# in .NET core as well. C# was designed by the same guy as Typescript and Delphi, the famous language designer Anders Hejlsberg.
His languages are the most logical and elegant I have used, all truly pleasant to work with. Building a decent language that compiles down so cleanly to Javascript is a minor miracle.
I tried TypeScript yesterday and while I really love the language, the tooling was wayyyy too complicated and confusing. All I wanted was to make a dead simple hello-world node app that let me write it in VS Code, and recompile the TS to JS every time I saved. Suddenly I had to learn about tsconfig.json, had to install nodemon and have a process running in the background that I'm sure to forget to kill later, and I have no idea how either tsc or ts-node plays into any of this... in the end I just decided to go with ES2016 and be done with it. Too bad, because I really like having type information available, especially for catching bugs. I enabled VS's "pretend JS is TS" setting so it catches some errors, but it's pretty hacky and not thorough, and I don't get to specify types in my program. Really wish I could get a dead simple TS app figured out.
Hey this is pretty great, thanks! Dunno why I didn't consider it to be that simple. But it really is working. Well, along with `npm install @types/node --save` which I found somewhere else, so it quits complaining about 'require' not being found.
Glad it worked! I think it's a failure by the TypeScript team to not make this flow more front and center.
You are right, I forgot about installing typings. Instead of require you should use ES6 "import" (which TS compiles to require anyway) to get more type checking. But when you do that you'll see more of my missed step, which is `npm install @types/XYZ` for each XYZ package you use.
As soon as you start introducing a separate build tool (like gulp or whatever) things get super messy super fast but not for any interesting reason. Using `tsc --watch` also means it does caching across builds so it's faster than using gulp unless you're careful to configure it.
This advice is gold, thanks. But what I'm finding is that it's too painful to create a TypeScript project that has both a front-end and a back-end by incrementally building it like this, unless the front-end is just a set of static files with no compilation steps.
On that note, I wonder if we'll ever see type="text/typescript" in the browser due to how much traction it's gaining so quickly, and considering it's basically always ESNext but with types.
To say nothing of their ridiculous security sandbox design... I remember trying to make banner ads with dynamic price data and between all the various detached hosting abstractions and ActionScript's security requirements (in a time before this kind of setup was common) it was a hell of a project.
I'm glad that someone else said that. I really hated AS3 as a language and was really happy that the ECMAScript spec didn't take their ideas. Typescript does everything that AS3 could do, but does it in a way that is much more friendly to the JavaScript way.
BUT, AS3 was not a great language. The VM was pretty slow (that GC! I'm sure you game devs optimized the hell out of it with object pools and all, but still, modern JS VMs could run circles around Flash's), the static typing was extremely limited: you could only type "Function", not the actual arg and return value types; type inference was non existant, Vector was invariant, etc. Let's face it, Adobe wasn't the best at language design. Typescript is today so much better than AS3 ever was.