Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. See the FAQ for more information.

This is a community wiki for IDEs available on Ubuntu. Please post one IDE per answer (including more than just a screenshot or a link, please at least put a short description).

In your answer, tell us what the IDE is for (which language(s) or if it is RAD capable).

share|improve this question

closed as too broad by Seth, Eric Carvalho, Braiam, BuZZ-dEE, Lucio Jan 19 at 1:22

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

8  
This seems like an overly broad topic. My answer would be: Software Center > Development –  Marco Ceppi Jun 12 '11 at 4:46
2  
@Marco Ceppi: Some IDEs like Val(a)IDE are not available in Software Center. Also, here people can tell pros and cons about their favorite software. –  kv1dr Jun 12 '11 at 10:27
    
@Marco Ceppi this is why I asked for it to be a community wiki :) –  RolandiXor Jun 12 '11 at 12:41
9  
Just because it's a CW doesn't make it a good question. I'll wait for the rest of the community to weigh in. Possible Duplicate –  Marco Ceppi Jun 12 '11 at 12:54
7  
That's not a duplicate. He asked for something that can do python, this is (yes broad in terms of any language) - but then to be fair we would have to delete the list of indicators too. –  RolandiXor Jun 12 '11 at 18:52

24 Answers 24

up vote 42 down vote accepted

Geany Install geany

[Geany] is a text editor using the GTK2 toolkit with basic features of an integrated development environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many filetypes and has some nice features. My favorite so far.

Supported File Types

enter image description here

share|improve this answer
1  
Does it have syntax checking? Code auto-completion? Why has it been accepted as best answer? This is a community wiki, it doesn't make sense to put Geany as the best editor just because the author thought so. It's just an (his) opinion. –  jmendeth Aug 19 '12 at 17:31
    
Besides, the community voted Netbeans more than Geany. –  jmendeth Aug 19 '12 at 17:33

Eclipse Install eclipse

I am surprised that no one mentioned Eclipse. Personally, I use it for Java, C and python.

Quoting from wikipedia:

It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R. Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. It can also be used to develop packages for the software Mathematica. The IDE is often called Eclipse ADT (Ada Development Toolkit) for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP.

Eclipse 3.6

share|improve this answer
7  
Eclipse is recommended and supported for Android development. –  bgvaughan Jun 12 '11 at 12:10
    
I use Eclipse for Java/Swing development. I use it for Ruby on Rails and Wordpress Development. And I use it to create small C programs as well. And of course I use it for Android development as well. Nothing beats Eclipse, whether you are on Windows, Mac, or Linux. Eclipse blows everything else out of the water. –  JohnMerlino Jun 28 at 19:30

Netbeans Install netbeans

The latest version is Netbeans 7.2.1

netbeans

enter image description here

It supports quite a few languages, web services and databases. RAD is definitely supported for Swing components. Just gotta draw the boxes required and then double click on a segment to write its code. The interface is easy to use and is pretty intuitive. Nothing that puzzles you or anything. Also there are a lotta plugins you can choose from too. It's a power-packed IDE and it's more fun when you use it. Loads of cool features which you just can't type it out, but have to try it out to experience the fun :)

Supported Tecnologies:

Java EE 6, Java EE 5 and J2EE 1.4
Java ME SDK 3.0
Java Card 3 SDK
Struts 1.3.8
Spring 3.0, 2.5
Hibernate 3.2.5
Java API for RESTful Web Services (JAX-RS) 1.1
Java Wireless Toolkit 2.5.2 for CLDC
Issue Tracking
    Bugzilla 3.4 and earlier
    Jira 3.4 and earlier
C/C++/Fortran



PHP 5.3, 5.2, 5.1
Groovy 1.6.4
Grails 1.1
Apache Ant 1.8.1
Apache Maven 2.2.1 or later
VCS
    CVS: 1.11.x, 1.12.x
    Subversion: 1.5.x, 1.6.x
    Mercurial: 1.5
    ClearCase V7.0
    Git 1.7.х

Tested application servers:

GlassFish Server Open Source Edition 3.1
WebLogic 11g PS3 (10.3.4)

Known to run application servers:

GlassFish Enterprise Server v2.1.1
Tomcat 7.0.11
JBoss 6.0
share|improve this answer
    
I hated netbeans at college :D... but that's cause we were doing JSP. –  RolandiXor Jun 12 '11 at 2:17
    
lol ironically, JSP was the one thing that actually introduced me to Netbeans and I started loving it :P –  nitstorm Jun 12 '11 at 2:21
5  
I used to think NetBeans was okay until they announced they were dropping support for Ruby and Rails. There is also the problem where it is pretty much the most memory hungry application on earth... ;] –  Nathan Kleyn Jun 16 '11 at 19:47
3  
Netbeans is a great IDE... Only problem is that it uses a bit too much resources for me. –  TreefrogInc Jul 6 '11 at 21:10
    
I never used Netbeans, but why would you, when you have Eclipse? –  JohnMerlino Jun 28 at 19:35

GVim Install vim-gnome

For any languages (C, C++, C#, Python, Java, makefiles, bash, perl, html, javascript, asm, php, ruby, erb, fstab, passwd, most system config files, and much more, practically anything you want, I've yet find a need to download extra syntax highlighting plugins); available on most platforms on earth (Linux, Mac, Windows, Android, Unix, etc).

GVim is a very configurable text editor with a unique and very powerful editing capabilities. The idea of being in command mode by default instead of insert mode and the mnemonic keybindings might take some getting used to for people coming from other IDE/editors, but once you get used to it, they allow you to edit text at the speed of thought. It is an editor optimized for touch typist as all functionalities are available via keyboard (there are mouse support for those still learning the ropes, but keyboard are much faster).

GVim comes with a clean, no nonsense interface by default (unlike most IDEs featured in here, GVim loads in seconds, not minutes), although with a little configuration you can turn it into anything you want it to be as GVim comes with a wealth of plugins and customization options written in VimScript or Python.

There is a terminal version as well, vim, which works mostly the same but inside a Terminal.

Screenshots:

GVim's default interface; clean, zero nonsense:

enter image description here

GVim with two tabs open, with a tree file explorer plugin on the left and editing a Django (python) file on the right:

enter image description here

Vim running inside Gnome Terminal, showing the diff of two C++ files:

enter image description here

share|improve this answer
4  
It does have quite a learning curve however. My first encounter with it was a shock; an editor that does not allow you to edit! I have since discovered the 'i' key but more importantly the :wq keys. I have since gladly moved on to emacs with which I am much happier. –  haziz May 4 '12 at 17:27
1  
An advantage of vim is that it is portable for both Linux and Windows. –  pablofiumara Nov 6 '13 at 12:47
2  
"Clean, zero nonsense". OK. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ –  mmyers Apr 24 at 22:35
1  
The only time I would ever use VIM is when logged into a server via ssh. But as an IDE? Are you kidding me? –  JohnMerlino Jun 28 at 19:32
    
@haziz All editor has advantages and disadvantages. The issues you have written is a consequence of that Vim is a modal editor: it has several modes. The modality makes is possible to do complex things without difficult (e.g. Ctrl+Shift+something) key combinations. Emacs and Vim both are good editors. I use Vim almost every day, and I like it more and more. –  Arpad Horvath Jul 28 at 12:13

gedit Install gedit

You have a symbol browser and autocompletion.

enter image description here

share|improve this answer
10  
Gedit has autocompletion? How do you use this? –  Callum Rogers Jun 12 '11 at 11:52
18  
please post a "how to make gedit an ide" guide. –  db42 Jun 12 '11 at 12:18
3  
@Callum Rogers it does have autocompletion, but I've never figured out what makes it tick. –  RolandiXor Jun 12 '11 at 12:42
2  
Autocompletion is enabled through Snippets (Tools menu) –  MickTaiwan Jun 14 '11 at 18:03
1  
I only use Gedit when working with code. What's nice about it is not only its simplicity, but also the fact that it comes preinstalled by default. –  WarriorIng64 Oct 16 '11 at 18:55

Qt Creator Install qtcreator

An IDE for developing cross-platform graphical C++ applications using the Qt Framework. A screenshot of the main window can be seen below. All the expected features of an IDE can be found in Qt Creator including, but not restricted to, auto-completion, code-wrapping, class browser, etc. The big advantage of using Qt Creator over another IDE or text editor when working on a Qt project is the built-in GUI editor, Qt Designer, that can be used to rapidly produce UIs in a fraction of the time it would take to type the code by hand. Qt Creator also includes support for various version control systems, including Git.

Qt Creator main window

Qt Designer come both as a standalone editor and build into Qt Creator. GUI design with Qt Designer is done simply by dragging and dropping the UI element from the right-hand column onto the canvas in the middle, and the left-hand column contains the properties of each object. In the screenshot below, I have dragged a few buttons onto the canvas for illustrative purposes.

Qt Designer with a few buttons

There are a few other official Qt applications that can be used when building Qt apps, either with or without Qt Creator. Qt Linguist is a tool for easily translation Qt apps into other languages. When writing the source code in Qt creator, the programmer would write a user-facing string of text like so

tr ("My String")

This marks the text as requiring translation. (NB: it is good practice to include these markers even if you don't intend to translate it yourself). Qt Linguist would then look for these markers and present a UI, similar to Launchpad's translation tools, where the translator can enter the translated string for each language into a text entry field and call the string translated. A screenshot of Qt Linguist being used to translate an application into Polish can be seen below.

Qt Linguist being used to translate an application into Polish

Finally, there is Qt Assistant, which contains all the documentation and reference material required to get the most out of the Qt application suite. If you're ever used Devhelp, from the Ubuntu Software Centre and where all the documentation for developing on Ubuntu can be found, then you'll already know what to expect from this. If you need to know what a particular class does, just search for it's name in Qt Assistant and you'll be taken straight to the reference page. If you want to know more about using any of the above Qt applications, user manuals for all of them can be found in here. All the documentation is stored locally so Qt Assistant can be used without an internet connection.

As with any language, framework or toolset, it is entirely possible to develop using the provided libraries without using a specialised development environment, such as those mentioned above. It's also possible to buy your own milking cow and head out with a bucket every morning at 6am, rather than heading down to the store and buying a carton that will last a week. A developer's time is a precious resource - use it wisely by using the right tools for the right job. These tools are developed by Nokia, the developers of the Qt Framework and are, as such, the best possible tools for developing Qt apps (actually, they may be the only tools).

If you want to develop a Qt app, go into the Ubuntu Software Centre, search for 'qt', and download everything with the little green Qt logo next to it.

More information on Qt can be found at the Qt Developer Centre, while more information on the tools themselves can be found here.

share|improve this answer
    
Can you write this in the qt-creator tag wiki? –  Braiam May 18 at 16:49
    
Qt is designed for C++ projects using the Qt framework. If you are not using it, then it's useless for Java, Ruby and C development. –  JohnMerlino Jun 28 at 19:34
    
@JohnMerlino You can use QtCreator for C++ projects without Qt framework –  becko Aug 14 at 16:00

Sublime Text

Sublime Text 2 is a simple, faster Editor available in all major platforms (linux, Windows, Mac)

Sublime Text is a sophisticated text editor for code, html and prose. You'll love the slick user interface and extraordinary features.

Some noted features :

  • Minimap: see your code from 10,000 feet
  • Full screen mode: use all your pixels, all the time
  • Multiple selections: Simplify many tasks that used to require macros or regular expression
  • Asynchronous file loading, so you're never blocked when loading files off slow network drives
  • Syntax highlighting for many languages with C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile and XML supported out of the box, and more available for download
  • Multiple color schemes, with several included, and many more available for download
  • Side by side multi-pane editing
  • Fully customizable key bindings, menus and toolbar

Plus many other features.

Linux

enter image description here

Windows

enter image description here

enter image description here


NOTE: Although its not a free editor, You will get an unlimited evaluation for free. There is also a PPA for easier updates and integration, the tutorial can be found here (Thanks @Andrei for the link)

http://webupd8.org/2011/03/sublime-text-2-ubuntu-ppa.html

share|improve this answer
2  
By the way, for easier updates and integration, there's a PPA (it works like Adobe Flash - downloads the updates from the official website): webupd8.org/2011/03/sublime-text-2-ubuntu-ppa.html –  Alin Andrei Nov 9 '11 at 13:47
    
Sublime Text is a paid product. And the nagware hits you hard while you are using it. It is very fast, much faster than Eclipse but it lacks a lot of the capabilities of Eclipse. –  JohnMerlino Jun 28 at 19:35

Code::Blocks Install codeblocks

Code::Blocks is the open-source, cross-platform Integrated Development Environment (IDE). It is based on a self-developed plugin framework allowing unlimited extensibility. Most of its functionality is already provided by plugins. Plugins included in the base package are:

  • Compiler frontend to many free compilers

  • Debugger frontend for GDB (and CDB for windows platforms)

  • Source formatter (based on AStyle)

  • Wizard to create new C++ classes

  • Code-completion / symbols-browser (work in progress)

  • Default MIME handler

  • Wizard to create new Code::Blocks plugins

  • To-do list

  • Extensible wizard based on scripts

  • Autosave (saves your work in the unfortunate case of a crash)

enter image description here

Currently, Code::Blocks is oriented towards C and C++. It can also be used for creating ARM, AVR, D, DirectX, FLTK, GLFW, GLUT, GTK+, Irrlicht, Lightfeather, MATLAB, Ogre, OpenGL, Qt 4, SDL, SFML, STL, SmartWin and wx programs and applications. Although, in some cases, the respective SDK of framework installation is required for development on a specific technology.

share|improve this answer

emacs Install emacs

  1. It is a text editor which is designed to be used without moving your hand away from the letters section of the keyboard.
  2. It has the ability to open and close several text file side by side.
  3. It is highly configurable (though it requires some patience to learn how to configure)
  4. Most of the crucial features of ide are included into emacs (autocomplete, precompiling, syntax highlighting etc.)
  5. It is fully functional both from terminal and gui envrionment
  6. It has a built in easy to follow documentation

I never tried to develop any gui-app with emacs but for command line programming it is a killer.

enter image description here

share|improve this answer

IntelliJ IDEA

They have a community (free) and a paid version. You can have your git system included in this IDE's menus, and there are lots of nice features that make it an industrial strength code tool for any programming jobs. A fantastic IDE for developing in JavaScript.

enter image description here

share|improve this answer

MonoDevelop Install monodevelop

MonoDevelop is the main IDE for Mono (.Net) development on Linux, but it also works on OS X and Windows in recent versions. The focus is on C#, Vala and Java (via IKVM.Net) but other languages are supported. It includes debugging, code completion, nUnit unit testing and a framework for more plugins, as well as built-in support for Subversion and Git VCS.

More screenshots can be found here

enter image description here

Feature Highlights

  • Multi-platform Supports Linux, Windows and Mac OSX.
  • Advanced Text Editing Code completion support for C# 3, code templates, code folding.
  • Configurable workbench Fully customizable window layouts, user defined key bindings, external tools
  • Multiple language support C#, Visual Basic.Net, C/C++, Vala
  • Integrated Debugger For debugging Mono and native applications
  • GTK# Visual Designer Easily build GTK# applications
  • ASP.NET Create web projects with full code completion support and test on XSP, the Mono web server.
  • Other tools Source control, makefile integration, unit testing, packaging and deployment, localization

Useful feature of the C/C++ compiler in MD is the way C++ packages are managed like .net resources, so library configuration is a doddle.

share|improve this answer
    
Mono was a community project, mainly out of Novell for a while. Microsoft didn't invent Mono. And no, no-one in Linux uses Mono. Especially not media players (Banshee), note taking apps (Tomboy), launchers (Gnome Do), photo management (F-Spot), cross-platform games (Bastion and more using MonoGame), file-sync alternatives to Dropbox (Sparkle Share) or anything else. –  IBBoard Jun 29 at 17:38

RStudio

A good IDE for R.

RStudio pulls all graphics, console, and scripts together into one window and adds a useful frame for keeping track of datasets and objects. One great feature is that plots are stacked so that you can review and even manipulate prior plots.

It's cross platform and can even be run on a Linux server and accessed via a browser.

enter image description here

share|improve this answer

CodeLite


this IDE is relatively young but has evolved amazingly quick to become a very stable IDE for c++ development, with a surprisingly reliable autocompletion feature

share|improve this answer

Aptana Studio

Based on Eclipse but geared more towards web-development. Includes support for all the languages supported by Eclipse.

(I'll expand on this short post soon)

share|improve this answer

Val(a)IDE

An IDE for developing in vala. It's not available in repository, but the PPA exists. https://launchpad.net/~vala-team/+archive/ppa

Val(a)IDE

share|improve this answer

Anjuta Install Anjuta

Anjuta is an integrated development environment for the C, C++, Java, JavaScript, Python and Vala computer programming languages, written for the GNOME project.

Anjuta DevStudio is a versatile software development studio featuring a number of advanced programming facilities including project management, application wizard, interactive debugger, source editor, version control, GUI designer, profiler and many more tools. It focuses on providing simple and usable user interface, yet powerful for efficient development.

enter image description here

share|improve this answer

ERIC Python IDE Install Eric

Eric is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everdays' quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net.

Current stable versions are eric4 based on Qt4 and Python 2 and eric5 based on Python 3 and Qt4.

ERIC IDE screenshot

share|improve this answer

KDevelop

KDevelop is an IDE that allows you to develop applications in different languages.

KDevelop 4.3 has decent support for C++11.

share|improve this answer

Nano

Nano is a minimalistic text editor you can run from your terminal. It comes installed by default.

Nano screenshot

For syntax highlighting, try looking at How do I enable syntax highlighting in nano? or this Ubuntu Forums post.

share|improve this answer
1  
Nano is terrible. No one uses this. –  JohnMerlino Jun 28 at 19:37
    
@JohnMerlino Nano is the Gedit of CLI text editors. It's good for quickly making a couple changes in the terminal and not have to worry about how to quit it afterwards. –  WarriorIng64 Jun 30 at 13:15

Kate

Kate's a simple IDE with a plugin structure that allows easy development on KDE desktops.

enter image description here

share|improve this answer

Scintilla

Scintilla is a free source code editing component. It comes with complete source code and a license that permits use in any free project or commercial product.

As well as features found in standard text editing components, Scintilla includes features especially useful when editing and debugging source code. These include support for syntax styling, error indicators, code completion and call tips. The selection margin can contain markers like those used in debuggers to indicate breakpoints and the current line. Styling choices are more open than with many editors, allowing the use of proportional fonts, bold and italics, multiple foreground and background colours and multiple fonts.

SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs. It is best used for jobs with simple configurations - I use it for building test and demonstration programs as well as SciTE and Scintilla, themselves.

Development of Scintilla started as an effort to improve the text editor in PythonWin. After being frustrated by problems in the Richedit control used by PythonWin, it looked like the best way forward was to write a new edit control. The biggest problem with Richedit and other similar controls is that they treat styling changes as important persistent changes to the document so they are saved into the undo stack and set the document's dirty flag. For source code, styling should not be persisted as it can be mechanically recreated.

Scintilla and SciTE are currently available for Intel Win32 and Linux compatible operating systems with GTK+. They have been run on Windows XP, Windows 7, and on Ubuntu 10.10 with GTK+ 2.20.enter image description here

share|improve this answer

If you like vim, you might also try using abominade, which uses gvim under the hood:

abominade editor editing abominade

It has an embedded gvim editor, a clever tabbed terminal pane that lets you right-click and open filenames, a file explorer, and it brings the buffers list to the forefront so you can keep straight many open files at once. You can also use any vim splits or extra tabs you like.

To install it in Ubuntu, just do

$ sudo apt-get install vim-gtk python-gtk2 python-vte \
    python-dbus python-pip python-dev
$ sudo pip install a8
share|improve this answer

JS Studio

JS Studio is a Qt-based cross-platform IDE for developing JavaScript-based web applications.

Screenshot of main window

JS Studio is designed to be a fully-featured IDE for developing web applications with a focus on interactive JavaScript-based apps. Here are some of the features currently available:

  • Syntax highlighting for some common languages (JS, Python, HTML, and CSS)
  • Project management (add / remove / rename files)
  • Interface can be fully extended / modified by JavaScript addons (includes addon manager)

You can install the application (from its PPA) using these commands:

sudo apt-add-repository ppa:george-edison55/george-edison
sudo apt-get update ; sudo apt-get install jsstudio

Disclaimer: I am the lead maintainer and programmer for this project.

share|improve this answer

There are lot of great IDEs available in Linux for every progrmaming languages. c,c++ - Anjutha QT - KDevelop, QT Designer Java,Android - Eclipse, Netbeans PHP - Komodo Edit, Geany HTMl - BlueFish and more Take a look at http://ranjith.zfs.in/php-ides-in-linux-for-web-programming-fedora-and-ubuntu/

share|improve this answer
3  
As this is a community wiki, can you please split up your answer into individual entries (but only for the ones that have not been mentioned already). –  RolandiXor Jun 14 '11 at 14:20

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