Participate
Idea Closed (Closed: 06/11/2010 03:26 PM BST) |
|
This idea has expired |
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
As a point of observation, Windows Mobile, Android and iPhone ship with a limited number of runtimes. This has a number of benefits:
As the Symbian foundation starts to diversify contributions, it will be very tempting to increase the already substantial number of runtimes on the Symbian platform. I think it would be a good time to sharpen the focus of the organisation and give a strong steer to the community and contributors by selecting at most three core Symbian runtimes to shape into a great platform. My initial thoughts are:
Interested in opinion, and what these core runtimes should be. I'm still happy to let the community support aftermarket runtimes...
Looking forward to comments
Robert
Posted on 05/21/2009 03:59 PM BST
, Last Modified on 06/11/2010 03:26 PM BST
Comments (11)
Fully agree with the benefits of a simple runtime story. It harms adoption that new developers are faced with a bewildering set of runtimes with inconsistent levels and approaches to support. I like the idea of defining two levels of runtimes:
Why bother with both levels? Tier1 is for 95% of people. Tier2 is for a vocal (and influential) set of people who really don't want you to say that they can't use (e.g.) Python on Symbian devices. Means you don't ever need to get into a "but platform ABC supports it why don't you". I think that the Tier1 languages are:
BTW - personally I'm not a big fan of the "signature runtime" thing. Not sure what benefit it gives SF to say that QT is "more Symbian" than Javascript (or whatever the respective runtimes are). I think it creates a link that has little benefit to SF, but has several downsides.
2
0
Beaten to the post... But Java ME IS dying as far as smart mobile devices are concerned, even if not for the whole mobile market. Most serious development houses have been doing a native Symbian version and a Java version for everything else for years already. Building a nice UI in Java ME is still hard (despite recent attempts to remedy that) and the JSR process is just too slow. Most Java developers recognise this and are noticing that their runtime isn't getting the investment and attention that it used to. The Google move to select a 'Java-based' language for Android was very smart indeed. Lots of disillusioned mobile Java developers (and desktop/enterprise Java developers) looking for a good mobile platform to target... tada, Android... an obvious choice. Dalvik on Symbian is extremely interesting for a number of reasons! How to integrate with the Android security model... now there's a really interesting problem for Craig to get his teeth into.
3
0
I would be tempted to vote to have .NET on T2 for now alongside Python, and if it becomes really popular, it could be promoted to T1
I think that it could also be worth having a Tier3 - known to work on some devices. This in turn implies a slight promotion of T2 languages, e.g. some testing is done by SF to check that it still works? The thought behind this is it allows people to start gathering around the next great language for mobile, or to show that there really is support for that runtime in the community. The only thing that SF has to do then is maintain a list of these T3 languages & runtimes
0
0
I like the principle, I can forsee issues. Here's how I see it. 1) Is clearly going to be Qt (with some Symbian C++ hybrid stuff for a while yet). 2) Can't be Java ME - it has no real future for smart mobile devices. We can't take it out yet, nor can we replace it yet (as we don't have an alternative). To me an Android compatible framework (a port of Dalvik & Android APIs) is the obvious replacement and is likely to be very popular with network operators (and probably some OEMs). 3) The biggest problem area - what do you propose? The current WRT and future WebKit based extensions? What about Flash? There's a lot of investment for Flash on our platform going on at the moment. Flash can't be the only one - tools are too expensive and not functional enough for bedroom coders. Of course Flash isn't an official part of the platform, and can probably re-use the same native bindings as the web runtime, so I guess you could consider them one runtime and that's your 3.
Personally I'd like to see a fourth official runtime, a scripting language with native extension support that's not web-oriented. Either Python or Ruby. Python being the clear leader at the moment. There are a lot of developers that probably would use Python IF the interpreter were part of the platform, but the fact that it isn't drastically limits their distribution opportunities, so they don't. Python also provides an excellent learning path for developers in universities (they use it at MIT for instance), whereas web runtimes don't - JavaScript isn't much like "real coding". That said, the last argument doesn't depend on a built-in interpreter - aftermarket install is fine. Another point is that the future is likely to see a lot of hybrid development, particularly as this will be relatively easy with Qt WebKit and web scripting languages. As such, the distinction between the runtimes becomes a bit blurred.
2
0
I can't decide if I agree or disagree. I see all those points, but then these other thoughts come rushing into my head...
As I say, I can see both sides of the argument, so I'm not sure if these thoughts should be seen as just the "devil's advocate" working in my head, or if we should take them as serious issues. But I'm starting to think it's the latter. So, for now at least, I think my vote is against it.
1
0
I haven't voted either way yet... I think the key issue is the Tier 1/Tier 2 distinction that Antony makes. There are the runtimes that are a mandatory part of the platform for compatibility purposes, and then there are the runtimes that are supported. We can't allow all the runtimes to be a mandatory part of the platform because the firmware will bloat beyond belief! I think we have to have a policy on this. You can install Linux without support for Python, Java, Perl etc.
Perhaps what we need to do is update the installer (and possibly SIS file format?) so that it can detect what type of application you're trying to install, alert you if the relevant runtime is missing and ask if you want to download and install it? That way, other runtimes are less like 2nd class citizens. If we sign and host the latest versions of the relevant runtimes for downloading purposes then we can guarantee that this process will work... much like repositories for Linux distributions.
3
0
I'm enjoying the comments and discussion here. I think Mark's last comment paraphrases the spirit of this idea very well. The idea is not intended to exclude anything from the platform - we're an open platform and open source as such should always encourage and enable innovation on top of the platform. However, a level of pragmatism regarding the the runtimes that are part of the core Symbian distribution is vital to prevent bloat, provide a solid foundation for developers to innovate from and to simplify the support activities of the Symbian foundation. It sounds like Java has quite a bad name round here, so let's not get hung up on the specific languages choices. Please assess this idea in the spirit of simplification rather than the spirit of alienation. I like Mark's idea of detecting and installing appropriate runtimes at install-time...maybe we need to pull this out as a separate idea....?
0
0
Hi, I have been working in Nokia with Java ME tech and S60 Java for many years for now. Currently I'm doing product management and requirements work for Java in Nokia Symbian Devices org. That's to say I may have bias to Java... ;-) Regarding Android as app runtime, does anyone have some concrete things what makes it good? Some of the Android APIs are so intertwined to the application model of Andoird and they may not work that well on an application model of upcoming Orbit release. What I know is that there's at least highlevel widgets like Maps and so on to integrate to Google services. Similar APIs have been specified for Java in JCP (not yet implemented) but they tend to be much lower level so app developer has to do more in order to make functional user interface. On the other hand in Symbian Foundation one has "system" level APIs in the for of native C++ APIs from old Symbian and in future also in form of Qt style APIs. Android has some system level APIs as Java APIs as java is the only programming language for apps. Some of these things need not to be visible in runtimes if it's not common app to need such access. Runtimes just need an extension mechanism so that app developer needing such access can do it with native APIs but still do majority of the app with the runtime APIs. In Symbian most runtimes have such extension mechanisms including Java (on S60 it has been there from S60 3rd ed fp 2 onward).
5
0
Unfortunately I was already aware of all of the things you pointed out (apart from the eSWT on Qt project being open source really soon) when I made my comments above and my opinion is unchanged. My problem with the current Java Runtime is that it seems to be getting squeezed out between native and Web Runtime. You can fairly easily produce a better and more dynamic UI in a Web Runtime (eSWT just seems to be catching up with old-style desktop Qt Widgets when we're moving on to Orbit and more dynamic UIs). With the advent of a Qt WebKit based web runtime with much richer APIs (and easy hybrid programming), what are the reasons for having a Java-based environment: 1) Java is the most popular programming language 2) Cross-platform compatibility with other devices i.e. It's not really the first choice in terms of technology for any kind of app - you only select it for availability of programmers or portability. I think (1) is enough on it's own to keep a Java-based language of some kind. For (2), do you want compatibility with feature phones, or another smartphone platform? As I see it, the Android APIs make it easier to do a wide range of things - they tend to be higher level. Access to system APIs without leaving Java is also important - if you're a Java developer you don't learn C++ just so you can add a single feature. Additionally, if you go for Android compatibility you essentially leverage all of Google's development and marketing efforts in this space. However, I do concede that integrating an Android runtime with Qt/Orbit well is likely to be very difficult. As such it may make more sense to stick with and improve what we've already got, but... >> This change has allowed us also to start thinking of what to add and Animations API, styling with CSS and a better 2D Graphics API to utilize 2D HW acceleration has been on our focus list for now. How would these new APIs be defined? Through the JCP, or just Nokia implementations (which are hopefully open sourced). The problem with this kind of evolution is that we lose one of the primary reasons for choosing Java ME - the cross-platform compatibility (purely cross-Nokia platforms doesn't count!).
1
0
Yeah, for backwards compatibility MIDP+MSA based Java is needed. There's so much investment done by different companies for Java based applications on phones, including Symbian based smartphones, that it would be cold cloth on their faces if that would be dropped. But I guess the talk is more about evolution of the tech. In our mind from Symbian Devices Java team of Nokia (earlier S60 Java Runtime) we think Java needs to evolve so that also the existing applications now done can evolve, as well as new business cases can be realized e.g. by operators and app vendors targeting multiple devices from different vendors (crossing multiple OSes). We are daily in contact with different vendors from all around the world planning for apps and services using Java. They use it because of the install base it has. They say that they can use some new API features that are avaialble in certain devices to optimized the service to a particular device but they do not have business cases to rewrite the entire service e.g. using some native technologies. One aspect is for these companies tell us is that then they can get the same service also to Nokia Series 40 devices which anyway are having stupendous "user base" compared to e.g. Symbian devices. Regarding open sourcing our tech: We have been preparing for this for some years already. We see that it's no point to have cross platform runtime technologies for which the implementation would be closed. Many of the fragmentation issues of Java ME are actually due to differencing implementations and one could even simplify to different bugs. Because in SW bugs are plenty so different implementations have different of those bugs. And that simply creates at least most annoying differences between implementations. For the core parts re-write I discussed above one of the reasons was to get a code base which we could contribute others with EPL like license. Lately it has been more talk on where this contribution should happen. We are seeking internal acceptance for it. As you found out some parts we've already open sourced earlier: eSWT/Avkon based implementation has been on Eclipse Foundation and we're in process now on getting eSWT/Qt based one there. Regarding the new features like CSS styling and animations etc. On the core parts those are of course relying on W3C specs but then for the APIs we are participating in the Eclipse Foundation projects where Java based APIs for such things are defined. CSS styling in the widgets doesn't necessarily need any new APIs even. Görkem Ercan is technical contact from our team for those aspects. The implementation is of course partly from Nokia and partly from other companies involved with those projects. For the more advanced 2D graphics APIs we are looking into OpenVG bindings API which will be available from Eclipse as well as the Advanced Vector Graphics API part of 287. Both are valuable for different application use cases depending on business backgrounds and needs. They are also important APIs when 2D GPUs will be mainstream as with MIDP 2(/3) Graphics APIs one has to code a lot in the app i.e. graphics code gets more executed on CPU side rather than in GPU leaving the graphics HW unused. So out of these OpenVG is already open sourced with EPL thus Nokia changes to it will be too. Also we have no reason currently to keep 287 implementation closed, let's see. Anyway these are future release items and it takes time for them to really materialize.
2
0
Thanks, it's interesting to get the view from the inside. I talk to a lot of developers too, particularly from smaller companies. A common question from Java ME developers these days is "Which runtime should I switch to?". The reasons for switching seem to be: 1) The Java ME fragmentation not getting any better (and in some cases worse). 2) Perception of reduced investment and interest from OEMs in the technology (where was the Java ME content at the Nokia Developer Summit this year? How long has MIDP3 taken to come to market and how late is it?!) 3) Java Verified could have been great but has become an abomination, it makes the current Symbian Signed look exceptionally friendly and developers already complain about that. 4) All of the new platforms coming to market don't support Java ME (Apple iPhone, Palm WebOS, Android - although this last one could have a compatibility layer). As I hinted at above, if you're going to do cross-platform, it makes more sense to do a feature phone version in Java ME and then as few smart mobile device versions as you can to cover the high-end platforms. Symbian's a bit different because it reaches further into the mid-range than the other platforms, however since we're looking forward, the percentage of "smartphones" is expected to increase significantly over the next few years, with some estimates suggesting 40% of the market by 2012, and in terms of consumers with money to spend on apps, this will be a much, much higher percentage of the market, so the huge market share of Series 40 gets less and less relevant.
1
0
|
Idea Stats
Team Members
Similar Ideas
Who Else is Viewing0 Members, 1 guests
Email Group |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||