10 ms·
Steam store rendered in Servo
- RobotCaleb 12y agoOkay. But what's a servo?
- yurymik 12y agoWeb browser written in Rust
- gear54rus 12y agoBrowser engine in Rust. Project home: https://github.com/servo/servo https://github.com/servo/servo
- simcop2387 12y agoMozilla's experimental rendering engine, written entirely from scratch to avoid a lot of the problems that Gecko and other engines have because of their age. Along with that they're experimenting with parallelized layout and other things to get better efficiency and performance.
- theandrewbailey 12y agoMozilla is (planning on) using it for FirefoxOS. They have no plans to do so, but I'd be happy seeing it in desktop Firefox. edit: planning on
- muizelaar 12y agoFirefoxOS uses Gecko like desktop.
- theandrewbailey 12y agoI spoke too soon. They are planning and working on it. http://blog.servo.org/2015/02/24/twis-25/ http://blog.servo.org/2015/02/24/twis-25/ http://techcrunch.com/2013/04/03/mozilla-and-samsung-collaborate-on-servo-mozillas-next-gen-browser-engine-for-tomorrows-multicore-processors/ http://techcrunch.com/2013/04/03/mozilla-and-samsung-collabo... https://github.com/servo/servo/wiki/Roadmap https://github.com/servo/servo/wiki/Roadmap
- simcop2387 12y agoYea once it's gotten to where it's stablish and can render most websites I'm really wondering how hard it'd be to start making it work on the desktop as a replacement. I know there's the whole XUL issue but I'm betting that's solvable since they don't have XUL on mobile/firefox OS either.
- tormeh 12y agoA small electric engine, I believe. In this case probably a play on how we call web renderers "browser engines". Servo is Mozilla's next-gen browser engine.
- Manishearth 12y agoThe name actually comes from Tom Servo from MST3K (whose name in turn probably comes from the motor)
- FreakyT 12y agoI am excited for Servo. I think it has the potential to act as a real competitor to the current Webkit ubiquity, which, while not necessarily bad, probably isn't ideal.
- mmastrac 12y agoAgreed. The web has always been healthiest where there are a handful of independent browsers in the mix. We're sliding down the path of a ChromeDesktop/SafariMobile duopoly which isn't good for the web. I'd really like to see Servo start pressuring the big guys and possibly start winning some of the embedding battles.
- grrowl 12y agoThe fact that Spotify has a main process, 2 "helper" processes and a "WebHelper" process with >400MB memory usage still annoys me any time it stalls.
- rkangel 12y agoI mean, it's technically interesting, but doesn't Gecko already do that for us?
- davvid 12y agoI'm a C++ developer, and Rust looks very exciting to me. Maybe I'm optimistic, but Rust really looks like it can be a serious C++ contender in the long run. Talking with other C++11/C++14 users here, the general feeling is that, yes, C++ is a good language because of the performance you can get out of it and some of the nice features that have been added, but the language carries around a lot of cruft that is unavoidable due to its age and maturity. C++ has always been an expert's language. These days it's the expert's expert language++. There are no shortages of landmines and gotchas in the C++ landscape. Modern C++ is a new language, and it really does help, but for the first time there's another language that can actually fill those same shoes. A really big deal that isn't really addressed by golang is the fact that you can produce shared libraries with rust, and call them from existing C/C++ programs through a C interface. That's a really big deal in places with a lot of legacy code. Another big deal (from the scientific computing POV) is the lack of garbage collection. Yes, GC is helpful, but replacing C++ means squeezing every last bit of performance out of your hardware. Rust does not sacrifice in this regard. I really hope that Rust has a bright future. It's almost like "C++ done right", but I would stray away from such a label since someone might Linus you and say, "there's no way to do C++ right". I also view golang as the successor to Python. It's faster, modern, addresses concurrency, and makes things easier for developers. It takes a strongly opinionated stance, and that's exactly the right choice for many problem domains. Python, unfortunately, is dead to me. The GIL is a deal-breaker, and even though we have lots of Python code in production, I can definitely see a future where Python is phased out in favor of something like golang. Basically, I'm bullish on Rust + Golang, neutral on C++, and slightly bearish on Python/Ruby-like languages that do not address the concurrency problem.
- tedajax 12y agoPersonally I tried to like Rust but I just found it endlessly frustrating to write code in. Yeah C++ has a lot of gotchas but they're gotchas I know. I feel like the Rust compiler is just yelling at me constantly and a lot of patterns from C++ land don't really translate well into Rust code.
- adamnemecek 12y ago
- kibwen 12y agoPreexisting discussion on /r/rust: https://www.reddit.com/r/rust/comments/30blul/the_steam_store_rendered_in_servo/ https://www.reddit.com/r/rust/comments/30blul/the_steam_stor... Servo's been looking pretty exciting for a while now. I believe they just passed a milestone where it now implements the CSS rules used by 50% of all webpages (according to a survey performed by Google), and its performance is still blowing other layout engines away if preliminary reports are to be believed (as ever, we'll see if that holds up as they implement more of the web). Definitely a project to watch. In other neat news, just yesterday they managed to implement a rudimentary tabbed browser GUI using only web technologies: https://github.com/glennw/servo-shell https://github.com/glennw/servo-shell . Ideally this would be a stepping stone to the more full-featured browser.html project: https://github.com/mozilla/browser.html https://github.com/mozilla/browser.html
- pcwalton 12y agoOnce my two layout PRs (border-collapse and transition) land, we will have at least some support for every standard CSS property used by 50% or more of Web pages, as measured by Chromium's usage counters. That does not mean that the implementations are bug-free or that all features of those properties work; for example, multiple backgrounds, elliptical radii, and many transition properties are not yet supported. But it's an important milestone nonetheless, IMHO.
- weaksauce 12y agoWhat's your estimation on the future of servo? Will it eventually become the new Firefox or will they just relegate it to a research offshoot?
- bjwbell 12y agoLooking at the number of outside contributors shows a bright future for Servo even if Mozilla doesn't fund it beyond research. It is much much more friendly to newbies than trying to contribute to gecko or webkit/blink. And webkit started out entirely unfunded as KHTML.
- 12y ago
- sho_hn 12y agoThis is significant because there's an ongoing effort to implement the Chromium Embedded Framework (CEF) API on top of Servo, and Steam uses a derivative of CEF in its official client application. I'm guessing this is how the idea of using the Steam pages as a Servo testcase came to be, since Steam is at least a hypothetical embedding testcase.
- pcwalton 12y agoWhile we are interested in embedding (and there are at least three proof-of-concept-phase browser shells for Servo as a result), there's no motive behind using Steam other than that Jesse's a gamer. :)
- Animats 12y agoThat's very nice. This is great progress for Servo and Rust. It's a screenshot of a page rendered without any Javascript, though. Here's that page, run through our service which removes all Javascript, Flash, and embedded code, parses the HTML, and re-emits cleaned-up HTML.[1] (This tool is normally used to check how our crawler sees a page.) It looks exactly like the screenshot on Twitter, once you scroll down past the video they're not showing. Now they have to interface Servo to all the ugly stuff - the Javascript JVM, plug-ins, etc. [1] http://www.sitetruth.com/fcgi/viewer.fcgi?url=http://store.steampowered.com/app/105600/ http://www.sitetruth.com/fcgi/viewer.fcgi?url=http://store.s...
- jruderman 12y agoServo is already hooked up to a (very old) version of SpiderMonkey, but it's missing enough DOM features that most pages hit errors. This Steam page hits "ele.canPlayType is not a function", "document.write is not a function", and "link.href is undefined". Last I heard, Servo does not plan to support plugins such as Flash. I'm not sure if the existence of Shumway changes this.
- hsivonen 12y agoFun times ahead if document.write isn't already supported. When I rewrote Gecko's HTML parsing, accommodating document.write was a (or maybe the) dominant design issue.
- realusername 12y agoI'm quite curious, why document.write is so hard to implement compared to other methods ? Is it not working a bit like innerHTML ?
- dbaupp 12y agodocument.write is pretty wild, as it can modify the HTML token stream directly, e.g. <html> <script> document.write("<h"); </script>1> This is a h1 title <script> document.write("<!-"); </script>- This is commented --> </html> (From http://www.reddit.com/r/rust/comments/2zir9s/html5ever_project_update_one_year/cpjbh77 http://www.reddit.com/r/rust/comments/2zir9s/html5ever_proje... )
- greggman 12y agoAs anyone here watched the Jonathan Blow videos on his language ideas? https://www.youtube.com/watch?v=TH9VCN6UkyQ https://www.youtube.com/watch?v=TH9VCN6UkyQ I don't care about the specifics of his language but I think he brings up a very valid point which my summary would be, we should design a language that is both performant AND fun to program. Fun = type less boilerplate, make refactoring easier. C++ is not that language and from what I've read Rust is not that language either. C++ is stuck with backward compatibility so it can arguably never achieve those goals. Rust didn't seem to have those goals it mind, it had other goals so it's not really a fun language either. Too verbose or so I've read.
- wtetzner 12y agoHow can you say Rust isn't fun to program in if you haven't used it?
- greggman 12y agoI can't. But I can make an educated guess that if there are complaints about Rust being too verbose then it's going in the wrong direction from "fun" as defined by the video I linked to.
- pcwalton 12y agoFor a browser engine, "memory safe" as a design criterion massively outweighs "fun to program in" (although I do think Rust is pretty fun). Most critical browser engine vulnerabilities are memory safety issues, and we would be not be doing our jobs if we wanted to have "fun" at the expense of security. Jonathan Blow's language is not memory safe, and is not trying to be. That may well be fine for his domain, but not for ours.
- greggman 12y agoLike I said, my point is not about the specifics of his language. It's about the ideas he discusses. I agree with him that anytime I'm typing 150 lines of boilerplate on C++ or refactoring things from global function to member function etc, all the busy work required to do that is depressing. I wish more language devs would take stuff like that into account when designing their new language.