views:

543

answers:

10

I'm a longtime Visual Studio(from versions 6 to 2008) user that really like the editor and especially the debugger. Now I'm thinking of giving Linux a go, is there a IDE with similar, or better, capabilities out there?

I'm also interested in recommendations for GUI libraries, c++ or c#.

+15  A: 

http://monodevelop.com/ would be your closest bet for an editor similar to visual studio

Mike Valstar
Cool, hadn't heard of that one
Vinko Vrsalovic
+1  A: 

Eclipse is the only IDE out there supporting multiple languages which has a comparable power to Visual Studio.

Vinko Vrsalovic
I would think monodevelop would be a pretty close analog to visual studio :)
Mike Valstar
+7  A: 

I would recommend Eclipse, it's quite similar to Visual studio in capabilities and can be extended with much more plugins than VS has to offer.

JohnC
Seriously is anyone actually using Eclipse for .net development
trampster
+5  A: 

I'd check out Mono. You shouldn't have to change too much from what you already do.

wambotron
A: 

monodevelop. Also #Develop is pretty nice - fast, though missing some features, and only supports C# (Mono or .NET)

David Lively
I'm sure #Develop is great but the question was about IDEs which run on linux, unfortunitly #Develop does not.
trampster
+5  A: 

Dont, just dont! I'm doing this now @ work since I have to and i tried, netbeans, kdevelop, eclipse. They're so basic compared to VS, especially if you're used to the more advanced features that you'll get crazy and desire visual studio back.

Henri
have you tried monodevelop?
Mike Valstar
I agree with this post. I've used almost all IDE's out there and they pale in comparison. For example, something REAL basic, in Eclipse during debugging using breakpoints it's dificult to see variable values easily like in VS. In Eclipse you have to open a frikkin "variables" tab. Are you kidding me?
Sergio Tapia
Well that's discouraging. I'm not interesting in configuring my system, i'm not interested in using fifteen tools. What I am interesting in is coding interesting applications.
dutt
I've also tried so many times to switch off from windows and vs.net to linux (i prefer this last for his leightweight)... but each time, after some hour, after trying eclipse, netbeans and monodevelop, i reopen my win partition with Visual studio. Monodevelop is the only who can "beat" vs, but it lose, for example on the asp.net visual editor.. I hope De Icaza's team will release it as soon as possible.. However They're doing a great job with mono and monodevelop !
stighy
+1  A: 

If you are going to do c# development on linux I would recommend MonoDevelop. It is designed specifically for .net development (eclipse is not) and it is really quite full featured now, it includes a visual debuggers, code completion, graphical nunit integration and virtually everything else you would expect from a modern IDE. It includes some features missing from Visual Studio. I was excited just recently to discover I can right click on an interface and choose find all implementations, This is a feature not implemented in visual studio and which I find extremely helpful.

Regarding the GUI libaries, if you are using c# on linux then the best GUI framework is GTK#. MonoDevelop includes a built in graphical designer for it. Several mature and widely used linux applications use this including:

Banshee - music player

FSpot - photo manager (default in Ubuntu)

Tomboy - Notes application (default in gnome)

MonoDevelop - IDE (similar to Visual Studio)

GTK# is also cross platform and so can run on mac and windows as well. This is proved by its usage in MonoDevelop where it is used to run on linux, mac and windows.

trampster
+1  A: 

I'm a Linux developer and I would kill (or at least maim) for a development environment approaching the sophistication of Visual Studio. But then Visual Studio doesn't support Lua or Haskell or ML, which are the major languages I use these days.

Like many others I find Eclipse too slow and lacking in functionality for languages that are not Java.

I do have two positive recommendations: for debugging C and C++ programs, the combination of valgrind (a memory debugger) and the Data Display Debugger (an interactive GUI debugger) make me about 5 times more productive in C than I used to be with just dbx or gdb.

Norman Ramsey
Visual Studio 2010 supports F# which is an ML dialect.
Nemanja Trifunovic
While I really admire the work that Don Syme and others have done on F#, and I look forward to it bringing functional programming to a wider audience, I view F# as a .NET language first and a functional language second. The work is brilliant and I would love to see some of the features backported to, say, Standard ML, but to me it definitely feels like a hybrid.But you're right, the VS support for F# is awesome---or at least it gives great demo.
Norman Ramsey
+1  A: 

Now I'm thinking of giving Linux a go, is there a IDE with similar, or better, capabilities out there?

I'm also interested in recommendations for GUI libraries, c++ or c#.

I only speak for C++:

  1. There are similar IDEs, but they are not as good as VS.
  2. The Qt framework includes the best C++ GUI library.

Do not even bother with Eclipse or MonoDevelop for C++, try KDevelop or QtCreator. The C++ debugging will be especially painful compared to what you've been used to.

rpg
I Agree! For C++, QtCreator is a nice light-weight IDE.
Dr. Watson
+1  A: 

I moved from windows to linux 9 or so years ago after spending my initial career using Visual Studio.

The move was relatively easy as the build environment was first and foremost based on Makefiles. Up to this point I used scripts to create a visual studio project for the project each time there were changes.

At that time, the others in my team were using emacs. The learning curve is pretty steep when you come from something like VS, but IMHO it has been well worth the time I invested in it.

What sold me on emacs was the integration with gdb. Emacs has a mode specifically for gdb. Once this mode is started you can enable 'gdb-many-windows'. This gives you a view very similar to that of any debuger environment. Also, one of the first things that I did after moving was to setup the VS key shortcuts. So even after all this time, I have the following in my .emacs file:

(global-set-key [f7] 'compile)             ;; asks for a command to run eg: make
(global-set-key [f4] 'next-error)          ;; show the next error
(global-set-key [S-f4] 'previous-error)    ;; show the previous error

(global-set-key [f5] 'gdb)                   ;; start the debugger   
(add-hook 'gud-mode-hook                     ;; allows changes to debugger mode
          '(lambda ()
             (define-key (current-local-map)
               [f10]
               'gud-next)                    ;; F10 does step over
             (define-key (current-local-map)
               [f11]
               'gud-step)                    ;; F11 does step into
             (define-key (current-local-map)
               [\S-f11]
               'gud-finish)                  ;; Shift+F11 finish function
             (define-key (current-local-map)
               [f5]
               'gud-cont)                    ;; F5 does continue.
             (gdb-many-windows t)))          ;; Set's up a debugger type view

If you haven't used emacs before, then the first thing you need to know is that you type: Ctrl+X Ctrl+C to exit emacs.

If you do decide to give it a go, after loading it up use Ctrl-H then 't'. This starts the emacs tutorial which will give you the basics.

Of course, if you get stuck, then just review or ask a SO question tagged with emacs. This has become a really could source of information for emacs use. I only found out about gdb-many-windows this April from this question!

Richard Corden