Active Topics

 


Reply
Thread Tools
Posts: 376 | Thanked: 511 times | Joined on Aug 2009 @ Greece
#1
Here's something that I can't answer straightforward and it would be nice to have some comments from Nokia on this.

Let's assume that MeeGo is released and that it's awesome. Now, suppose that other vendors start using it for their phones and it becomes an Android-like OS where multiple vendors are using it. Assuming the current way MeeGo is designed, is that possible?

Let me explain that:

Android apps are written in Java while MeeGo apps in C and other languages like python, but mostly they are written in C and that's what Nokia is pushing indirectly. Even if it is Qt, it's still C. Also Nokia changed the debian packaging to RPM packaging.

Is Nokia ready to handle multiple architectures for MeeGo? Android apps are written once and they run everywhere. MeeGo apps will most probably need to be recompiled (at least) once for each architecture, just like Debian packages.

I personally find this to be a very very hard obstacle for MeeGo adoption and app development. Consider that each app creator will have to provide packages for multiple architecture, something that only Debian does well. A commercial app that is distributed outside of the official repositories will have to be provided for multiple platforms, meaning that the app creator will have to compile it for multiple platforms. Considering the number of different current and future platforms out there, this is a VERY VERY hard problem to solve (if it is solvable at all). For example, an app vendor starting to develop in 2014, will still have to support hardware that was provided in 2011.

From what I can see, this can only be solved if Nokia starts using a language that does not need recompilation everywhere, like Python and Java.

Do you have any hints/thoughts on that?
 

The Following 10 Users Say Thank You to v13 For This Useful Post:
Posts: 521 | Thanked: 296 times | Joined on Sep 2009
#2
recompiling and fixing a few port issues is really no big deal. For C/C++ developers its part of the development cycle.Non issue for experienced devs
 

The Following User Says Thank You to bugelrex For This Useful Post:
Posts: 376 | Thanked: 511 times | Joined on Aug 2009 @ Greece
#3
Originally Posted by bugelrex View Post
recompiling and fixing a few port issues is really no big deal. For C/C++ developers its part of the development cycle.Non issue for experienced devs
IMO: No it's not. See what happened with 64bit windows support. It's not ready yet (!).

It's not an issue of whether "it is possible" from the developer PoV. It's mostly like this: why write an app that needs adoption for 123745329876 different hardware platforms? And how can this app be supported properly? This breaks the whole "one global app repository" idea, unless something like Debian happens inside Nokia (which I doubt).

Android solves this by using Java and Apple solves this by having one platform. This is somewhat similar to the problem of supporting different OS versions.
 

The Following 5 Users Say Thank You to v13 For This Useful Post:
MaddogG's Avatar
Posts: 234 | Thanked: 175 times | Joined on Jun 2010 @ Genova (Italy)
#4
With C/C++ you have to recompile, with Java you need to have a JVM compatible with the target host, so no big differences imo...

If Dalvik is so portable, why we don't have it on Maemo?
__________________
Some say the world will end in fire; some say in segfaults...

Last edited by MaddogG; 2011-01-21 at 16:26.
 
Posts: 376 | Thanked: 511 times | Joined on Aug 2009 @ Greece
#5
Originally Posted by MaddogG View Post
With C/C++ you have to recompile, with Java you need to have a JVM compatible with the target host, so no big differences imo...

If Dalvik is so portable, why we don't have it on Maemo?
From the developers PoV it's a great difference. One is done by the developer (in fact: by each developer) and the other by the vendor (and only once). Android's approach seems more suited for mobiles since the support of a new device is handled by its vendor.

As for Dalvik, well.. the libraries seem to be tied to the OS.
 

The Following User Says Thank You to v13 For This Useful Post:
Copernicus's Avatar
Posts: 1,986 | Thanked: 7,698 times | Joined on Dec 2010 @ Dayton, Ohio
#6
Originally Posted by v13 View Post
It's mostly like this: why write an app that needs adoption for 123745329876 different hardware platforms? And how can this app be supported properly?
Let me throw the question back at you -- why do you think the use of Java or some other interpreted language avoids the issue of different hardware platforms? Right now, if you want to develop for iOS, you can't just slap a program together and assume it will run just fine on all the iOS devices; you've got to deal with many different screen resolutions (original iPhone, retina-display iPhone, and iPad); significant differences in CPU and GPU abilities among the various devices; and lots of variance in odd bits of hardware (depending on the device, there may or may not be a camera, cell phone, GPS, microphone, etc...) With Android, it looks like manufacturers have even more liberty to play around with their hardware.

