This does involve migrating some already written code, but in the end makes for much easier to use java apis if we don't restrict the design to the intersection of java and C++ features. The biggest change is the view system becomes a java library.
#Gpl java universal database program code#
Java does have a big win of being much more compact code than native arm/thumb code.The folks from danger can explain this at length -shipping a *fast* java based system is totally doable, even on much slower hardware than we have. We solve this by making the java runtime very fast, moving what needs to be native native, and being smart about writing our java code. Performance concerns? Yup, we need to do work to push the heavy lifting to native (but we're already doing that!) and have a care for performance and writing more of the system injava does make that a little harder.garbage collection is builtin and standard. (exceptions are zero runtime cost if not throw, by design, in java. We can safely provide a modern object oriented api to third party developers without the scary ABI issues involved in C++. There is no fragile base class problem in the sense that it exists in C++. Java solves a lot of the portability issues C++ has.Debugging is much simpler (especially for people who are not total rockstars - perhaps a lot of casual developers, etc). There is more standardization in tools and libraries. Since we're sorta stick with that, we can provide two environments (java and native) like everyone else does, expending a lot more energy, or simplify and just provide a fantastic java environment. The nature of the cellular market is that we are *required* to have java due to carrier requirements, etc.One language is okay, but why Java instead of C++, lntercal, etc? having one primary language environment allows us to focus all our language systems development energy on making the java world extremely fast and solid.using java allows us to take advantage of a modern, garbage collected memory model for applications without having to worry about integration with C++ allocation, reference counting, etc.We can fill this gap *and* avoid a lot of the "why didn't you just use gtk I qtopia I etc" questions. The embedded java world has midp which we will have for Compatibility with 'legacy' phone apps, but not much in the way of more powerful environments. using java simplifies the "why did you invent a new api" story.A lot of the push for multi-language bindings was a result of Brian trying to work out a cover-our-ass setup for when Sun proves impossible to work with (he was perhaps a bit scarred by his danger experience). the negotiations with Sun are going far better than expected.(this is based on experience developing hiptop -java saved us a pretty crazy amount of time). even on a system with processes I mmu I etc, java provides a nice safetynet and faster app development and debuggability.supporting gee/etc cross compilers and other tools is a big pain (we have to do it for systems development but we can avoid passing that pain on to 99% of application developers). the tools story is much, much simpler.The universal multilanguage binding stuff is an awesome idea but is a crazy pile of work and risky. single language approach massively simplifies system development and reduces our development time.native code is brought in as standalone modules (services) or as plugins to the runtime (components)"
#Gpl java universal database program android#