Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just want to know if i can write GUI apps for Ubuntu using C--again, not C++. It's just that I hate having to learn a new language entirely (I know that they are similar in some ways but still). Just want to know thanks in advance.

share|improve this question
I guess this question is about the Ubuntu SDK, am I right? – Andrea Corbellini Sep 5 '13 at 18:14
@AndreaCorbellini It's tagged gnome (I didn't add that one). So unless that tag was spurious, it's probably not specifically about the Ubuntu SDK. – Eliah Kagan Sep 5 '13 at 18:28

You can develop apps for Ubuntu with just about any language. If there are particular libraries you need your app to use, then as mdpc says that's the only thing that would likely impose any restrictions. Some libraries can only be used from certain languages.

But Ubuntu apps can be developed in C, and a lot of Ubuntu softwatre is written in C, including many programs and libraries installed by default in almost every Ubuntu system.

Programs that are installed by default in Ubuntu or otherwise very popular, and are written in C, include: bash, Brasero, dash, Disks, most of the Document Viewer, Empathy, Evolution, the Eye of GNOME image viewer (src), the File Roller archive manager, GCalctool, GIMP, GNOME Terminal, LightDM, the Nautilus file browser, Pidgin (except some plugins), Rhythmbox, Seahorse (src), Totem, Upstart, and

So yes, you can definitely develop for Ubuntu in C. Many people do.

With that said, the Ubuntu SDK uses Qt. Qt has bindings for many languages but not C. So you probably cannot create programs with the Ubuntu SDK, by coding solely in C. (You could still often code most of your software in C.)

That may make it difficult to write mobile apps (for Ubuntu Touch) in just C. But there's no need to use the Ubuntu SDK for desktop apps. Many desktop apps (all but 4 apps listed above are desktop apps in the usual sense) that are packaged for and run well in Ubuntu don't use the Ubuntu SDK.

Furthermore, using the Ubuntu SDK may not be the best way to create portable apps that run well on other desktop operating systems besides Ubuntu. The Ubuntu SDK is good for many purposes, but even if it did support writing apps in C, you'd still likely not use it under a variety of circumstances.

One popular way to write GUI applications in C is to use Gtk+. There are other alternatives for GUI toolkits with C bindings, including WxWidgets (via WxC), IUP, and possibly Clutter (GObject is accessible from C but sometimes writing for its object model--or any object model--is difficult in C).

share|improve this answer
Simple answer .... YES you can. – mdpc Sep 7 '13 at 18:13

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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