42

I have been developing in the windows space with Visual Studio for a while now with work, but I have also been using Ubuntu for a while and am keen to get into some software development for linux.

I should also note. I am not looking for .NET and I am aware of mono. I am also familiar with c++ development and some python, so the language isn't so much relevant as the "all in one" aspect.

I was interested to know if there is a useful all in one code/debug/design(gui) IDE similar to something like Visual Studio but for linux?

6
  • I should also note. I am not looking for .NET and I am aware of mono. I am also familiar with c++ development and some python, so the language isn't so much relevant as the "all in one" aspect
    – Tim
    Oct 12, 2010 at 22:03
  • 2
    You should edit this information into your original question.
    – user2405
    Oct 12, 2010 at 22:51
  • While IDEs are great at increasing software development productivity, I recommend that you educate yourself at least somewhat about more “traditional“, command-line based software development tools of the *nix world like gcc/g++, make, autoconf, etc., since a large share of *nix software projects rely on them and those fancy IDEs just provide a more convenient interface for them. Nov 5, 2014 at 19:49
  • I also think this question should probably be part of the community wiki. Nov 5, 2014 at 19:55
  • I know that it doesn't cover your question completely but there is an answer here as well: programmers.stackexchange.com/questions/125796/… Nov 24, 2014 at 15:50

18 Answers 18

38

In your comment you said you were more concerned about the "all in one" aspect, however if you want the best possible experience I think it's important to choose the right tool.

C++/Qt:
Qt Creator: A cross-platform integrated development environment (IDE) tailored to the needs of Qt developers. (I would recommend this option if you plan to be programming in C++).

enter image description here


Java:
Eclipse: This is pretty much the de facto Java IDE.

enter image description here


C#/.NET:
Mono: MonoDevelop is an IDE primarily designed for C# and other .NET languages.

enter image description here


My personal "IDE" is Gedit. It is minimal (similar to Notepad++ on Windows), but it gets the job done. It also supports plugins which can basically make it a true IDE. It supports most languages including C/C++, Java, C#, Python, Ruby, PHP, HTML, etc.

enter image description here


If you're using KDE as your desktop enviroment and don't want to run Gedit, you could also try Kate.

enter image description here

3
  • Thanks Lucas, I have used Gedit for some simple c++ and do like that it is lightweight and still seems rather powerful. I also can appreciate the need for the 'right tool' rather than specifically 'all in one'. I am used to the ability to add breakpoints for debugging and that sort of thing so I am also looking for familiar surroundings to help me get started.
    – Tim
    Oct 12, 2010 at 23:10
  • It supports most languages including C/C++, Java, C#, Python, Ruby, PHP, HTML, etc. Nice :)
    – johnc
    Oct 19, 2010 at 21:41
  • Just to stress that Gedit is really a strong contender here, especially for programmes with a limited number of files/packages. In terms of syntax highlighting the Oblivion scheme is the best ever conceived on any platform. Feb 26, 2014 at 20:28
22

I don't have much experience with it myself (I personally like to work in gedit), but for the sake of completeness we really should mention Anjuta Install anjuta. It is part of the GNOME project, and includes many of the features you are interested in.

  • Focus on C/C++, but extensible with plugins. Some support for Python and Vala.

  • Integrated Glade user interface designer.

  • Version control integration with at least Git, CVS, and Subversion.

  • Project management and autotools support.

  • Integrated debugger including breakpoints, ect... Backed by gdb.

  • GTK+/GNOME Devhelp API help browser integration.

  • Valgrind plugin to profile programs for memory leaks.

anjuta

glade

1
  • 3
    Can those panels be undocked? Becuase that is really cluttered and the code window is really small. As I commented in another answer, I like lots of space for code, enough even to see two files simultaneously.
    – Skizz
    Nov 11, 2010 at 13:16
12

I can't believe everyone's saying "use KDevelop" for C++.

In my experience, there is no better tool than Qt Creator.

It is:

  • Fast
  • Has a very flexible project manager
  • Can be used for any C++ project - even non-Qt ones
  • Has what I consider to be the best code-completion engine ever
  • Integrates very extensively with the Qt framework (which I really recommend)

2
  • 1
    I tried this and kdevelop and if I remember correctly, you couldn't undock the panels. Not being able to undock is a big issue as I like to have one of my monitors dedicated to just code, and all the other panels on my second monitor. I hate to say it, but DevStudio does this really well. On Ubuntu/Linux the closest I've found is Eclipse.
    – Skizz
    Nov 10, 2010 at 22:45
  • @Skizz: I understand. Nov 11, 2010 at 0:03
10

It depends on the programming language:

Java, PHP, C/C++, ... : Eclipse, NetBeans

C#: MonoDevelop

6

Although other answers might suggest that MonoDevelop is only for C# development, it also handles C, C++, Python, Vala and Java. And Visual Basic, if that's what you're after :).

6

Microsoft's Visual Studio Code is an Integrated Development Environment (IDE) with support for Mac, Linux and Windows.

1
5

