9 ms·
WebKit.js: Pure JavaScript Port of WebKit
- rubiquity 13y agoI remember this being an April Fools' Day joke[0] in 2012. Interesting to see it coming alive. I imagine it will be a pretty large file size so it might not be practical for a little bit longer, especially for mobile devices. 0 - http://badassjs.com/post/20294238453/webkit-js-yes-it-has-finally-happened-browser http://badassjs.com/post/20294238453/webkit-js-yes-it-has-fi...
- deleted 13y ago[deleted]
- devongovett 13y agoYup, author of that post here. I was pretty surprised to see the vaporware of 2 years ago come alive this morning. http://badassjs.com/post/73526882798/webkit-js-its-happening-for-real-with-emscriptens http://badassjs.com/post/73526882798/webkit-js-its-happening...
- egeozcan 13y agoI can't tell you how much I was disappointed to realize that it was a joke =)
- nmc 13y agoOK, I understand how this could allow more interoperability, and maybe lead to a few new features in browsers. But could anyone summarize the real interest of such a project? I really cannot see it.
- sathishmanohar 13y agoNow firefox can run chrome inside firefox, but chrome can't run firefox inside chrome.
- talles 13y ago[ insert obligatory Atwood's Law quote here ]
- agumonkey 13y agoThis is one very obvious instance I failed to anticipate though.
- tlrobinson 13y ago[ insert obligatory tlrobinson's Law quote here ] (tlrobinson's Law: any submission to Hacker News about a novel JavaScript program will contain a comment referencing Atwood's Law. https://twitter.com/tlrobinson/status/395636386671235072 https://twitter.com/tlrobinson/status/395636386671235072)
- thatthatis 13y agothrow StopIteration; //For the love of god, please no more laws. I know it's tempting to coin a law about tlrobinson being brought up whenever atwood's law is brought up, but enough is enough already
- Helianthus 13y ago[ insert obligatory thatthatis's recursive-reference-escape coining reference here ]
- sophacles 13y agoIf this browser-in-browser trend catches on, we can start measuring apps in units of meta-Atwoods! (I wish I had a law and/or a unit named after me).
- TheMakeA 13y agoI may be the only one excited about this, but I think it's awesome. I imagine a future where a "web browser" is just a WebGL + Networking + JS API, and you just load in HTML5.js. The benefit of something like this is that it puts the power back in the hands of the people. You don't have to worry about Microsoft ignoring standards, you just load in the HTML5.js that you know works. Want a new feature? Fork HTML5.js on GitHub. One other benefit that interests me is for games. Games badly need a free, standardized way to do UI. Porting v8 + WebGL is far easier than porting an entire web browser. There's a chance for greater performance too, since frameworks like ChromiumEmbedded typically only provide a memory buffer of the rendered frame, which you then have to copy (back) to vram. (reposted because the other thread was killed)
- jgon 13y agoYou should check out Alan Kay's OOPSLA keynote "The Compute Revolution Hasn't Happened Yet" at http://www.youtube.com/watch?v=oKg1hTOQXoY http://www.youtube.com/watch?v=oKg1hTOQXoY specifically about 20 mintues in where he says that a browser should be exactly what you say here. On the one hand, he was talking about this almost 20 years ago, on the other hand you're in good company because he's a pretty smart guy! I encourage all developers to watch that talk and do some thinking about the current state of our practice and where we want to go from here.
- undershirt 13y agoThank you for sharing that. That is a really interesting vision for the future of browsers.
- wmf 13y agoCheck out the Embassies project: http://research.microsoft.com/en-us/projects/embassies/ http://research.microsoft.com/en-us/projects/embassies/
- julien_c 13y agoHave you checked out http://breach.cc/ http://breach.cc/ and http://breach.github.io/exo_browser/ http://breach.github.io/exo_browser/ ? > The ExoBrowser is a scriptable platform designed to ease the experimentation with new concepts for the Web Browser. > The ExoBrowser exposes its API (parts of the Chromium Content API + a Simple View Model) in Javascript and enables the implementation of a fully functional browser entirely out of it (as a Javascript/HTML/CSS app)
- elwell 13y agoAll in a 50KB js file. 1. Why? 2. How is this humanly possible?
- eseehausen 13y agoIt's 50MB. That probably revises #2. As for #1, isn't this a good thing in itself?
- deleted 13y ago[deleted]
- dlubarov 13y agoI wrote a JS port of JavaScriptCore: eval
- elwell 13y agoDoesn't pass JSLint, moving on...
- msoad 13y agoI remember when Google forked Webkit and started Blink. They had a video explaining why and how. I remember they said they might port DOM to JavaScript if it makes sense. Apparently it doesn't make sense.
- javajosh 13y agoAlso excited about this: but it's also clearly a very ambitious project that will need a lot of help.
- fidotron 13y agoThis will eventually mean anyone engaged in getting data off the web for machine processing (i.e. scraping) is probably looking at needing to run headless browsers and using OCR to get the information out in future. I kind of wonder if Google etc. do this already to extract information based on layout. Somewhere along the way we need a better way to exchange data between websites before this comes along and sets us back by a couple of decades. The semantic web stuff (sadly) hasn't really worked, but something of that ilk is needed to get us to the future.
- jokoon 13y agoEveryone hates javascript ! Quick, let's all use javascript !
- notastartup 13y agoholy mother of pearl this is the disruption I've been waiting for on the javscript front. I'd love to contribute but I'm not talented on how to implement the unsupported features.
- sigil 13y agoWow. Good luck there. For the last year or so I've had the distinct pleasure of patching and building WebKit for a project. Some observations about the WebKit codebase... First off, man is it huge. There's a link stage that uses ~4GB of memory. The command line for that link is so long I needed a patched version of make [1]. Why the WebKit devs haven't knuckled under the pain and broken out multiple smaller libraries is beyond me. They must be tough. Second off, if you dive into the code -- say you're looking to change something about the layout algorithm -- you quickly discover that there is no layout algorithm. Or at least, no one place that articulates the algorithm, which is instead spread like pixie dust over dozens of objects. Each one contributes a little bit of the logic. (You're in a twisty maze of classes, all alike...) Perhaps some of this is a reasonable separation of concerns that helps the whole thing scale. But it made me step back and wonder if we're approaching these kinds of problems right, architecturally. Does WebKit really need so much code? If we could go back and write a browser in a functional language, what would that look like? Would performance necessarily doom it from the start? [1] http://blogs.gnome.org/diegoe/2012/09/23/webkitgtk-failing-to-build-argument-list-too-long/ http://blogs.gnome.org/diegoe/2012/09/23/webkitgtk-failing-t...
- taeric 13y agoThis actually surprises me some. With how widespread the use of webkit is, I would have thought it was among the more cleanly designed pieces of software out there. Anyone have any good pointers on an analysis of the code base? Any easy way to just "dive in" to the code other than the obvious checkout and look around?
- azakai 13y ago> With how widespread the use of webkit is, I would have thought it was among the more cleanly designed pieces of software out there. Sadly being widespread is no guarantee of clean design ;) WebKit, like other browser engines, was originally designed in the 90's, and evolved over a long period of time. Again like the others, it's a large and complex C++ codebase, with all the good and bad that comes with that. WebKit does have some advantages over other browser engines though, specifically it is the most embeddable, and I would say that is the main reason for its being widespread today.
- SteroidsLove 13y agoQuick someone make Emscripten.js! Emscripten compiled down to JS. A js web-app that takes C code as an input and creates JS code out of it.
- randallu 13y agoWe're already half way there: http://kripken.github.io/clangor/demo.html http://kripken.github.io/clangor/demo.html (Clang compiled by Emscripten).
- JetSpiegel 13y agoJS is getting out of hand!
- tflinton 13y agohttp://kripken.github.io/clangor/demo.html http://kripken.github.io/clangor/demo.html for the win!