If you're trying to create a professional app for a particular hardware platform, you're going to want to put some effort into customizing it for the peculiarities of that platform, regardless of the language you prefer to use.
 

The Following 5 Users Say Thank You to Copernicus For This Useful Post:
Posts: 521 | Thanked: 296 times | Joined on Sep 2009
#7
Originally Posted by v13 View Post
IMO: No it's not. See what happened with 64bit windows support. It's not ready yet (!).
64bit ports of "old (10 years+)" server and O/S code is notoriously hard because of all the performance tricks developers use (mixing int,long and bit manipulations). Again for an experienced dev in 2011 for NEW code, its not an issue.
 
Posts: 376 | Thanked: 511 times | Joined on Aug 2009 @ Greece
#8
Originally Posted by Copernicus View Post
Let me throw the question back at you -- why do you think the use of Java or some other interpreted language avoids the issue of different hardware platforms? Right now, if you want to develop for iOS, you can't just slap a program together and assume it will run just fine on all the iOS devices; you've got to deal with many different screen resolutions (original iPhone, retina-display iPhone, and iPad); significant differences in CPU and GPU abilities among the various devices; and lots of variance in odd bits of hardware (depending on the device, there may or may not be a camera, cell phone, GPS, microphone, etc...) With Android, it looks like manufacturers have even more liberty to play around with their hardware.
Well sure. But it's another thing to add some "if"s or configs in the code and another one to distribute different binary packages. For example, if N9 comes with meego and it has an ARM CPU and 1000 community-based apps are created and then HTC introduces another MeeGo phone with different CPU, *all* apps need to be recompiled. Do you see the problem? Why would HTC use MeeGo in that case since there will be no available apps at all (at the beggining - which is the crucial point) for its new phone?
 

The Following 4 Users Say Thank You to v13 For This Useful Post:
Posts: 1,746 | Thanked: 2,100 times | Joined on Sep 2009
#9
Originally Posted by v13 View Post
Well sure. But it's another thing to add some "if"s or configs in the code and another one to distribute different binary packages.
Yet most major Linux distributions do so handily. Fedora, Debian, and Ubuntu all offer ARM builds alongside x86. MeeGo does as well. Hell they all do it when you get the differentiation between x86_64 and x86.

For example, if N9 comes with meego and it has an ARM CPU and 1000 community-based apps are created and then HTC introduces another MeeGo phone with different CPU, *all* apps need to be recompiled.
If the architectures are incompatible, sure. But, MeeGo compliance specifies architectures and the tools on hand provide the ability to build packages targeted to each architecture automatically.

Do you see the problem? Why would HTC use MeeGo in that case since there will be no available apps at all (at the beggining - which is the crucial point) for its new phone?
Suggesting that only a VM-based language like Java is capable of clean cross-architecture operation is more than a little ridiculous.
 

The Following 11 Users Say Thank You to wmarone For This Useful Post:
Posts: 376 | Thanked: 511 times | Joined on Aug 2009 @ Greece
#10
Originally Posted by wmarone View Post
Yet most major Linux distributions do so handily. Fedora, Debian, and Ubuntu all offer ARM builds alongside x86. MeeGo does as well. Hell they all do it when you get the differentiation between x86_64 and x86.
You didn't get the point: It's not a matter of ARM support. It's a matter of architecture diversity and whether it will attract other phone vendors.

Originally Posted by wmarone View Post
If the architectures are incompatible, sure. But, MeeGo compliance specifies architectures and the tools on hand provide the ability to build packages targeted to each architecture automatically.
I don't believe you understand what you're saying here. I'm not asking if it is possible to rebuild everything. I'm asking if it will ever work and if it will be adopted, or whether Nokia has thought about this. Please read previous posts.

Originally Posted by wmarone View Post
Suggesting that only a VM-based language like Java is capable of clean cross-architecture operation is more than a little ridiculous.
As it is replying without first reading the posts. Unless you consider Python as a VM-based language, that's not what I said.

FWIW, the only available methods for doing this, as far as I know, are:
  • Java / VM based
  • Interpreted languages (Python)
  • LLVM

but you're free to correct me. Also, please don't be offensive. I could also offend you very easily for not replying correctly.
 

The Following 3 Users Say Thank You to v13 For This Useful Post:
Reply

Tags
bada rox, dalvik, future, java haters, meego, meego?fail, nokia, sandbox sucks


 
Forum Jump


All times are GMT. The time now is 16:00.