Mono is a mature and successful open-source implementation of the .Net framework and many .Net languages (C#, for example). If you know Visual Basic or C#, then you can code on Ubuntu (works even on Windows and Mac OSX) using MonoDevelop Install monodevelop << (Click this icon to install MonoDevelop). Its a nice and highly-featured IDE, and creates applications that look and feel native on Ubuntu (thanks to the use of GTK).

5
  • So it mean that MonoDevelop is similar to Visual Studio?, because i have used VS for two years and recently changed to Ubuntu, so it will be good if MonoDevelop has similar icons and other stuffs as VS! Is it so?
    – Ant's
    Apr 16, 2011 at 14:13
  • As novell is sold. I fear, what is the future of Mono project. Should it be maintained or abandoned
    – user
    Apr 16, 2011 at 14:53
  • @Anto: The similarities are very little, unfortunately. But I'm sure you'll be able to easily find your way around MonoDevelop equally easily :) Apr 16, 2011 at 16:02
  • @crucified soul The mono project is very much alive an well as has been announced many times, and has made major releases after the sale. Including in the last week mono for android.
    – trampster
    Apr 17, 2011 at 9:59
  • @Akhtar: oh that might be the problem!
    – Ant's
    Apr 17, 2011 at 12:06
4

You may also consider Lazarus which basically mimics Delphi type of application Development.

3

I haven't used it, but I've heard about Code::Blocks, which is also quite good. From forums I just read, it seems Code::Blocks might be just a little unstable. You might want to look at this thread at cplusplus.com. Just googling "kdevelop vs codeblocks" gives a bunch of results that compares the two as well as some others like Anjuta, Eclipse and NetBeans.

3

I use codelite, which is a rapidly growing IDE for C/C++. It is my favorite of the lot so far, eclipse being too restrictive, code::lite being bloated (in my opinion).

EDIT: I'd just like to add that it is clearly inspired by Visual Studio, so users of the VS tools should feel at home.

3

Intellij IDEA community edition is also quite decent tool.

1
2

MonoDevelop Download MonoDevelop is probably the closest match but you Mono isn't a "typical Linux" setting. Eclipse does provides something similar with Java (instead of .NET or Mono).

For something more traditional or purer, you might want to learn more about Perl or Python. Python is pretty simple but the closest you'll get to an IDE is the PyDev plugin for Eclipse.

The Linux build process is much more scripted and relies, on the whole, a lot less on IDEs.

3
  • 1
    Thanks. I have looked at python and don't mind it that much. Its a bit of a change to the languages I am used to but that isn't really an issue. These are personal projects and no time frames mean I can afford to delve a bit deeper into a new language.
    – Tim
    Oct 12, 2010 at 22:12
  • 1
    @Tim: I would highly recommend learning Python or Ruby. Not only is it fun, but it requires you to think differently then what you normally would. I didn't exactly understand lambda's until I used them in Python.
    – Kredns
    Oct 12, 2010 at 22:39
  • +1 for the statement: The Linux build process is much more scripted and relies, on the whole, a lot less on IDEs.
    – lazyPower
    Mar 11, 2012 at 20:39
1

As mentioned in other answers, you can use Mono. But making cross platform applications using Mono requires attention, as you have to filter Windows specific libraries. So, before importing your project to Mono, check out the compatibility of the libraries you use.

2
  • @trampster: He wants to use .NET and it's IDE, obviously he has some projects in VS on windows. It may not be worth of voting up, but I don't see any reason voting it down.
    – user
    Apr 17, 2011 at 10:20
  • mono-project.com/MoMA is a tool you can run over a .net application which will tell you about any problem you might have running it on mono.
    – trampster
    Apr 17, 2011 at 10:48
0

I use eclipse a lot. It was primarily developed for Java development but has a bunch of plugins that extend it to work with other languages.

2
  • I like eclipse and have used it a bit in the past. Is there a gui design aspect for gtk or qt?
    – Tim
    Oct 12, 2010 at 22:08
  • I'm not really a gui guy so I'm not sure what's available that integrates into eclipse for GUI design. Oct 13, 2010 at 0:07
0

Depending on what languages you are looking to delve into there are a few options.

BASIC: Gambas

Mono/C#: MonoDevelop

C/C++: KDevelop (sans GUI designing)

0

You need to state what programming language you are interested in using because it makes a huge difference to the answer.

For c# development in linux use MonoDevelop

For Java development use eclipse

For c/c++ development use KDevelop

2
  • I notice KDevelop mentioned a few times, I haven't tried it since KDE 4, is it worth trying over something like eclipse (cdt) or netbeans for example?
    – Tim
    Oct 12, 2010 at 22:15
  • 1
    Qt - that's the tool to use for C++. Oct 12, 2010 at 22:18
0

Also look at kBasic

0
0

For Python development you can also use pIDA which embeds vim or emacs in a Python IDE.

sudo apt-get install pida

Or WingIDE, which is a commercial, closed source IDE with a limited version available for free (and the full version available for download to try it out for a couple of weeks).

For debugging compiled languages, you can also use the Nemiver debugging GUI if the editor/IDE you use doesn't have good enough debugging support

sudo apt-get install nemiver

Not the answer you're looking for? Browse other questions tagged .