A blog about everything that sounds interesting to me and Forum Nokia audience.
dcrocha | 03 June, 2008 18:49
The comic above pretty much sums it up: Python is a refreshing look at the world of programming. Being so easy to learn and use, it has gained lots of attention from the developer community and it's used for several different purposes such as: web development, desktop apps, utilities, scientific computing, scripting language for games and special effects software, flying and of course mobile development. In fact, I am very surprised that it took so long before any mobile platform offered Python as a viable software creation vehicle.
In our platforms, Python is offered as a runtime option for S60 devices, ranging from 2nd. to 3rd Edition and all their feature packs. That makes it pretty wide reaching platform, since we have some 130 million+ devices in the market for which you can write Python applications.
The core technologies for mobile development have been analyzed here before: C++ is the raw power of Symbian OS available to developers, with its immense API and functionality sets but steep learning curve; Java is easy to learn and use and it's present in more than a billion devices. Its functionality is good but restricted by the Java Community Process since all APIs have to be agreeded upon by participants of each JSR spec.
Python comes in the middle, and that's in my view its main advantage: it is as easy as Java but (almost) as powerful as C++, and not limited by any industry standard processes: you want a Flying API which is not available? Just create an extension and you're good to go. Our good friend and Forum Nokia Champion Pankaj Nathani (a.k.a. croozeus) has in his website a great list of resources for Python development, including how-to's on writing extensions and more: http://croozeus.googlepages.com/py60extensions. Also, if you are the kind of developer who likes to hack around, Python for S60 runtime is open source, so you can spend your days and nights hunting bugs, adding new features and creating your own version of it!
First part of this article: Which technology should I use for development? Round 1: Java
Second part of this article: Which technology should I use for development? Round 2: C++
Technology: Python for S60
Good for:
Why?
Bad for:
Why?
Python brings back the fun of hacking your device the way you want, with just a few lines of code. It's also a powerful tool for fast development of applications and utilities, besides being ideal for rapid prototyping of more complex software. The learning curve is smooth, the API set is big, and the support of open source community gives it a large set of libraries you can use in your application. As it's still in an incipient phase in the mobile software development, you can use it and contribute for its evolution in the next releases, making it a sweet platform for innovation on S60.
If you are interested in learning more, there's a ton of resources on PyS60 in Forum Nokia web site and also in its wiki page. For impatient people who can't wait to try it, I have posted a few months back a complete presentation on how to get started with Python, along with a collection of sample source code; both can be found here.
Happy hacking!
<a href="http://technorati.com/claim/ymg32hejh6" rel="me">Technorati Profile</a>
croozeus | 04/06/2008, 04:11
Just to add to this...
Forum Nokia just published an eLearning module about Python for S60.
I recommend this to all Python brothers, Here is the link
http://www.forum.nokia.com/info/sw.nokia.com/id/a5da42ca-3cc6-426f-9d98-234523fd9d75/Python_for_the_S60_Platform.html
Best Regards,
Croozeus
coultonp | 04/06/2008, 07:53
While I would agree with much of your post I wouldn’t agree that Python is a good platform for games and I haven’t seen a good game developed in it despite having access to OpenGLES as the interpreter doesn’t seem to handle the intensity required for long periods. I wouldn’t agree either that it compares well for casual games as at the end of the day they need to be distributed and there are much better casual platforms.
svdwal | 04/06/2008, 13:41
If an API is not available in Java, no amount of Rapid Prototyping in Python will reveal this problem. This makes Pyton a good RP language for Python and C++, but not for Java.
dcrocha | 05/06/2008, 01:03
Hi all, thanks for the comments!
@svdwal: Agreed, but I wouldn't exclude Python as and RP language for Java entirely. For example, for prototyping Bluetooth, File system-accessing, network, location apps, it's still very valid (IMHO) since those APIs are easier to use than in Java ME.
@coulton: Good points. About the distribution, Flash Lite in theory is better, but what we're seeing is that fragmentation is getting there as well. By 'casual' I meant "not long running / not complex" games. I was thinking more of promotional games with a very short lifecycle (for Nokia Trends events for example) but this is a case-by-case analysis I think.
I'm a software engineer with 10 years experience in application development, having worked with Web (Perl, PHP, JavaScript, JSP, Servlets, Flash, ASP), Enterprise (Java EE) and Mobile software (Symbian C++, Java ME, Flash Lite, Python). Currently working as Forum Nokia Technology Expert with many exciting technologies.
Check my blog for more articles and funny stuff: http://rawsocket.org
RDF Facets:
qfnZtopicQUqfnBlogTopicZgeneralQ
qfnZtopicQUqfnTopicZbusinessE5fopportunitiesE5fservicesQ
qfnZtopicQUqfnTopicZentertainmentQ
qfnZtopicQUqfnTopicZgamesQ
qfnZtopicQUqfnTopicZlocationQ
qfnZtopicQUqfnTopicZpythonQ
qfnZtopicQUqfnTopicZseriesE5f60Q
qfnZtypeQUqfnTypeZBlogContentQ
qfnZtypeQUqfnTypeZBlogE45ntryQ
qfnZtypeQUqfnTypeZCommunityContentQ
qfnZtypeQUqfnTypeZWebpageQ
qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX
Re: Which technology should I use? Round 3: Python
bogdan.galiceanu | 04/06/2008, 03:24
Excellent post. Been looking forward to this one.