LGTM! Smells like Redux (in a good way). But then ultimately at the root you probably want the event to update your “model”, and then that leads to an update of the “view”. This is the part where signals can be useful.
I think there is room for improvement in how we explain this. The problems aren’t really visible in this small sample and comes up more for bigger things. PRs welcome.
> what do you do to retain talent? Wouldn't senior employees look elsewhere for better pay?
Giving everyone a true sense of co-ownership is great for retention. Plus interesting, meaningful work, good pay, etc. Why would you need to know that you make more than your coworkers?
tl;dr we implemented it, it works, but we are not shipping it because we believe it would hurt developers to lose some stack frames from Error.stack in existing sites, among other issues.
"The V8 team is already working to bring upcoming features such as async / await keywords, Object.prototype.values() / Object.prototype.entries(), String.prototype.padStart() / String.prototype.padEnd() and RegExp lookbehind to the runtime. "
I'm working on async/await in V8, together with Caitlin Potter. Browser support is in progress for Firefox and Safari as well. It didn't make the cut for ES2016, but it is at Stage 3 at TC39. I'm optimistic that it'll get into the main draft specification at the next TC39 meeting after we have a second spec-compliant browser implementation, which doesn't seem very far off.
Sorry for the inaccurate shorthand; maybe that should read that SpiderMonkey supports it. Eric Faust of SpiderMonkey is a co-champion of the proposal, and spoke against implicit PTC at the March 2016 TC39 meeting. It's hard to get much stronger in support of a proposal than being a champion, and Eric works for Mozilla. From that discussion, it also sounded like there was support from the Mozilla devtools team as well.
EDIT: How do you like the new wording "For these reasons, the V8 team strongly support denoting proper tail calls by special syntax. There is a pending TC39 proposal called syntactic tail calls to specify this behavior, co-championed by committee members from Mozilla and Microsoft." ?
Not sure what you mean by virtual DOM. From the WebAssembly FAQ:
"Is WebAssembly trying to replace JavaScript?
No! WebAssembly is designed to be a complement to, not replacement of, JavaScript (JS). While WebAssembly will, over time, allow many languages to be compiled to the Web, JS has an incredible amount of momentum and will remain the single, privileged (as described above) dynamic language of the Web. "
ES2016 is proposed to be based on Ecmarkup, a more modern system which will let us collaborate on Github more easily, rather than a canonical MS Word document on the editor's computer.
What approval means here is that it was ratified by the ECMA General Assembly. The move by TC-39 to send ECMAScript 2015 to the GA was voted on at the last TC-39 meeting around a month ago.
For background on the user-defined operators and literals idea for ES7, see this: http://www.slideshare.net/BrendanEich/value-objects (it took me a little while to find; it hasn't been as prominent in recent discussions as the other items). I'm excited to see all the progress Javascript is making!
6% is nothing compared to the raises or stocks or other random bonuses that come with working for a big tech company for a while and doing well. It seems really short-sighted to compare details about initial offers at such a minute level. Plus, Google offers other nice ways of evading taxes, like a good 401k plan.
When I got out of school 4 years ago, people were already making the same arguments. While Google isn't perfect, I can't imagine a place I'd rather work, where I can really dig into technical details of things while having freedom to set my agenda in many ways, very smart coworkers and predictably high compensation. I don't think any of those things have changed in 4 years.
Talking about top CS schools/going to Stanford is really irrelevant. I went to Carleton College, which has a nice little CS department but not really well-known, and got a liberal arts education. Because I did some open-source work and maybe because of some academic projects, I was able to get lots of interviews and offers, all in the same range as people are discussing today. All Stanford does at a company like Google is get your foot in the door--small, poorly run startups may hire on that basis, but that's it.
My one piece of advice for people who want to get into the tech industry: Choose one open-source project and contribute to it over a long period of time (ideally starting in high school, but never too late). The short time span of college courses and lack of large projects (a semester is not long) means that you can't really develop the skills that you need to be effective by that alone. Large, open-source projects give you real experience in structuring code to be maintainable, working with others and receiving feedback, and understanding and changing existing code that other people wrote. It might also get you some nice internal references.
I agree, that's a great book to start with. When I started out programming the Linux kernel, I thought I had to understand everything and I hated the book for not going into detail on how things worked. But really, I just had to start changing code and running it, and I became a Linux kernel programmer. Now I see that I just needed to know the basic roadmap, and the rest comes from reading code and experimentation. It doesn't matter much if the book is a little outdated; the core concepts stay in place for a while. Another book I'd recommend starting with is The Linux Programming Interface. You can write programs for a while without getting to the kernel/userspace boundary, but this is essential to understand if you're going to write user-facing code (e.g., a driver).
It's just like the article said--just a big, annoying to debug C program. If you understand pointers, you can learn how to program the Linux kernel. Programming in the Linux kernel has been a really fun learning experience for me. It's nice, if intimidating, how you can just do everything--there are no hard abstraction boundaries, you can read all the source and call into any part of the kernel without going through hoops.
I've developed the Linux kernel with two machines, a development machine and a headless machine that I'm ssh'ing into (actually, a bunch of those--makes testing go faster). VMs aren't really an option for device drivers, but if you run your code on your development machine, you waste a lot of time.