Introducing the Open Source Interview
I’d like to introduce a new interview series we’re rolling out here at DZone: the Open Source Interview. Our plan with this series is to interview a particularly excellent developer and then follow up with questions from you, the DZone audience… thus, "open sourcing" the interview. If you wish to contribute, please leave any good questions you can think of that I may have missed in the comments—I’m sure I probably missed some good ones. Also, if you like someone else’s question, feel free to reply to their comment and say something like: "Good Question!", "Upvoted!", "I like the way you think!", ":-)", or your own creative way of showing that you like their question. Please refrain from telling someone their question is bad/stupid/not worthy. I’d like to create an atmosphere where anyone can feel comfortable about submitting a question and hope to avoid any negativity. In the same vein, please don’t ask any hostile questions or veer too far off topic… I’d really like to keep this series going, and it’s likely that it won’t work out if we scare our interviewees off.
Allow me to set up our first open source interview with Li Gong, former president of Mozilla. With a deep history in and commitment to open source technologies, I can't think of a better person to start off this new series. So, without further ado...
The other day, I woke up and drove into work, just like any other day. I scrambled together my usual breakfast of Greek yogurt and granola, grabbed my wallet/keys/phone (a mantra I repeat to myself whenever leaving the house), and headed out to join the early morning onslaught of Raleigh traffic.
Little did I know that this morning was going to be different. This morning I'd be put in touch with Li Gong, the former president of Mozilla who led the Firefox OS, platform technologies, mobile devices, apps and marketplace, and cloud services. And, that night I'd be given the chance to interview Li Gong about H5OS, a new open source operating system for mobile that was designed specifically with IoT developers in mind (Here is the official press release.)
So, after dinner, I did my best to research H5OS and wrangled together the most sensible questions I could come up with in such a short amount of time. Avoiding the urge to lay down on the couch, I waited patiently for the green check to appear in the bubble beside Li Gong’s Skype handle. It did, and shortly thereafter, the familiar Skype jingle beckoned me to answer.
Before long, Li Gong and I were chatting about each of our experiences of living in the UK… we both agreed that we really enjoyed our time there, despite the rainy weather leaving a lot to desire. We spoke briefly about classic literature, and Li began to explain the origin of his new startup’s name, Acadine, which comes from a magical fountain in Greek Mythology. Then came the questions…
Li Gong on H5OS
I’m guessing that H5OS comes from HTML5 Operating System, correct?
Yes, that’s right.
What kind of void do you hope to fill with H5OS… what is the ultimate goal of H5OS?
I think the landscape exists that there is a high demand for such an OS because the new material from PCs, to Smart Phones, to IoT devices is calling for a new breed of OSes that speaks more to the IoT side than current devices do. Technically, it calls for a new revamp of the OS. And business-wise, people are tired of being dictated to by companies saying "You can use our OS for your category of device or not. But, if you use our OS, you have to use our services in a particular way. And, if you attempt to do something else, you are on your own… oh, and by the way, if you do decide to use our OS, we will take most of the money that’s generated out of this platform, but you’re free to pick up the bread crumbs."
So, there’s demand for this. What’s needed is: a) a technically sound product b) a commercial vehicle to deliver this into the marketplace and c) the ability to energize developers and bring them on board by giving them the freedom to run things on their own and support them during the process.
I think what we are doing is an example of that. There is typically a pattern, you know? We work with device makers and chipset makers, and they generally ask first, “Is this good, and does this fit on my device?” And, we answer, “We’re a low memory, very efficient OS.” And secondly, they want to know, "Can we innovate? Can we change it?" And, we say, "Of course, it’s HTML5-based, it’s all open web standards. We don’t control the technologies (the W3C makes the standard), but it’s just like the browser, it’s all open."
Because this is an open source OS, can you tell me how you’re hoping to foster open participation amongst developers? How do you plan on building a community, getting people involved, and what can our developer audience do to reach you guys?
We will launch as an open source project. We’re going to build development boards, reference platforms, and more. We want to make our platform tools available so that developers can try out H5OS. And, we want them to be able to customize our OS to their needs.
You touched on that as well in the resources you provided me, speaking about a horizontal platform. You don’t want to have a silo-ed approach, which makes a lot of sense. Can you tell me, how did you first get involved with open source software, and how does it shape your ideas about what you like to create?
So, my first exposure was when I was at Sun, working on Java. I was one of the chief architects of the Java platform. In fact, Oracle sued Google. If you look up the suit they filed, they cited 7 patents—a violation of 7 Java patents and some APIs. The number 1 and number 2 patents they reference were mine. You know, I was the sole proprietor… and, some of the APIs I wrote.
Anyway, when I was at Java, it wasn’t an open source project. Although, it was almost like it was. You have lots of partners: IBM, Oracle, all kinds of people were part of the project. And, that was my first experience with open source development and obviously, I liked it! That was 20 years ago! Java is such an interesting thing… we were definitely having a lot of fun.
Can you explain to me the difference between H5OS core and H5OS Feature Packs?
Okay, so what we realize is that there are 2 requirements for our OS. One is that it has to be generic enough to enable a wide range of devices, and then the second is that it has to be good enough to support some specific segments and categories of devices.
For example, all of the IoT devices need to be interconnected in order to be useful, or rather, meaningful. So, we think instead of depending on protocols that were created by each individual vendor, using HTTP/HTML as the international standard for connection protocols is the way to go because, a) it’s the standard, and b) it’s already in all other devices: laptops, PCs, servers… everything uses it. So, if we use this as the connectivity layer, then we automatically not only interconnect in an open way, but we also connect to everything that has come before us. So, we need that layer in order to be an OS that supports the web standards for connectivity. And, that’s basically what H5OS core is. We support the chipsets and the devices that run the OS, and you can communicate to and manage everything from there.
But, that’s not enough if I want to ship H5OS on the phone. Where can I manage 2g, 3g, 4g LTE? How can I integrate my address book, my calendar, my messaging, or my email? So, this is what we have put into feature packs. If you look at watch, the watch will have dials, a chronograph, and possibly different time zones. So, if you match the phone feature pack with H5OS core, you get the total offering needed for a phone. If you match a watch with a watch feature pack, you get an OS customized for a watch. The reason that we structure it like this is that—you realize that a watch doesn’t necessarily need to have all of the capabilities specific to a phone… although, it could. And, a phone doesn’t need to have watch capabilities… although, it could. So, we offer virtual packs that can be matched to different categories of devices. That’s how we structure it. And, of course, a device maker could put in different packs for their devices either when they build and ship the device (upon deployment) or after the device is already deployed because HTML allows them to dynamically update their system.
So, that’s a good sign of how it’s scalable and dynamic. And, having it be open source, allows developers to come and go and change things as they please. Can you speak on unified protocol suites for IoT, in general?
Well, of course, we watch closely when new standards emerge to see if we should support them. But, I think there’s an old saying we used to say at Sun, “the nice thing about standards, is there are so many,” because each company would try to bring out their own new thing as the de facto standard—of course, that’s how they monopolize the industry.
So, we believe the best standard currently is the web standard. And, it has been proven… if you look at the PC space, no native OSes matter anymore—nothing else matters. It’s internet connectivity; it’s all HTML… for communication, for apps, for everything. You can practically do anything entirely within the web stack.
And, the reason that companies try to promote their native stack is to maintain control. It’s not that it’s better… it’s actually worse. For example, if you are reading content and decide you’d like to buy it, now you must use a payment method that’s from something else. Then you are engaged with 2 apps—1 is a content app, 1 is the other app. And, now they must communicate, connecting back and forth, each with their own different set of requirements. It’s very complex and difficult. Now, if you are using the web, interconnectivity is a given… it’s the DNA of the web! You are not switching apps, you are not switching content, you are just doing something altogether different. So, to us, the web is the best standard, and that’s why we chose it. But certainly, we are always looking toward other standards. And, if they emerge as something that people like, then we will make sure that it works for us. For instance, WiFi might be a standard we would support because it is universally used.
I think it can get very messy when each software has its own proprietary standards. So keeping a horizontal platform model with everything open and customizable seems like a wise decision to me.
Yes, we agree. All of the greedy companies out there want to monopolize. We are not that greedy… we want to succeed, but we don’t think that should require a monopoly.
That seems to be what the Web should be all about… open knowledge, shared success.
The web is the largest ecosystem in existence. The number of web developers is many times more than simply iOS developers or Android developers. The content on the web is much richer than this, and the contribution to society and mankind is much greater. We want to be a part of that.
I’d like to know how you became interested in and involved with IoT. Can you tell me a bit about that?
IoT is certainly nothing new for us in terms of how we are looking at it, technically speaking. And, there is some logic to our decision. Not only is IoT the next emerging segment that is interesting—the new, new thing—but also, in terms of competition, it’s a wide open space. There is no entrenched player in that space in terms of an OS. And, couple that with the fact that there are vast amounts of IoT device makers out there—many more than for just phones or TVs. Hundreds and thousands of them (drones, cameras, anything you can think of), and all of them need an OS. There is no dominant, suitable OS for them. People who make a camera don’t have the team to build an OS and they shouldn’t be building one anyway, so we want to be that supplier. We recognize IoT as a valuable space and as a new company we strive to put our resources where the market is.
So by offering your platform to IoT hardware developers, they’re able to focus on what they want to accomplish, and you offer a vehicle to make that possible.
Right. They can focus on the hardware, but are also able to differentiate their software by using our platform. The best of both worlds.
Follow-up Question Set #1
So, as I said before, though I thought the interview went well, I still felt that I missed plenty of good questions. In fact, I’ve already followed up with Li Gong, asking some more questions that I didn't think to ask the first time around. Also, I attached some questions from DZone's Editor in Chief, John Esposito... thanks for the help, John!
Luckily, Li Gong got back to us very quickly. Check out the follow-up Q/A below:
I still want to figure out how exactly you plan on fostering open participation? I’m looking for a concrete answer as far as an app/service/website that will host your communication with developers and provide open code. Will you have a GitHub repository?
We are open to partners, smart device makers, as well as content providers. H5OS is a commercial product that leverages from some open source projects, including Boot2Gecko. Currently, we would encourage people to contact us through our website directly for participation and partnership.
What are some of the similarities and some of the differences between H5OS and Firefox OS?
H5OS started with the same open source project (B2G) that Firefox OS adopted. It is similar to how Google Chrome originated from Webkit. However, H5OS has its own roadmap and is designed for the next generation of smart devices, offering high scalability and industry service.
How do you plan on generating profits?
H5OS offers partners flexible commercial licensing options, enabling innovation and creation while allowing partners to adapt different verticals to fit specific requirements. We have different monetization opportunities for each market we operate in, and we work with partners across all industry ecosystems to monetize H5OS while not harming the industry’s innovation or operational potential.
Any widely used OS will always be a target for hackers. What plans do you have as far as security goes? What specific feature ensure users that their privacy will not be infringed upon?
First of all, H5OS has industry-leading security and authentication methods and policies built directly into the platform. Secondly, H5OS enhances security through open web standard security solutions, installed at both the hardware- and chipset-level, such as the secure boot. Furthermore, it offers partners the capabilities to save data and provide security tools that enable device makers to make their own security decisions. With a carefully designed permission model, the platform will not allow any private/sensitive data/resource being consumed without the user’s authority.
Will H5OS be available for PC, or just mobile and IoT devices?
H5OS is designed for the new generation of smart devices, PC is not our target right now.
What is the H50S app developer experience to be like (esp. compared with other mobile development experiences)?
How do you optimize a non-hardware-specific platform for many different kinds of hardware? Will there be performance or functionality tradeoffs that enable WORA? Additional native layers to customize per device?
H5OS is designed to be modular and scalable, which offers flexibility for partners to customize and meet their requirements. Since H5OS is HTML5-based, apps, content, and services developed for H5OS can be rendered and delivered to other operating systems via their web components. We offered a number of feature packs for different kinds of smart devices, where partners can customize their products.
What’s the biggest engineering challenge you overcame to create H5OS?
In addition to the cutting-edge features implemented for the Web, H5OS is heavily engineered to be modular and scalable, which offer flexibility for partners to customize to meet their needs for different kinds of smart devices. It is achieved with enhanced performance under lower hardware budget.
Now, I invite you to fire away with any questions you may have thought of. And, after about two weeks time, I'll gather together the results and send them on to Li Gong. If all goes well, we'll have the answers back within two more weeks, or about a month from the original publish date of this article.
So, please feel free to leave your questions in the comments. I hope you'll contribute!