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.

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?

share|improve this question
    
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 '10 at 22:03
2  
You should edit this information into your original question. –  Chris Wilson Oct 12 '10 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. –  David Foerster Nov 5 at 19:49
    
I also think this question should probably be part of the community wiki. –  David Foerster Nov 5 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/… –  underdog012 yesterday

18 Answers 18

up vote 17 down vote accepted

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

share|improve this answer
    
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 '10 at 13:16

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 your using KDE as your desktop enviroment and don't want to run Gedit, you could also try Kate.

enter image description here

share|improve this answer
    
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 '10 at 23:10
    
It supports most languages including C/C++, Java, C#, Python, Ruby, PHP, HTML, etc. Nice :) –  johnc Oct 19 '10 at 21:41
    
+1 for Qt - the world's best C++ IDE. –  Nathan Osman Nov 19 '10 at 18:29
    
+1 for Eclipse.. –  shroff Dec 15 '10 at 2:54
    
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. –  Luís de Sousa Feb 26 at 20:28

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)

share|improve this answer
    
Thanks I will have a look at Qt Creator. –  Tim Oct 12 '10 at 23:21
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 '10 at 22:45
    
@Skizz: I understand. –  Nathan Osman Nov 11 '10 at 0:03

It depends on the programming language:

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

C#: MonoDevelop

share|improve this answer

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

share|improve this answer

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

share|improve this answer
    
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 '11 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 '11 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 :) –  Bilal Akhtar Apr 16 '11 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 '11 at 9:59
    
@Akhtar: oh that might be the problem! –  Ant's Apr 17 '11 at 12:06

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.

share|improve this answer

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.

share|improve this answer

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

share|improve this answer

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.

share|improve this answer
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 '10 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. –  Lucas McCoy Oct 12 '10 at 22:39
1  
Thanks I will definitely investigate python further. –  Tim Oct 12 '10 at 23:11
    
+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 '12 at 20:39

Intellij IDEA community edition is also quite decent tool.

share|improve this answer
    
JetBrains's whole range of language-specific IDEs is pretty good ihmo. I personally used IntelliJ, PyCharm, and RubyMine. –  David Foerster Nov 5 at 20:03

As like previous comment, you can use Mono. But making cross platform application using Mono requires attention. As you have to filter Windows specific libraries. So before importing your project to Mono, checkout the compatibility of libraries you use.

share|improve this answer
    
@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 '11 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 '11 at 10:48

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.

share|improve this answer
    
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 '10 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. –  3dinfluence Oct 13 '10 at 0:07

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)

share|improve this answer

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

share|improve this answer
    
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 '10 at 22:15
1  
Qt - that's the tool to use for C++. –  Nathan Osman Oct 12 '10 at 22:18

For Python development you can also use pIDA Install pIDA, which embeds vim or emacs in a Python IDE. 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 Install Nemiver debugging GUI if the editor/IDE you use doesn't have good enough debugging support.

share|improve this answer

Also look at kBasic

share|improve this answer
    
Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. –  Eliah Kagan Aug 22 '12 at 10:40

MonoDevelop IDE: One of the most important tools that allows me to leverage my Microsoft VB.NET/C# skills on linux is the MonoDevelop IDE. Except for Microsoft proprietary classes such as System.Windows.Forms, all your .NET code is 100% portable to linux through the Mono platform. The only support that MonoDevelop lacks as of now is the ability to design ASP.NET web pages. I believe this limitation is going to be overcome pretty soon.

Source: http://thecomputerstudents.com/programming/list-development-tools-linux-platform-ides-compilers/

share|improve this answer

Your Answer

 
discard

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.