Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm thinking of developing software for Ubuntu and other related Linux-based distros (like Linux Mint). But currently am at a loss for where to start.

Would learning Python be enough/good? And what are the other things I should know about before starting this kind of developing?

And will I be able to publish my apps to a software store like Ubuntu store even if I am from outside USA/UK? If not, what are the options I have to make my apps reach the audience?


As a lot of users had asked, I intend to build applications only for Linux (I'm thinking of Gnome) that will be a bit business and enterprise oriented.

Currently I am an Oracle certified Java developer in J2SE and J2ME. And I know Python a bit.

share|improve this question
2  
Java is well known, runs well on Linux and has plenty of libraries. –  maple_shaft Dec 14 '11 at 18:24
1  
What sorts of applications, and what about software development do you know already? Do you intend to sell your software or release it under an Open Source license? –  David Thornley Dec 14 '11 at 20:21
    
You can also have a look at: tidesdk.org –  matcauthon Jul 30 '13 at 9:19
add comment

closed as not constructive by gnat, Kilian Foth, Walter, GlenH7, Jalayn May 28 '13 at 12:10

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

5 Answers

up vote 4 down vote accepted

You can start with Python and Quickly which is quite easy.

Description from the Launchpad

Quickly helps you create software programs (and other things) quickly. You can select from a set of application templates and use some simple commands to create, edit code and GUI, and publish your software for others to use.

Getting started video tutorial can be found here.

share|improve this answer
    
Thanks a lot for the links. I figure that Quickly is the way to go for me.. –  Roshnal Dec 15 '11 at 17:02
add comment

1) Learn C

2) Learn ncurses

3) Write some rogue-likes

4) Profit?

Before I get cast down and burn in eternal fire, let me state that it IS, at least A place to start. It may not be the best. It may not be the newest or hippest. But by god's teeth, it's where I started. It was good enough for me, it'll be good enough for him.

Also, please stop with this "app" nonsense. We write applications here.

share|improve this answer
    
+1 for applications. +1 for c. +1 for .... wait I ran out of 1's –  James Khoury Dec 15 '11 at 1:24
    
Thanks for pointers, but I am trying to keep away from C as much as possible :) So any other advice? BTW, I have updated my question. –  Roshnal Dec 15 '11 at 10:59
    
@Roshnal Well if you know Java better, why not write in Java? You'll have to choose between testing against the official SDK or the open/free version, or both. It's good to go learn new things, but it's by and far easier to do what you know. –  Philip Dec 15 '11 at 17:26
add comment

What type of apps do you want to write?

Python + Qt can produce perfectly good gui apps on Linux

There is a conference on beginning Liunux app development with talks online

I don't know if/why Ubuntu would limit access to US/UK programmers - see the software center for details

share|improve this answer
add comment

What do you already know?... That's something that would help us provide better answers.

In any case, you'll probably have to decide on a GUI toolkit first, some questions that will help you choose:

  • Do you want your apps to run on Linux only? (no thoughts on Windows/Mac compatibility)?
  • Which desktop environment your app will favor? Gnome, KDE? (if I'm not mistaken, Gnome's Ubuntu default)

This might steer you towards GTK, for instance (the "native" Gnome toolkit).

Then you will need a language which has bindings for the toolkit you choose. Even though a toolkit might support a lot of languages, often just a few of them are "first-class citizens"- some languages will have not up-to-date bindings or even worse (less documentation, things not working, harder to build, etc.). For GTK I think C, Vala, Python are the first-class citizens.

Unless you are strange requirements, I'd pick the most higher-level language/the one you are more familiar with/etc.

It will also help if you are familiar with packaging- i.e. making .debs for Ubuntu (I think Launchpad helps a lot for hosting/building Ubuntu packages).

Finally, you should be familiar with all the technologies you'll need- not just your toolkit, but even the desktop environment's libraries, the stuff from freedesktop, etc.

share|improve this answer
    
I have edited my question. Thanks for the tips! But please see the question again.. –  Roshnal Dec 15 '11 at 10:33
add comment

Well if your target audience is just linux and you are planning for desktop apps on gnome then I would recommend Vala OR Genie. Both are very well integrated with gtk the toolkit for building gnome apps and Genie has pythonic like syntax and both language are very well documented.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.