Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Python for mobile development?
Index -> Programming, Python -> Python Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
mirhagk




PostPosted: Tue Oct 30, 2012 11:13 am   Post subject: Python for mobile development?

Hello all,

At my university we are doing a mobile development club. We wanted to make a cross-platform game, and we also wanted to target a market not already completely saturated (ie windows phone, blackberry or even android to an extent). As such we choose to use C# and mono to cross compile to every mobile OS.

However very few people have any C# experience, so it'd require teaching everyone another language on top of the ones they are already learning, which I think is just a bonus, but it may confuse some students. We are learning python in one class, so one of the profs suggested using Python for development (with IronPython compiling to .net).

My question is, with all the downsides of using python is it really worth it? The biggest downsides I see are:

-python is a memory hog, phones don't have a lot of memory
-python is much slower, which while irrelevant on regular machines and servers, is a big deal on phones
-python uses dynamic compilation, which is against apples ToS for iOS (and not supported by monoTouch). It should work on android and windows phone fine however (both encourage use of different languages, and support JIT compiling)
-python is not well supported (will be VERY hard to get any help when things go wrong, compared to widely supported C#)
-python is hard to manage with multiple people/large projects, especially compared to C# (friggen tabs and spaces)
-the libraries we'd be using for drawing (monogame/xna which is cross-platform and easy to use) is well defined with C#
-I already have tons of C# code written that would work great for games (including a library I am currently working on), with python we'd have to start completely from scratch.

The biggest benefit is that people don't have to learn a new language (and actually get help/experience with the language they are working on). Is it worth the downsides in your opinions?
Sponsor
Sponsor
Sponsor
sponsor
[Gandalf]




PostPosted: Tue Oct 30, 2012 6:03 pm   Post subject: RE:Python for mobile development?

Python is a memory hog, and can be slow but... You'll be using IronPython which runs very differently. Unfortunately, it seems that IronPython is slower than CPython (http://ironpython.codeplex.com/wikipage?title=IP27A1VsCPy27Perf&referringTitle=IronPython%20Performance).

I would hardly say getting help in Python is "very hard", although the same might not be true for any IronPython on Windows Phone issues.

I also wouldn't really say Python is any worse for large projects... In fact, because of the more rigid syntax guidelines, it makes code organization easier in some ways.

The biggest issue you would face is getting mobile IronPython documentation for whatever frameworks you'll be using. The framework is most important actually.
mirhagk




PostPosted: Tue Oct 30, 2012 9:55 pm   Post subject: RE:Python for mobile development?

Yeah the help we'd be needing most of the time would be specific to using frameworks on windows phone, stuff like XNA and the windows phone libraries.

We've taken a vote and most people are pro-learning a new language (especially a language that is used commonly in business applications). The downsides far outwieghed any potential benefits, the biggest downside was of course the fact that it'd be hard to find any specific help, and make managing the libraries that much more difficult.
Display posts from previous:   
   Index -> Programming, Python -> Python Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 3 Posts ]
Jump to:   


Style:  
Search: