Application Development

C++

Compiling C++ programs requires extra packages that are not installed by default.

There are many tools available for C++ developers. People interested in developing graphical applications will find that graphical toolkits or platforms make development more convenient. The two most popular development platforms for Ubuntu and Kubuntu are “GTK/GNOME” and “Qt/KDE”, each of which has its own set of tools and documentation.

The following is a list of the tools available in Kubuntu that can be used to develop C++ applications:

Tools

KDevelop

An easy-to-use integrated development environment (IDE) for KDE. It supports a wide range of programming languages and features project management, an advanced editor, a class browser and an integrated debugger.

Qt Creator

A new, lightweight, cross-platform integrated development environment (IDE) designed to make development with the Qt application framework fast and easy.

Eclipse

An open and extensible platform for anything, yet nothing exclusively. It provides a foundation for constructing and running integrated software-development tools. The Eclipse Platform allows tool builders to develop tools independently that integrate with other tools so seamlessly that it is hard to tell where one tool ends and another starts.

Text editors

Text editors in the Linux world are abundant, including: Emacs, Vim, Kate, and more. Most experienced software developers use a text editor instead of an integrated development environment, because they believe that it doesn't get in their way.

The following is a list of tutorials regarding C++ development (search the Internet for more tutorials):

Tutorials

Python

Just about everything needed to get started developing a Python application is available in Kubuntu.

The following available tools in Kubuntu are helpful for developing Python applications:

Tools

Eric

A full-featured Python IDE written in PyQt using the QScintilla editor widget.

Idle

An Integrated Development Environment for Python. IDLE is written using Tkinter, so it is highly platform-independent.

Text editors

Text editors in the Linux world are abundant, including: Emacs, Vim, Kate, and more. Most experienced software developers use a text editor instead of an integrated development environment, because they believe that it doesn't get in their way.

The following is a small list of tutorials regarding Python development (search the Internet for more tutorials):

Tutorials

Graphical User Interface Toolkits

A graphical user interface toolkit is a set of widgets used in the creation of applications which use a graphical user interface. Notable toolkits in the Linux world include:

  • Qt - pronounced “cute”, is a cross-platform application development framework used mainly for the development of GUI applications. It is produced by Nokia and is one of the foundations of KDE development.

  • GTK - the GIMP Toolkit is a highly usable, feature-rich toolkit for creating graphical user interfaces which boasts cross-platform compatibility. It is one of the foundations of GNOME development.

Both of these toolkits include bindings to languages such as C/C++, Python, Ruby, C#, and more.

Qt

According to the Qt web site, Qt is everything needed to create web-enabled desktop, mobile and embedded applications, and has the motto, “Code less. Create more. Deploy everywhere.” One of the notable aspects of Qt is that it is used as the foundation of KDE applications.

Qt is largely a C++ class library, although there are bindings for Java and Python as well. Besides the libraries, Qt also has a complete set of tools for Qt development, an amazing set of API documentation, as well as many tutorials.

Tools

Qt Creator

Mentioned above.

Qt Designer

An application that provides classes that allow for the creation of custom widget plugins for Qt Designer, and classes that enable access to Qt Designer's components.

Qt Assistant

An application which provides online help for everything Qt.

Qt Developer Tools

Tools used to assist in Qt 4 development, including the Qt Assistant, Linguist, D-Bus Viewer and Pixel Tool applications.