Live data from Hacker News

Chrome Is The New C Runtime

mobilespan.com

31–40 of 149 posts

Re: Chrome Is The New C Runtime

#31

XULRunner is almost 8 years old now, it was invented for the same purpose TFA uses Chromium but it's actually documented: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/XU...

XULRunner is probably on its way out:

https://groups.google.com/forum/#!topic/mozilla.dev.platform...

It'll still be possible to use Firefox to run XUL apps, though.

Re: Chrome Is The New C Runtime

#32

I'm posting this from a Chromebook Pixel, which I use for all of my development. No crouton, just stock ChromeOS. This movement is really interesting to me. If I could clone myself, I'd be working on an exokernel in Rust that just exposes a V8 VM, and uses a DOM implementation as the native drawing interface. Processes == tabs... Of course, there's higher level work that needs to be done to expose more of the machine…

Can you give us some insight into how you develop on ChromeOS? What editor do you use? How do you run things like GIT? What surprised you that was so easy? What did you find more difficult that you wish was easier?

Re: Chrome Is The New C Runtime

#33

As someone not at Google, but who's re-used multiple parts of Chromium (as described in the article), the code (especially the stuff under base/) is possibly the best documented large-scale, open-source C++ codebase I've seen.

I haven't worked with Chromium, but the main C++ code-base at Google is like this for the most part too (especially the core stuff).

The C++ culture at Google is amazing, and proof that large-scale C++ can actually be really nice if you stay within best practices. It takes a lot of effort and experience from a lot of knowledgeable people to craft these practices, but thankfully Google publishes its C++ style guide (http://google-styleguide.googlecode.com/svn/trunk/cppguide.x...) so that everyone can reap the benefits of this.

Re: Chrome Is The New C Runtime

#34
post #27

He's talking about using bits and pieces of Chromium's infrastructure in other programs, but didn't address open source licensing at all. I haven't looked at it myself, but according to Wikipedia, Chromium's source is licensed under: "BSD license, MIT License, LGPL, MS-PL and MPL/GPL/LGPL tri-licensed code, plus unlicensed files". This is all fine, but anyone using this code needs to make sure they understand what li…

It's not too complicated. Everything with a different license is in src/third_party. Everything outside of that is under a BSD-style license. Need to watch your dependencies, but they aren't too hard to spot (and part of checking into third_party is a license check, so they're all well documented).

You can see them all if you go to about:credits in Chrome/Chromium.

Re: Chrome Is The New C Runtime

#35
post #27

He's talking about using bits and pieces of Chromium's infrastructure in other programs, but didn't address open source licensing at all. I haven't looked at it myself, but according to Wikipedia, Chromium's source is licensed under: "BSD license, MIT License, LGPL, MS-PL and MPL/GPL/LGPL tri-licensed code, plus unlicensed files". This is all fine, but anyone using this code needs to make sure they understand what li…

I don't see how it would be different from using any other MIT-licensed code in your project. The Apache License doesn't seem any less restrictive than MIT at first glance?

Edit: I assumed the entire codebase was multi-licensed, it looks like you're saying that different parts have different licenses, which does sound like a headache.

Re: Chrome Is The New C Runtime

#36
Chromium, Gecko and Webkit codebases are huge, they are hard to compile. They are optimised for use in the browsers and nothing else. They are not universal runtimes yet! I like that idea but please don't make it sound like chromium runtime is ready for everybody to use for their projects.

Re: Chrome Is The New C Runtime

#37

I'm posting this from a Chromebook Pixel, which I use for all of my development. No crouton, just stock ChromeOS. This movement is really interesting to me. If I could clone myself, I'd be working on an exokernel in Rust that just exposes a V8 VM, and uses a DOM implementation as the native drawing interface. Processes == tabs... Of course, there's higher level work that needs to be done to expose more of the machine…

Can you give us some insight into how you develop on ChromeOS? What editor do you use? How do you run things like GIT? What surprised you that was so easy? What did you find more difficult that you wish was easier?

I'm the kind of guy who lives in the terminal. The only GUI program I use is a web browser.

I've been trying out Nitrous.io, and it's pretty great. I also SSH into a Digital Ocean droplet too. I just use Vim and git and everything else as normal.

> What surprised you that was so easy?

Mostly that it works.

> What did you find more difficult that you wish was easier?

I still haven't done any international travel with it yet, I bet I'll spend a lot more time using my X1 Carbon then.

Re: Chrome Is The New C Runtime

#39

Chromium is _huge_. If I just wanted to use the HTTP library (with tls and spdy) then how would I build just that, and cleanly integrate the build into my own project in a way that won't require constant revisiting every time I update my chromium sources?

You would only link with the net library (and its dependent libraries - like base and crypto)

Re: Chrome Is The New C Runtime

#40
post #6

Earlier quoted context omitted.

XULRunner is a good option to build HTML or XUL based apps. We were looking for a great cross platform library for native (c++) apps. With support for OS specific features.

> We were looking for a great cross platform library for native (c++) apps. Isn't that what Qt is for, with the added bonus that it's what Qt is actually for and thus e.g. documented and supported?

Qt is a higher-level application dev framework with UI support (like MFC but cross-platform). We were looking for lower-level constructs - especially in the networking and P2P areas.
Post reply on HN