Microsoft Open-Sources Its JavaScript Engine Chakra (windows.com)
An anonymous reader writes: As promised, Microsoft has open-sourced the core components of Chakra, the company's JavaScript engine used in Microsoft Edge and Internet Explorer. The project, dubbed ChakraCore, has been released under the MIT License on GitHub. The official blog post reads in part: "The ChakraCore repository provides a fully supported and open-source standalone JavaScript engine, with the same characteristics as the Microsoft Edge’s Chakra engine, to embed in projects, innovate on top of and contribute back to. We will be accepting community contributions and input to ChakraCore. Once the changes from any pull request have been vetted, our goal is to ensure that all changes find their way to be shipped as a part of the JavaScript engine powering Microsoft Edge and the Universal Windows Platform on Windows 10."
"...with the same characteristics..."
So, not the same code, then. That isn't really the intent of open source, now is it?
because it is already well trenched. Abandoning now will create problems to already existing applications that depends on JavaScript. Also some of the JavaScript frameworks has made maintaining the code much easier.
Yes, I think it is. So developers contribute to this "almost the same" Chakra engine, but Microsoft profits for it by using it in W10 and Edge, cause last time I checked those products weren't free.
Indeed, notice the project is called ChakraCore (my emphasis). They open source the core and let people contribute, crowdsourcing the "easy" work while they put their developers on the proprietary add ons outside the core. So they get free work on easy stuff, but the community does not get the proprietary stuff they tack on. It's quite a scam.
MS would likely not release anything GPL or they'd have to open it all up to the public, but this is an example why any free software developers out there should use GPL for their own work. If it is MIT/BSD, companies can pull things like this.
Ah "frameworks". The euphamism for a APIs that are far more bloated & complicated than they need to be.
ES6 Javascript engines are actually superior to Python in many ways.
The Python scripting engine is actually quite poor. It doesn't even have true multithreading (there is a global lock on all Python threads. V8 and Chakra have no global locks).
As if you can just commit changes directly to Linux, Apache, MySQL, PHP, PostgreSQL, Android, Firefox, Gnome, KDE etc with no one related to those projects "vetting" them.
Fucking lamest argument against MS doing this...
Seconding this - at this stage in the game, JS is here to stay so the emphasis is on improving it rather than replacing it. Too much money is invested in JS right now across the board for the possibility of replacement to be taken seriously - and even if it was replaced, the sunset period would be longer than that of XP...
JS has improved a lot over the past few years, and is set to improve a lot more with the continuing adoption of EcmaScript 6 - thats the best you are going to get Im afraid.
The missing bindings are expected. The browser bindings expose Windows APIs into the JS engine within the browser ("standard + extensions"), and the COM bindings on the debug API not being present are there to make it platform agnostic.
The part that I find really amazing is that they are targeting x86, x64, and ARM binary support, with two levels of JIT, with feedback optimization. That's a pretty cool thing to have out there in the wild, under an MIT license:
https://github.com/Microsoft/C...
I think that some of the first contributions need to be buildability support on other platforms, which means CLang/LLVM and GCC support. Ideally, it would handle agnostic conversion from some common representation into both the project build mechanism in Java ("Jenkins"), and Makefiles. Not sure if I'm willing to jump on this, since it would mean a familiarity with both, and I'm not sure they'd accept something like that back (it looks like they specifically picked Jenkins for its cross-platform-ness, even though it adds a Java dependency).
This would enable someone external to Microsoft to run *at least* nightly builds and regression testing for other platforms.
I really have to wonder if it's been thought through, however, to enable people to identify the JavaScript engine, and decide *not* to use the Microsoft specific extensions to the Core platform, so as to keep the things that try to use it portable, or if that's of interest to them. A long time ago, I tried, and failed, to get a common cross-platform ABI adopted, and one of the *key* requirements for it would have been the ability to *turn off* vendor extensions in the runtime, so that you could build cross-platform software targeting it, by causing it to error out when the software used a vendor private API/ABI component.
Without something like that, I fear, it will become an "embrace -- then extend and make incompatible", similar to gcc'isms being incorporated into otherwise portable source code, or the bash extensions to the Bourne shell that resulted in shell scripts actually not being runnable on any shell, but instead only runnable on bash due to bash'isms.
A nice barrier enforcement mechanism that extended up through browser space to enable committing to portability would be nice. Otherwise, when a remote website sent JavaScript content down because of the runtime it though it was hitting, it could include them, unintentionally or no, and non-Microsoft browsers based on the Core implementation would fail to operate.
Install base. JavaScript is installed on almost every PC/mobile platform in existence, and has been in some shape or form for nearly a decade. You can't say the same about iOS, Windows, Python etc.
Sun tried to make Java into a universal platform, Adobe came close with Flash, and Microsoft had a go with Silverlight/.NET. None of these have endured in the same way JavaScript has. Why it did is a complex question.
JavaScript isn't as bad as you might think, but does require a lot of discipline (much like C++) to be done well. It definitely shouldn't be the universal language. I consider it really a high level language builder, rather than a high level language in itself. It is actually quite incredible that some newbie can naively bash out decently structured imperative code using it, while an advanced user creates quite well formed functional stuff. But, like C, the downside of this flexibility is that it is extremely easy to shoot yourself in the foot - something that I don't think should be a characteristic of a high level language.
Anyway, the way things are trending in the JavaScript world, eventually most people won't work directly in JavaScript but use derivative languages (such as CoffeeScript is doing now) better suited to their problem domain, so longer term you'll probably have your wish of developing in Python/C++ and then having that compiled to JavaScript. For now though, if you want the best performance (particular on mobile), you need to be developing in JavaScript and have a reasonable understanding of how the interpreter is working for you.
Ahhh trot that old load of bollocks out, as if it makes any difference to this situation.
Got any arguments that are actually worth the name? Being "sentenced" 15 years ago has fuck all to do with them open sourcing a javascript engine today - got any actual decent arguments against them doing that?
I notice you didnt try and argue as to why any of the projects I listed are different in how patches are accepted...
I'm confused as to where the impetus is to have these standalone javascript engines such as Chakra and googles V8 anyway. Javascript is a poor scripting language compared to something like Python
Python, where a typical copy from a webpage and paste into the IDE will destroy the code? No, Javascript is fucking brilliant compared to that.
I know a lot of kids these days kick off their coding doing web based stuff, but thats really no reason to try and drag that 2nd rate mishmash of an enviroment out of its niche into other areas of computing such as Databases
I know a lot of kids these days learn to toggle an LED on a Raspberry Pi using orders of magnitudes more resources than necessary by using Python, but that's really no reason to try to use it everywhere even though it makes no fucking sense.
I know people who say Javascript is much improved over what it used to be but I do get the feeling that a lot of these people have never really used any other language in depth.
Maybe they're just living in the really real world, where Javascript is very like other programming languages for your convenience, and Python is different because it wants to be a special snowflake. Snowflakes melt, and it can't happen quickly enough for me. I never wanted to have to have four scripting languages just for my OS basics, but these days the typical Linux distribution won't run correctly without not just shell, but also perl, python, and probably tcl too, all because of fad-chasers.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
I'll tell you why those didn't succeed where javascript did - proprietaryness.
Java wanted to be "pure java" where you only wrote Java. Flash and Silverlight were the same, in all cases you had to drink the kool-aid and become one of "them". Javascript was just so boring and crap that the major players ignored it, but as it was there, developers knocked out little bits of code using it until eventually everyone could program javascript but only a third could do Java, a third could do Flash and a third do Silverlight (you get my point, hopefully - nobody became a developer for all three of those competing proprietary platforms)
And so the impetus for each of the big platforms waned while javascript kept growing.
To replace it would have to be a standards thing, and get implemented in every browser and be recognised as better. Not Dart or Typescript or whatever, which are all failing too.
Anybody can spend all of 3 minutes making a free outlook account and signing up for the Windows 10 Insider program so yes Virginia Win 10 and Edge can be had for absolutely, free...just like Google's OSes and browser.
In fact one could argue there is pretty much zero difference between MSFT and Google now, as both give away their OS and then proceed to datamine the shit out of you while tying everything to their services...hmm...where have I seen that before? Why I just don't know where I could have seen such a thing.
ACs don't waste your time replying, your posts are never seen by me.
So you hate MS, why should I give a shit about that? And "you" having reservations about Microsoft and opensource doesnt mean "people" have reservations - I've been around on Slashdot since 2000 and while its a great anti-MS rhetorical slogan, I have yet to see Embrace, Extend and Extinguish in real life - .Net is awesome, and getting more open source by the day, and MS is releasing stuff as open source left right and centre. So tell me, just how long do I have to wait to be "extended" or "extinguished"? Another 5 years? 10? Am I going to die of old age first?
Now, care to actually tell me how MS acting as gatekeeper for their project is any different from any of the other projects I mentioned? You cant, other than point to your hate filled rhetoric? Ho hum.
Their fundamental business model is built upon getting people to pay licensing fees for proprietary software. I am very grateful and appreciative for all of the excellent code they have released as open source. But the company will never be a complete friend to the open source software community.
Python, where a typical copy from a webpage and paste into the IDE will destroy the code? No, Javascript is fucking brilliant compared to that.
That's a feature meant to catch Stack Overflow coding. :)
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Yes, I think it is. So developers contribute to this "almost the same" Chakra engine, but Microsoft profits for it by using it in W10 and Edge, cause last time I checked those products weren't free.
Oh please.
MS is not the scary giant of the 1990s anymore and lost to Google. So they are now nice guys due to market forces. IBM was just as evil and now are open source friendly and a big contributor.
The intentions are MS wants more node.JS on Windows and feels uncomfortable with Google's monopoly with Chrome V8.
This is a good thing as a monopoly is bad regardless of whether you feel Google is cool and MS is not. Node.JS is mentioned and MS wants it on Chakra and if their JIT is better as it gets improved and runs on MacOSX and Linux will make it harder for Google to make it proprietary.
http://saveie6.com/
In fact one could argue there is pretty much zero difference between MSFT and Google now, as both give away their OS and then proceed to datamine the shit out of you while tying everything to their services...hmm...where have I seen that before? Why I just don't know where I could have seen such a thing.
The difference is that so long as I pick some hardware that works, I can run Android-x86 on a PC without being spied on by Google, but no matter what I do, I cannot run Windows 10 on a PC without being spied on by Microsoft, even when they claim they are not spying because you have turned off the options for the spying. I can do the same with my phone. I can opt out of Google services by getting my distribution elsewhere, but I can't opt out of Microsoft spyware because there's only one source for Windows, and it is tainted. I can also get an OSS version of their web browser, but you cannot get an OSS version of Aieeee! So in fact, the situation is completely different, and as a Microsoft whore you are shilling for them in order to make yourself look less unscrupulous. Your self-serving effort has been noted, and sneered at. And, of course, fellated by other Microsoft shills, with modpoints.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
So you haven't been around for very long then? It took me about 3 seconds to find Examples [wikipedia.org].
Well, most of those examples stem from the whole Java thing which happened 20 years ago (1995-1996).
I'm not sure where the issue with Kerbios is/was. Windows 2000 was release in Feb 2000. The RFP's that describe the extension for changing passwords (RFP3244), was also released Feb 2000, nearly at the same time. The NDA then only covered it until the products actual release, hardly a shining example of "extinguish".
All in all, your "examples", some of which I personally disagree with (having lived through that time) are from 13-20 years ago, 2 CEO's ago, and aren't relevant. Microsoft isn't the same as it was back then, I suspect less than 2% of the workforce that is there now is still there (could be wrong, I just pulled that number out of the air), but the idea stands the same. Not many employees remain that were there are that time, and it's gone under two different CEO's since then.
As for convicted monopolist, they were found guilty of "monopolization and tying" which refers specifically to Microsoft including IE into Windows, and nothing else. I didn't agree with the decision then, still don't today, and most of the claims and assumptions that the court made have since been proven false. Namely, that the court chose that look at smaller segment than it should have. Why only Intel x86 OS's? It should have looked at computers in general. Also, findings 18-29 "The Court has already found, based on the evidence in this record, that there are currently no products - and that there are not likely to be any in the near future - that a significant percentage of computer users worldwide could substitute for Intel-compatible PC operating systems without incurring substantial costs." which was false then, and even more false now. There was products that could have substituted, Unix, Xenix, Linux, Mac OS, OS/2, and they could have done so immediately if they so chose, but consumers just didn't want them at the time, and there are even more products now. In fact, many users are realizing the they don't even want or need an Intel-compatible PC AT ALL. They get done what they want on ARM-based (not Intel x86 based) computers called phones and tablets. And yet, each and every single one of these also tie in a web browser, the exact same thing that Microsoft got "convicted" for.
I'm just wonder why Apple isn't getting convicted for the same thing for tying their web browser (AND NOT LETTING OTHERS BE INSTALLED!) on their monopoly of their tablet OSs that run on ARM or android on phones that you can't uninstall their crapware both of which come with their own browsers and is much worse than what Microsoft did.