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).

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.

@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.
–
kv1drJun 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

[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.

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.
–
jmendethAug 19 '12 at 17:31

Besides, the community voted Netbeans more than Geany.
–
jmendethAug 19 '12 at 17:33

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.

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.
–
JohnMerlinoJun 28 '14 at 19:30

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 :)

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
–
nitstormJun 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 KleynJun 16 '11 at 19:47

3

Netbeans is a great IDE... Only problem is that it uses a bit too much resources for me.
–
TreefrogIncJul 6 '11 at 21:10

I never used Netbeans, but why would you, when you have Eclipse?
–
JohnMerlinoJun 28 '14 at 19:35

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.

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.
–
hazizMay 4 '12 at 17:27

1

An advantage of vim is that it is portable for both Linux and Windows.
–
pablofiumaraNov 6 '13 at 12:47

The only time I would ever use VIM is when logged into a server via ssh. But as an IDE? Are you kidding me?
–
JohnMerlinoJun 28 '14 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 HorvathJul 28 '14 at 12:13

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 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.

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.

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.

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

Windows

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)

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.
–
JohnMerlinoJun 28 '14 at 19:35

@YehonatanTsirolnik I'm actually learning to use vim this day. It's major advantage is the less keystroke per command. On a side note, my daughter has a boy named Yehonatan in her kindergarten, I assume it isn't you. Trolling replay
–
YotamNov 6 '14 at 7:40

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)

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.

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.

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.

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.

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.

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

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.

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.