Reply
Thread Tools
Posts: 3 | Thanked: 4 times | Joined on Dec 2009 @ Linköping, Sweden
#31
To learn basic programming concepts I would recommend Python. It's easy to get started with and you don't have to care about the nitty gritty details. I can wholeheartedly recommend the free book Think Python, which teaches you programming from the ground up. After you have read through and understood the contents of that book, you will know all the basics of programming. The journey of learning doesn't end there though. It takes a long time to become a decent programmer, so you have to keep at it!

If you want to write apps for the N900 I would also recommend Python. Just keep in mind that performance is an issue on small devices. Personally, I wouldn't use anything but C++ for "real" N900 apps because of CPU and memory concerns.
 

The Following 3 Users Say Thank You to ChristofferC For This Useful Post:
Posts: 3,319 | Thanked: 5,610 times | Joined on Aug 2008 @ Finland
#32
Just a slight note - Python is not as slow as you might think, but it requires more 'planning' on how you do stuff if you run into speed limits. Also, what has not been mentioned here, it's fairly easy to mix C++ and Python, so you can replace the more intensive functions with C++ code, minimizing speed differences.

PS. and to correct the statement from a few posts above - PyQt apps require the same amount of root space as regular Qt apps do, no disadvantage there.
__________________
Blogging about mobile linux - The Penguin Moves!
Maintainer of PyQt (see introduction and docs), AppWatch, QuickBrownFox, etc
 

The Following 3 Users Say Thank You to attila77 For This Useful Post:
noobmonkey's Avatar
Posts: 3,203 | Thanked: 1,391 times | Joined on Nov 2009 @ Worthing, England
#33
have to admit, learning from scratch PyQT has been brilliant for me, picked it up and got it working in 30 mins.... Taken a month or so to get my first app workable, havn't found any major problems yet

Only just started using a few ctypes, works ok - but again i have no knowledge in that area
__________________
----------- Follow me on Twitter here
----------- My Photography Website and Blog is here
----------- Author of the N900 Health Check Application ----------- New Version in Extras Devel (Dec 2010 - 2.9.10)
----------- Are you on the N900 World Map? - http://pininthemap.com/maemo - masterpin: shotgun
----------- What apps do you want to see on the n900 or in MeeGo in the future? -
 

The Following 2 Users Say Thank You to noobmonkey For This Useful Post:
efekt's Avatar
Posts: 422 | Thanked: 320 times | Joined on Oct 2009 @ Israel
#34
I find it easier to start with C and then advance into C++. I think that if you can do stuff in C, you can definitely find it easier to learn other programming languages, such as C++ or even Java (but not Assembly ).
C is a very good basis. Making the first steps into programming with an OO language, IMHO, could be very confusing - and sometimes could even lead to acquiring some very bad programming habits.
 
Posts: 3,319 | Thanked: 5,610 times | Joined on Aug 2008 @ Finland
#35
Originally Posted by efekt View Post
I find it easier to start with C and then advance into C++. I think that if you can do stuff in C, you can definitely find it easier to learn other programming languages, such as C++ or even Java (but not Assembly ).
C is a very good basis. Making the first steps into programming with an OO language, IMHO, could be very confusing - and sometimes could even lead to acquiring some very bad programming habits.
IMHO python to C++ is better on the long run. With C you're missing out on Qt which is big deal in Maemo, with python you're making future proof GUI apps in minutes. Plus, there is simply no excuse for people to futz with malloc's and char*-s in 2010. As for bad habits... plenty of those acquirable from the C world, too
__________________
Blogging about mobile linux - The Penguin Moves!
Maintainer of PyQt (see introduction and docs), AppWatch, QuickBrownFox, etc
 

The Following User Says Thank You to attila77 For This Useful Post:
Posts: 44 | Thanked: 11 times | Joined on Oct 2009 @ UK, Manchester
#36
hmmm this is an interesting thread!

asking which is best c,c++,python, perl or awk is like asking a parents which of their children do they love the most.

All of these languages have their place when developing an application which is why you would really struggle to favour one over the other. In truth thats the wrong question.

what is it you are trying to do? the best apps will make best use of a mixture of lowlevel and scripting languages. This is the biggest strength of the UNIX programming operating system. This is what the founders intended.

lots can be done with shell scripting and other highlevel languages. if that suites your need then do it. Whatever you learn it will come in handy at some stage!

I can understand why everybody is raving about Qt and dont get me wrongs its all good but lots (and i mean lots ) can be done with with c and shell from the command line!
 
Posts: 3,428 | Thanked: 2,856 times | Joined on Jul 2008
#37
Originally Posted by attila77 View Post
PS. and to correct the statement from a few posts above - PyQt apps require the same amount of root space as regular Qt apps do, no disadvantage there.
I'm pretty sure when I made that comment they were non-optified...

But in any case, correct: There really isn't a negative to PyQt4 apps anymore except that they *do* take a little more resources than the same app coded in C++.

On topic, I personally (opinion, not fact) still am of the mindset that critical, system apps should be C++ - and the vast majority of 3rd party or just normal "apps" would be better off being PyQt4 due to portability.
__________________
If I've helped you or you use any of my packages feel free to help me out.
-----------------------------------------------------------------------------------
Maintaining:
pyRadio - Pandora Radio on your N900, N810 or N800!
 
Posts: 143 | Thanked: 99 times | Joined on Jun 2009 @ Houston
#38
I think learning C++ is the way to go. I don't think python is any easier than C++ (as an example I whipped up an app in around 4 hours, starting from scratch, knowing nothing about Qt ). And C/C++ gets you skills that are more marketable than python. Knowing C++ gets you almost all the other languages (except esoteric stuff like LISP and what not) almost for free.

Plus, I really hate the way you have to get the indentation right with python. I know the code gets pretty and so on, I'm pretty sure it's excellent, but seems to me that spending time checking whether those spaces are really spaces or tabs really bugs me (especially when you are moving between different OSes)
 
fnordianslip's Avatar
Posts: 670 | Thanked: 359 times | Joined on May 2007
#39
I much prefer C++ over C, and I prefer Python over Perl. I guess that is a case of whether you want object orientation or not, and I certainly do. When I'm writing C++ and need to use a C API, the first thing I do is wrap an OO abstraction around it.

There's a huge difference in the development philosophy/methodology with OO. I'm so used to that mindset that I don't think I could deliver anything but a trivial project in C anymore, in fact I probably couldn't even get it to compile.

If i was you I'd go for some C++ and Python. The concepts you will use are similar in both and OO code seems so much easier to understand than its non-OO counterpart.
__________________
Class .. : Lame hacker & beardy boffin
Humour . : [#######---] Alignment: Apathetic anarchist
Patience : [####------] Weapon(s): My cat, my code.
Agro ... : |#---------] Relic(s) : N900, MacBookPro, NSLU2, N800, SheevaPlug, Eee-901, Core2-Quad, PS3
"In theory, theory and practice are the same. In practice, they're not."
--
Beware of extras-devel.
 
Posts: 435 | Thanked: 197 times | Joined on Feb 2010
#40
Just out of curiousity, im not a programmer/developper at all, but all the talk here i've seen mostly only concerns the N900... I am interrested in learning to read the language, not necessary to write an app, but to understand the scripts that i am installing/running on my device. But I don't wanna start learning something that will become irrelevant in the future. What about MeeGo? Is C++ and Python writing still gonna be the exact same thing to MeeGo as writing to Maemo? What would you suggest to start getting ready on the future MeeGo platform?
 
Reply


 
Forum Jump


All times are GMT. The time now is 21:33.