As of this month, we finally come to code freeze of Elastos after six long years. I can't help but thinking Elastos and Mozilla really designed to complement each other. Elastos is an infrastructure (aka operating system), and Mozilla is a browser (for lack of a better word). Together, they form the next generation of infrastructure technologies.
The opportunities for Elastos 3rd generation Internet
(1st - Email, 2nd - Browser, 3rd - WEB Services), 3rd generation programming paradigm (1st - structure oriented, 2nd - object oriented, 3rd - WEB Services), 3rd generation operating system (1st - DOS, 2nd - Windows, 3rd - WEB Services),
3rd generation mobile phone and
(1st analog, 2nd - digital, 3rd - wireless broadband) 3rd generation digital TV markets (1st - Black-n-white, 2nd - Color, 3rd - HDTV with broadband cable)
Of course, we also implemented a full powered, component based OS in C/C++.
Next are 10 problems we solved along the way:
(1) Seamless computing Problem: c:\windows\system32\drivers\tcpip.sys
(2) No software installation Problem:
(3) Binary code versioning Problem:
allocating memory on stack
allocate memory on heap
(4) Binary module interoperability Problem:
naked binary or incompatible symbols
contract/interface based programming and meta-class
(5) TCP/IP is irrelevant to programming paradigm Problem:
WEB Services and dynamic proxy
(6) Windows as an obsolete programming paradigm Problem:
WinProc() assumes source code availability
function callback table & design mouse-move-over et al as aspects
(7) Avoid explicit message passing Problem:
polling can't extend to distributed computing
asynchronous pushing events
(8) Scripting GUI vs. codec engines Problem:
scripts are flexible but slow; computations are limited to fixed API set
directly scripting codec engines with reflection
(9) Unified storage model Problem:
application data files are isolated
XML and database
(10) Software manufacturing at runtime Problem:
C/C++ objects are source code bound
component aggregates aspects to form assembly in context
Q & A What is Elastos?
A software platform for the Internet programming era.
Why do we invent Elastos?
To answer above 10 questions with a simple solution.
When do we have Elastos available for partners?
Who do we target Elastos?
Embedded software ISVs and design houses.
How do we categorize Elastos?
Enabling very efficient WEB services in native binary code, complementing WEB services of JAVA or .NET.
1. I have download the Yahoo! Widget and can I assume what you are talking about is very similar to it ?
2. once you have several tasks running on the mobile phone to periodically pulling the information from different URLs on the server I assume it would make entire phone running very slow because every tasks in competing the cpu and communication (event is 3G) bandwidth?
3. is this kind of new operating system on the mobile phone so it needs new industry standard if not, how easy do you think every mobile phone makers would be willing to install this?
[chenrong] We reply on the same infrastructure such as HTTP, XML, HTML, TCP/IP etc. But in the future, I think when more P2P like infrastructures are available, Elastos will demonstrate more flexibility and power. For example, people may play games on a train, without having to have a cell phone connection at all. Only when people do not want to preinstall games or other programs, and they want to use URL to transparently access them, then they have to have our OS or middleware installed on their phone. We are in the process of implementing Elastos VM for WinCE, Windows and Linux. You may compare us with Java. You only need Java when you play Java games. The difference between Java and us is that we use native code and Java uses byte code. I believe performance, driver installation, and XML will prove our solution has advantages. We support Java, by the way. And 95% or more phones are ARM based so byte code and native code will all run. Yet we run faster!
4. Assume this is something quite like Yahoo! Widget on the PC there are going to be more 1000 of them and with such small screen of mobile phone would that be a problem for user experience?