7 ms·
The Future of Node Is in Microsoft’s Fork
- 1971genocide 11y agoBabel has way too many errors. I do not care if I am a grandpa for using 2014 tools - but I am not pushing ahead until things calm the fuck down.
- mikemaccana 11y agoI 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: "browserify": { "transform": [ "brfs", [ "babelify", { "presets": ["es2015"] } ] ] }
- krisdol 11y agoNode.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.
- sotojuan 11y agoThat's not "grandpa". Babel's creator himself has said he cares little about new syntax. Node 4 or 5 is more than fine.
- mattkrea 11y agoNode 4/5 (really arrow functions alone) largely eliminated the need for Babel on backend code IMO.
- mercer 11y agoTo 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.
- deleted 11y ago[deleted]
- krisdol 11y ago"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.
- deleted 11y ago[deleted]
- brazzledazzle 11y ago>"In order to use Microsoft's fork, you need a Windows 10 machine with the November update" That does take the wind out of the post's sails a bit.
- cwyers 11y agoChakra is being opensourced this month. I really doubt that V8 will be able to just pull features from it as easily as you suggest here.
- yuhong 11y agoI was hoping for a open source Windows x64 ABI compliant JavaScript JIT for a while now.
- taspeotis 11y agohttps://blogs.windows.com/msedgedev/2015/12/05/open-source-chakra-core/ https://blogs.windows.com/msedgedev/2015/12/05/open-source-c... "...we are committed to bringing ChakraCore to other platforms in the future."
- SwellJoe 11y agoAnd, when that future arrives, maybe it'd be useful to revisit the topic.
- 0x0 11y agoDoing 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.
- BinaryIdiot 11y agoWhile 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.
- chenster 11y ago"In order to use Microsoft's fork, you need a Windows 10 machine with the November update".. Thank you, but no thank you. Did MS sponsored this post?
- taspeotis 11y agoSee my comment here [1], it's true that a Windows 10 machine is necessary now but perhaps not for much longer. [1] https://news.ycombinator.com/item?id=10825107 https://news.ycombinator.com/item?id=10825107
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- jkldotio 11y agoNonsense 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? [0] https://www.reddit.com/r/node/comments/3z303d/the_future_of_node_is_in_microsofts_fork/ https://www.reddit.com/r/node/comments/3z303d/the_future_of_... [1] https://www.reddit.com/r/javascript/comments/3z302e/the_future_of_node_is_in_microsofts_fork/ https://www.reddit.com/r/javascript/comments/3z302e/the_futu...
- s3th 11y agoIf 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. [0]: https://kangax.github.io/compat-table/es6/ https://kangax.github.io/compat-table/es6/ (Disclaimer: I'm a PM on the V8 team)
- deleted 11y ago[deleted]
- sremani 11y agoSorry, I down-voted instead of up-voting.
- gauravseth 11y agoI 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.
- morebetterer 11y agoIt 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?
- gauravseth 11y agoWe plan to do a blog post about this when we submit a PR to mainline, but you can see the session at Node Interactive where we discussed some of these - https://www.youtube.com/watch?v=Zbc3SwMDWf0&index=14&list=PLfMzBWSH11xYjL8oFumSfzOf6-kr8_t-o https://www.youtube.com/watch?v=Zbc3SwMDWf0&index=14&list=PL....
- morebetterer 11y agoGood stuff. 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.
- jkldotio 11y ago
- kyriakos 11y agoDid anyone complaining about the windows 10 requirement read the while article? It clearly says it goes open source and multi platform this month.
- kemitchell 11y agoThey've announced they will release source this month. Multiple platform support will be on the roadmap. That will take time.
- Marcomasino 11y ago"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. http://edge-op.org/iowa/www.iowaconsumercase.org/011607/2000/PX02782.pdf http://edge-op.org/iowa/www.iowaconsumercase.org/011607/2000...
- frik 11y ago> The future of Node is in Microsoft's fork People should read "Embrace, extend and extinguish": https://en.wikipedia.org/wiki/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.
- Renaud 11y agoMicrosoft 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.
- melted 11y agoOne 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.