@bterlson
Brian Terlson works at Microsoft on the things that he loves most: JavaScript, open source, and standards. Brian helps design the ECMAScript language and represents Microsoft at Ecma's TC39 meetings and has been the editor of the ECMAScript standard since ES2016. Brian also works on TypeScript and helps build the open-source JavaScript engine ChakraCore.
Nothing here yet.
No blogs yet.
JS For Life!! Proposals follow this process document , which has all the entrance and exit criteria for each stage along the way. We accept basically any proposal from a delegate as Stage 0. The requirements get progressively steeper as you move along the process. I'm usually not a fan of opaque patterns for saving keystrokes. I agree with you that Math.floor gives better readability here. I think the only shortcut I allow is !! for, essentially, ToBoolean.
I'm more excited about what I can't see than what I can! But one thing that I've been thinking about lately is how Machine Learning can be applied to TypeScript, both in terms of using ML to gather information and inform TypeScript's design, and perhaps TypeScript itself using ML to infer complex things about your programs or carry out complex context-dependent tasks like refactorings or what-have-you. I feel like agent-assisted programming is going to be a thing in the future.
I don't think I am prescriptive about this. Some people learn better by understanding the foundation (say, closures and prototypes) and then moving up. Others learn better by understanding the high level (classes) and dig down when needed. I'm not sure one way is better than the other personally!
I mentioned a bit of it here . I've been a programmer for so long I don't really exactly recall when I started! But, to continue that narrative, my senior year of high school was probably when my career technically started. I got a job building a simple ASP website for a small manufacturing education company. This job put me through college, along with another web dev job for a small human resources consultancy. Eventually both projects moved from classic ASP to Rails. After graduating with a degree in CSci from the University of Minnesota, I did a startup thing for a while. Built a really cool app to make it easy for HR departments to survey compensation and benefits practices from their peer companies while complying with federal antitrust guidelines. It was a lot of fun and I learned a lot, but it was failing and Microsoft made me an offer to come work for them on the Test team for Chakra and, well, here I am almost 8 years later :)
I don't focus much on performance, but by and large, both engines are extremely fast for any real world use case (i.e. that exists on the Internet). I even help make sure that's the case by reporting performance issues to v8 when I find them! I'm not sure there's a strong performance reason to use one over the other, especially now that V8 has an interpreter too.
I would choose TypeScript over CoffeeScript for a lot of reasons! As someone who did professional Ruby development for a number of years, I have a soft spot for CoffeeScript, but I wouldn't use it today personally. First, TypeScript offers a type system which is extremely useful especially for editor tooling. Second, TypeScript is built on JavaScript so it's the same syntax with the exception of the extensions for type annotations (which are optional anyway with TypeScript's --checkJs flag) and is easier to learn. Third, many of the features which made CoffeeScript great have been incorporated into ECMAScript and therefore TypeScript itself, so many of the reasons to use CoffeeScript are no longer true. I've answered previously about what's coming up. In general you can always keep tabs on the proposals repo - the higher the stage, the more likely it'll be in the next version!
I like Lodash and Underscore. Very useful libraries. I'm not sure how Lodash functions and native functions compare generally speaking other than the obviously different API. If ES.Next refers to ES9 (ES2018), then I'd say, hopefully: Async generators, public and private fields for classes, rest/spread for properties, and if we're lucky, a whole slew of new RegExp features (look-behinds, named capture groups, Unicode character classes, dot-all) that will make the RegExp writers among us super happy I think. I'm also really excited about BigInts which is a new number type that can only hold integers but can have any precision you want (to see why this is important, try 9007199254740992 + 1 and see what you get).
You can see some of our long term plans on the GitHub roadmap . We're continuing to invest in WebAssembly, with lots of work to be done there. We're continuing to improve performance across real world scenarios and implementing the latest and greatest language features coming out of TC39 as well. But this is mostly just our DNA - see the roadmap for more details :)