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.

  • 2
    Java is well known, runs well on Linux and has plenty of libraries.
    – maple_shaft
    Dec 14, 2011 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? Dec 14, 2011 at 20:21
  • You can also have a look at: tidesdk.org
    – matcauthon
    Jul 30, 2013 at 9:19

5 Answers 5


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.

  • Thanks a lot for the links. I figure that Quickly is the way to go for me..
    – Roshnal
    Dec 15, 2011 at 17:02

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.

  • +1 for applications. +1 for c. +1 for .... wait I ran out of 1's Dec 15, 2011 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, 2011 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, 2011 at 17:26

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


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.

  • I have edited my question. Thanks for the tips! But please see the question again..
    – Roshnal
    Dec 15, 2011 at 10:33

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.

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