I was really slow on picking up Babel too. But I've been using Babel 5.x in production for six months without errors - main things were docs that referred to old versions of babel and babelify.
I needed to plug this in the package.json of my private modules:
Node.js is moving pretty fast at this point, after the io.js merger. I can understand using Babel to provide a unified, modern language API for browser applications, as there are so few guarantees you can make about a client's browser, but there already is a single API target for server javascript for any given version of node. Unlike browser JS, you can guarantee that the server development environment and the production environment will execute on the same runtime. Meanwhile, I don't trust that every Babel implementation of an unstable language feature will match the final official implementation. If it did, someone would just merge babel's shims into node and call it a day.
To some extent, yes. In some of my projects I decided to avoid using Babel and just limit myself to Node's (new) features. The advantages of not having a build step for the backend js is sometimes worth it.
However, there are so many cases where Babel is useful, or turns out to be 'necessary', that I'm considering just using Babel by default again.
Some examples:
- JSX for using React in the back-end (almost a default for me nowadays)
- async/await for async-heavy code
- a miscellaneous few still-unsupported ES2015 features that occasionally are sorely missed
And finally, it's happing more and more regularly that I end up wanting to use some server-side modules on the client-side, in which case I need to set up Babel anyways.
That said, if I'm pretty sure I'm not going to need Babel, I still try to leave it out. It adds complexity that I'd rather avoid.
"The Node.js Foundation would be wise to migrate to Chakra"
Actually it would be extremely unwise, and here's why:
"In order to use Microsoft's fork, you need a Windows 10 machine with the November update"
When Chakra is open-source and cross-platform, its differentiating "killer" features will be merged into node's V8.
SpiderMonkey has been beating V8 in ES2015 adoption and V8s own benchmarks, but even that wasn't enough for it to become the new node.js runtime. We have yet to see if what Microsoft brings to the table is more convincing.
Google doesn't care about the server-side use case for V8. Microsoft, on the other hand, has some skin in the game, as they are pushing Node on their Azure platform. While I wouldn't want to see Node controlled by Microsoft (or any single vendor for that matter), it's not outside the realm of possibility that Node will be better off using (open source) ChakraCore over V8.
> When Chakra is open-source and cross-platform, its differentiating "killer" features will be merged into node's V8.
You don't just merge features between JS engines - there may be one or two big wins that others will copy, but they're not like, say, C compilers, where different compilers by and large produce fairly similar machine code, because for the most part the language semantics correspond reasonably directly to machine semantics and the problems involved are well-studied, so the machine code is pretty close to optimal. JS has higher level semantics that admit varying implementation strategies - for example, all major engines use tagged pointers, but they all do it somewhat differently (e.g. V8 does not use NaN-boxing but others do); or on a macro level, those semantics require a garbage collector, which has a ton of implementation choices. Because JS engines are JITs, they perform optimizations informed by runtime information, which are more flexible but for that reason far more prone to guesswork, e.g. about what information to record, what kinds of assumptions to make about types mostly being static in practice, etc. And all JS engines have to balance runtime against compilation time, even to some extent for very hot loops, so they tend to have relatively simple optimization pipelines that value pragmatism over being able to cover every possibility.
The result is a lot of idiosyncrasy and a large number of little decisions and strategies that together can be highly significant but are hard to just port from one engine to another.
Notably, perhaps as a result, there seems to be a trend to basically rewrite JS engines' JITs while keeping the same name. V8 did this with Crankshaft in 2010 and is in the process of doing it again with Turbofan (dunno whether it will ultimately replace Crankshaft or just complement it, but I wouldn't be surprised at the former, considering that there is currently a large amount of duplicated functionality between them). I know SpiderMonkey has done it too but not the details.
> SpiderMonkey has been beating V8 in ES2015 adoption and V8s own benchmarks, but even that wasn't enough for it to become the new node.js runtime. We have yet to see if what Microsoft brings to the table is more convincing.
citation needed. "V8's own benchmarks" would be Octane, so this, which seems to be about evenly split between V8 and SpiderMonkey in the lead:
Doing a wholesale replacement of the JS engine in node sounds like bad news for native npm modules. There's even another frontpage story right now about dealing with the native API breakage between various V8 versions in node.
While your right this neutral bindings layer that the Microsoft team is working on could alleviate some of that and hopefully make it so the interface on the C++ and JavaScript side are the same for module developers but the engines are completely pluggable.
That would be pretty cool if they can pull it off.
Nonsense on stilts, how did this even get on HN? "In order to use Microsoft's fork, you need a Windows 10 machine with the November update", really.
In response to the downvotes. The author is suggesting that "the Future" of a major open source web technology belongs with a notorious monopolist corporation that's known for lock-ins and other anti-competitive practices even to this day. Given their past behaviour, and given they haven't yet managed to get this to operate on a platform other than their own, calling it "the Future" is pretty silly and worthy of being mocked for the hyperbole. I wouldn't mock it if the headline was "Microsoft is making a play in the Node ecosystem". The two responses on Reddit have also been sceptical of this as well.[0][1] Any of the (4+) downvoters care to share your thoughts?
If you want to test out ES2015 features (incl. proxies) coming soon in V8, you can download Chrome Canary and turn on the Experimental JavaScript flag (under chrome://flags). With the flag enabled, Chrome reaches 91% percent on the Kangax table [0]. We're working hard to turn these features on by default as soon as possible.
I am a PM on the Chakra team. It is encouraging to see all the excitement after we announced at Node Interactive that we’ll be submitting a PR to enable Node to work with Chakra and bring the power of Node to new platforms including Windows 10 IoT Core. As we mentioned at that time, our goal is not to compete/replace but rather help Node and it’s ecosystem grow. ChakraCore is going open source in January w/ plans to go cross-plat being one of key things on our roadmap (more details on roadmap to come when we make the sources public). We’re also working on a patch to submit to Node mainline once ChakraCore sources are made public, which will help us and hopefully the Node technical committee establish a neutral binding layer that could eventually be used by more than one JS engine implementations to work with Node. As one could imagine, there’s definitely a lot of work ahead. LMK if you have questions, feedback etc.
It would be very interesting if you could share your team's challenges and insights in creating a Chakra shim that exactly mirrors v8's C++ API so that it's a drop in replacement for v8 for Node. Is it difficult to maintain the Chakra shim against an ever-changing v8 API?
So given your goal is "not to compete/replace but rather help Node" and you don't even have a clear crossplatform roadmap, although you have good intentions in that direction, would you say the author's claim that "the Future" of Node is in Microsoft's fork is something of a stretch?
I ask because I am getting downvoted for my other comment, but even you seem to be saying it's not what the blog author claims.
Not sure what gave you the impression of not having a clear roadmap. All I said was we'll disclose the full roadmap at the same time when we open up the sources. Once we open the sources and the roadmap at GitHub, we'd love to get feedback from the community to clarify or improve things further.
Well you said "more details on roadmap to come", that coming from the company that coined "embrace, extend and extinguish"[0] doesn't really mean all that much.
People say your company has changed, I hope it has, but I can't help but notice on a weekly basis that I can't print from my office because of your company, that there are constant problems with document formats everywhere because of your company and your email client is actively working against me, the user, all the time by trying to block simple things like cutting and pasting email addresses. Maybe those are all just legacies of the old Microsoft, but all the same there they are slapping me in the face every week.
Please ask pertinent questions esp. about Chakra, that is within Guvrav's control and domain.
Microsoft is outputting lot of Open Source into their github repos, so there is evidence of Microsoft's change of attitude towards open source, it started few years back and picked up with the change of guard.
I cited reasons I deal with every week that are reasons why I won't take the word of Microsoft at face value and you cite a blog that basically says some people inherited the MS hate without reference or personal experience. The HN responses to that blog when it was published are very instructive compared to the reaction today.[0]
I just checked and that condescending blog post hasn't enabled me to print from my office. You know what the IT guys told me? That I should run Microsoft Windows in a VM to be able to print. This is at a large Australian university. The operating system of one of the fastest supercomputers in the southern hemisphere, down the road, is Linux. I am writing software to run on that machine but but in my office I can't even print from Ubuntu. Seriously?
Microsoft is a corporation not a charity, the managers and directors have incentives to make a profit for the shareholders. Even without a track record, or the Department of Justice investigations and the numerous leaks we've seen, it's not like Microsoft should be trusted off the bat in the first place.
Additionally, beyond the things I've mentioned that I currently face, I've been programming since the early 1990s and I lived through the damage that Microsoft did. I didn't mindlessly inherit a distrust of Microsoft. I'm not that much younger than the guy who wrote that blog; I watched it all go down in realtime.
Returning to the point, when I see a Pied Piper blogger saying that Microsoft is "the Future" of some open source project that's ok. But when they haven't even got their implementation running on a non-Microsoft platform I think "maybe we should wait until they've got it running on at least one other platform before declaring anything is 'the Future'". Is that unreasonable? Maybe the blogger should have picked a less outrageous headline. And it is outrageous, it's got people on Reddit saying &yet have "jumped the shark"[1] and others saying "I thought &yet was smarter than this".[2] I am not even going that far, I am just saying they should lay off the hyperbole, given the history of Microsoft.
I'll be more direct at saying what the post can't say:
- Historically the V8 team simply did not care about node, and would introduce breaking changes that would come as a surprise to node core
- It's better now, and V8 folk are on one of the steering committees for node. Also Google Compute Engine team needs node to work so also brings in a real business case for the V8 team to care about node
Hey guys, It's great to see even more progress on Chakra since we last talked.
As a hardcore node dev I don't care for too much with engine x, y, z. As long as the community is given the keys from "dad". Adoption must be made part of the conversation, and we should have say over fixes, enhancements, and roadmap.
Seems like a lot but we saw the issues with Node pre-io and other products in tech when one voice is the majority or when a puppet board is put in place.
"We’ll likely see a new release of the spec every year"
I don't understand why the specification needs updating so often. Or is this a case of new features in Microsoft’s Chakra being side slipped into the specification by default. So that over time ECMAScript becomes Microsoft ECMAScript. This is how Suns JAVA became Microsoft's JAVA. Or even over time 'license' the spec back to Google.
It happend with Java. Microsoft created their own slightly improved Visual J++ and then Visual J#, and after Sun sued them and MS had to remove their proprietary MSJava from WindowsXP, they forked it with C# 1.0).
It happens with JavaScript. They tried to kill Netscape (Browser Wars) with their powerful but slightly incompatible JScript. Remember the IE 6 problems, it's the result. The XHR/AJAX came out of these era too.
It almost happend again with JavaScript. First they tried it with JavaScript 4 that never got mainstream (tried to added classes and XML syntax). Thanks god JavaScript 5 came along as lean barely changed succesor.
It happens again with JavaScript / ES6/7 and TypeScript. They lobbied to add "class" syntax and at the same time create an competiting language on top of ES6 (optionsl typing, like HACK does for PHP).
It happens with Node. The plan to release (we heard that often from MS, it my take a while...) their JavaScript engine and forked Node.
Please wake up, and learn from the past history of Microsoft. They are not saints and judge them by their past actions and also their recent Windows 10 forced phone home and forced update disasters, the expensive license changes, etc. I am certainly happy as long as the official Node will continue to run on V8 on all platforms.
Microsoft has done many shady things in its many years of existence. It's a big company with many tentacles and there have been plenty of dick moves, shoddy deals and intimidation.
However, qualifying every interest that MS has in tools or languages with the 3E scare is like crying wolf: people will simply stop listening to you and take you seriously.
History should not be ignored but people and companies change, especially if they want to stay relevant.
Last I heard, Java was still pretty popular on every platform and the scandalous birth of .Net has been a boon to everyone interested in programming for Windows. So much so that almost every aspect of .Net is getting open sourced and its cross-platform story is really shaping up to something decent.
Browser wars were in the 90s... how far back do we have to hate?
Netscape didn't deserve to down that way, but don't forget that the Netscape Navigator was not free. MS forced it free and made Netscape disappear in the process.
Good thing or bad thing? We can speculate on what could-have been but no-one is paying for their browser today and yet there are at least 5 or 6 good ones to choose from. We can also argue browsers may still be closed source today if Netscape had been profitable and if Netscape (the company) still had its way with the various standards that underpin the web.
MS was punished for their strong-arm tactics. Not punished in a particularly effective way, but it still cost them quite a bit and tarnished their reputation even further.
Javascript is a standard and as such all those people creating the standard represent their own interests. It happens on every single standard in the world and it's certainly not limited to those of our industry.
I don't like it, it's not always done in the interest of those implementing those standards, but I don't think singling-out MS is entirely fair, especially considering that they do have the right to participate since they still provide some of the most used browsers (even if it's by default).
TypeScript is good. It changes nothing to JavaScript, it's open source and there are plenty of people who use it to great advantage. I really don't understand what MS is supposed to do here? Nothing?
TypeScript is so good the Angular guys at Google have switched to it. Why? Because you can build lots of interesting tooling around it and have a whole classes of issues statically checked, something plain old JS doesn't really provide.
Lots of people have forked Node. The Node people have forked Node. It's Open Source, that's the nature of the game. It's good, Node will improve and if what MS does is rubbish then no-one will use it because no-one is forced to.
There is no reason for MS to invest in these technologies to see them fail (the extinguish part of 3E). MS is heavily invested in them and need them to work well on their platform and services because programmers of today use Open Source by default and expect a good experience.
There has been a huge shift in mentality at MS over the years. Open Source won, we should be happy that the majority of the web is built on it, even MS is aware of that.
It's not the nineties any more. Doesn't say we shouldn't be vigilant, but but not every decision out of MS is to be viewed with paranoid suspicions, there are lots of very great and very respectable folks who work there and take pride in what they do, we should give them a little credit.
And spectacularly backfired with Java. Java is at an all time high and ranks #1 in the TIOBE index at 20.97 (up 6% from 2014). C#, on the other hand, is at 4% - which is probably why they decided to open source it before it dropped even further. Even Python has surpassed C#. Moral of the story is that the days of Microsoft extinguishing anything are over.
?? First TIOBE index cannot be taken seriously. Second a hypothetical forth place isn't that bad, right? MS managed to fragment the community. And they actively try to fragment the JavaScript community with ES6 and TypeScript. And with their Visual Studio Code (based on Electron/Atom editor).
> Microsoft extinguishing anything are over
Sure with $100+ billion in cash it's over. Microsoft was far less evil company between 2005 and 2011 than before or after that timeframe. Sorry for waking you up from your dream.
I think TIOBE is a good indication and so are the number of GitHub projects that exist and are being created with these languages. Also, I keep hearing this talk about a new Microsoft. Where's their support for the #1 language in the world in their IDE?
As for Microsoft's cash reserves, I heard it was close to 90 Billion with over 90% of that overseas. Google, on the other hand, has about 64 Billion and only 60% overseas.
One thing I learned in my 20+ years in this field is that relying on anything from Microsoft leads to inevitable regret down the road as they cannot restrain themselves from turning every thing they do into a means of vendor lock-in.
50 comments
[ 2.8 ms ] story [ 825 ms ] threadI do not care if I am a grandpa for using 2014 tools - but I am not pushing ahead until things calm the fuck down.
I needed to plug this in the package.json of my private modules:
However, there are so many cases where Babel is useful, or turns out to be 'necessary', that I'm considering just using Babel by default again.
Some examples:
And finally, it's happing more and more regularly that I end up wanting to use some server-side modules on the client-side, in which case I need to set up Babel anyways.That said, if I'm pretty sure I'm not going to need Babel, I still try to leave it out. It adds complexity that I'd rather avoid.
Actually it would be extremely unwise, and here's why:
"In order to use Microsoft's fork, you need a Windows 10 machine with the November update"
When Chakra is open-source and cross-platform, its differentiating "killer" features will be merged into node's V8.
SpiderMonkey has been beating V8 in ES2015 adoption and V8s own benchmarks, but even that wasn't enough for it to become the new node.js runtime. We have yet to see if what Microsoft brings to the table is more convincing.
That does take the wind out of the post's sails a bit.
"...we are committed to bringing ChakraCore to other platforms in the future."
You don't just merge features between JS engines - there may be one or two big wins that others will copy, but they're not like, say, C compilers, where different compilers by and large produce fairly similar machine code, because for the most part the language semantics correspond reasonably directly to machine semantics and the problems involved are well-studied, so the machine code is pretty close to optimal. JS has higher level semantics that admit varying implementation strategies - for example, all major engines use tagged pointers, but they all do it somewhat differently (e.g. V8 does not use NaN-boxing but others do); or on a macro level, those semantics require a garbage collector, which has a ton of implementation choices. Because JS engines are JITs, they perform optimizations informed by runtime information, which are more flexible but for that reason far more prone to guesswork, e.g. about what information to record, what kinds of assumptions to make about types mostly being static in practice, etc. And all JS engines have to balance runtime against compilation time, even to some extent for very hot loops, so they tend to have relatively simple optimization pipelines that value pragmatism over being able to cover every possibility.
The result is a lot of idiosyncrasy and a large number of little decisions and strategies that together can be highly significant but are hard to just port from one engine to another.
Notably, perhaps as a result, there seems to be a trend to basically rewrite JS engines' JITs while keeping the same name. V8 did this with Crankshaft in 2010 and is in the process of doing it again with Turbofan (dunno whether it will ultimately replace Crankshaft or just complement it, but I wouldn't be surprised at the former, considering that there is currently a large amount of duplicated functionality between them). I know SpiderMonkey has done it too but not the details.
> SpiderMonkey has been beating V8 in ES2015 adoption and V8s own benchmarks, but even that wasn't enough for it to become the new node.js runtime. We have yet to see if what Microsoft brings to the table is more convincing.
citation needed. "V8's own benchmarks" would be Octane, so this, which seems to be about evenly split between V8 and SpiderMonkey in the lead:
http://arewefastyet.com/#machine=28&view=breakdown&suite=oct...
That would be pretty cool if they can pull it off.
Thank you, but no thank you. Did MS sponsored this post?
[1] https://news.ycombinator.com/item?id=10825107
In response to the downvotes. The author is suggesting that "the Future" of a major open source web technology belongs with a notorious monopolist corporation that's known for lock-ins and other anti-competitive practices even to this day. Given their past behaviour, and given they haven't yet managed to get this to operate on a platform other than their own, calling it "the Future" is pretty silly and worthy of being mocked for the hyperbole. I wouldn't mock it if the headline was "Microsoft is making a play in the Node ecosystem". The two responses on Reddit have also been sceptical of this as well.[0][1] Any of the (4+) downvoters care to share your thoughts?
[0] https://www.reddit.com/r/node/comments/3z303d/the_future_of_... [1] https://www.reddit.com/r/javascript/comments/3z302e/the_futu...
[0]: https://kangax.github.io/compat-table/es6/
(Disclaimer: I'm a PM on the V8 team)
Looking forward to the neutral binding layer for different javascript engines for Node.
Ideally for a given platform a native Node module should be ABI compatible with v8 Node or Chakra node - without the need for recompilation.
I ask because I am getting downvoted for my other comment, but even you seem to be saying it's not what the blog author claims.
People say your company has changed, I hope it has, but I can't help but notice on a weekly basis that I can't print from my office because of your company, that there are constant problems with document formats everywhere because of your company and your email client is actively working against me, the user, all the time by trying to block simple things like cutting and pasting email addresses. Maybe those are all just legacies of the old Microsoft, but all the same there they are slapping me in the face every week.
[0] https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish
Microsoft is outputting lot of Open Source into their github repos, so there is evidence of Microsoft's change of attitude towards open source, it started few years back and picked up with the change of guard.
Here is some food for your thought: http://www.hanselman.com/blog/MicrosoftKilledMyPappy.aspx
I just checked and that condescending blog post hasn't enabled me to print from my office. You know what the IT guys told me? That I should run Microsoft Windows in a VM to be able to print. This is at a large Australian university. The operating system of one of the fastest supercomputers in the southern hemisphere, down the road, is Linux. I am writing software to run on that machine but but in my office I can't even print from Ubuntu. Seriously?
Microsoft is a corporation not a charity, the managers and directors have incentives to make a profit for the shareholders. Even without a track record, or the Department of Justice investigations and the numerous leaks we've seen, it's not like Microsoft should be trusted off the bat in the first place.
Additionally, beyond the things I've mentioned that I currently face, I've been programming since the early 1990s and I lived through the damage that Microsoft did. I didn't mindlessly inherit a distrust of Microsoft. I'm not that much younger than the guy who wrote that blog; I watched it all go down in realtime.
Returning to the point, when I see a Pied Piper blogger saying that Microsoft is "the Future" of some open source project that's ok. But when they haven't even got their implementation running on a non-Microsoft platform I think "maybe we should wait until they've got it running on at least one other platform before declaring anything is 'the Future'". Is that unreasonable? Maybe the blogger should have picked a less outrageous headline. And it is outrageous, it's got people on Reddit saying &yet have "jumped the shark"[1] and others saying "I thought &yet was smarter than this".[2] I am not even going that far, I am just saying they should lay off the hyperbole, given the history of Microsoft.
[0]https://news.ycombinator.com/item?id=7281283 [1]https://www.reddit.com/r/javascript/comments/3z302e/the_futu... [2]https://www.reddit.com/r/node/comments/3z303d/the_future_of_...
- Historically the V8 team simply did not care about node, and would introduce breaking changes that would come as a surprise to node core
- It's better now, and V8 folk are on one of the steering committees for node. Also Google Compute Engine team needs node to work so also brings in a real business case for the V8 team to care about node
- Chakra is also a pretty good contingency plan.
As a hardcore node dev I don't care for too much with engine x, y, z. As long as the community is given the keys from "dad". Adoption must be made part of the conversation, and we should have say over fixes, enhancements, and roadmap.
Seems like a lot but we saw the issues with Node pre-io and other products in tech when one voice is the majority or when a puppet board is put in place.
It clearly says it goes open source and multi platform this month.
I don't understand why the specification needs updating so often. Or is this a case of new features in Microsoft’s Chakra being side slipped into the specification by default. So that over time ECMAScript becomes Microsoft ECMAScript. This is how Suns JAVA became Microsoft's JAVA. Or even over time 'license' the spec back to Google.
http://edge-op.org/iowa/www.iowaconsumercase.org/011607/2000...
People should read "Embrace, extend and extinguish": https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish
It happend with Java. Microsoft created their own slightly improved Visual J++ and then Visual J#, and after Sun sued them and MS had to remove their proprietary MSJava from WindowsXP, they forked it with C# 1.0).
It happens with JavaScript. They tried to kill Netscape (Browser Wars) with their powerful but slightly incompatible JScript. Remember the IE 6 problems, it's the result. The XHR/AJAX came out of these era too.
It almost happend again with JavaScript. First they tried it with JavaScript 4 that never got mainstream (tried to added classes and XML syntax). Thanks god JavaScript 5 came along as lean barely changed succesor.
It happens again with JavaScript / ES6/7 and TypeScript. They lobbied to add "class" syntax and at the same time create an competiting language on top of ES6 (optionsl typing, like HACK does for PHP).
It happens with Node. The plan to release (we heard that often from MS, it my take a while...) their JavaScript engine and forked Node.
Please wake up, and learn from the past history of Microsoft. They are not saints and judge them by their past actions and also their recent Windows 10 forced phone home and forced update disasters, the expensive license changes, etc. I am certainly happy as long as the official Node will continue to run on V8 on all platforms.
However, qualifying every interest that MS has in tools or languages with the 3E scare is like crying wolf: people will simply stop listening to you and take you seriously. History should not be ignored but people and companies change, especially if they want to stay relevant.
Last I heard, Java was still pretty popular on every platform and the scandalous birth of .Net has been a boon to everyone interested in programming for Windows. So much so that almost every aspect of .Net is getting open sourced and its cross-platform story is really shaping up to something decent.
Browser wars were in the 90s... how far back do we have to hate? Netscape didn't deserve to down that way, but don't forget that the Netscape Navigator was not free. MS forced it free and made Netscape disappear in the process. Good thing or bad thing? We can speculate on what could-have been but no-one is paying for their browser today and yet there are at least 5 or 6 good ones to choose from. We can also argue browsers may still be closed source today if Netscape had been profitable and if Netscape (the company) still had its way with the various standards that underpin the web. MS was punished for their strong-arm tactics. Not punished in a particularly effective way, but it still cost them quite a bit and tarnished their reputation even further.
Javascript is a standard and as such all those people creating the standard represent their own interests. It happens on every single standard in the world and it's certainly not limited to those of our industry. I don't like it, it's not always done in the interest of those implementing those standards, but I don't think singling-out MS is entirely fair, especially considering that they do have the right to participate since they still provide some of the most used browsers (even if it's by default).
TypeScript is good. It changes nothing to JavaScript, it's open source and there are plenty of people who use it to great advantage. I really don't understand what MS is supposed to do here? Nothing? TypeScript is so good the Angular guys at Google have switched to it. Why? Because you can build lots of interesting tooling around it and have a whole classes of issues statically checked, something plain old JS doesn't really provide.
Lots of people have forked Node. The Node people have forked Node. It's Open Source, that's the nature of the game. It's good, Node will improve and if what MS does is rubbish then no-one will use it because no-one is forced to.
There is no reason for MS to invest in these technologies to see them fail (the extinguish part of 3E). MS is heavily invested in them and need them to work well on their platform and services because programmers of today use Open Source by default and expect a good experience. There has been a huge shift in mentality at MS over the years. Open Source won, we should be happy that the majority of the web is built on it, even MS is aware of that.
It's not the nineties any more. Doesn't say we shouldn't be vigilant, but but not every decision out of MS is to be viewed with paranoid suspicions, there are lots of very great and very respectable folks who work there and take pride in what they do, we should give them a little credit.
Embrace (JavaScript/Node CHECK), extend (TypeScript, ES6 CHECK) and extinguish (JavaScript5 CHECK, V8 based Node IN-PROGRESS, ES6 TODO)
And spectacularly backfired with Java. Java is at an all time high and ranks #1 in the TIOBE index at 20.97 (up 6% from 2014). C#, on the other hand, is at 4% - which is probably why they decided to open source it before it dropped even further. Even Python has surpassed C#. Moral of the story is that the days of Microsoft extinguishing anything are over.
?? First TIOBE index cannot be taken seriously. Second a hypothetical forth place isn't that bad, right? MS managed to fragment the community. And they actively try to fragment the JavaScript community with ES6 and TypeScript. And with their Visual Studio Code (based on Electron/Atom editor).
> Microsoft extinguishing anything are over
Sure with $100+ billion in cash it's over. Microsoft was far less evil company between 2005 and 2011 than before or after that timeframe. Sorry for waking you up from your dream.
As for Microsoft's cash reserves, I heard it was close to 90 Billion with over 90% of that overseas. Google, on the other hand, has about 64 Billion and only 60% overseas.
Definitely not indicative of all the myriad of business applications that are created and not release on github