Jump to content

  • Log In with Google      Sign In   
  • Create Account

IDE for Linux


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
18 replies to this topic

#1 rozz666   Members   -  Reputation: 634

Like
0Likes
Like

Posted 26 May 2009 - 09:22 AM

I'm looking for an IDE for C++ under Linux. What do you recommend? I like VS 2008 IDE with it's code completion, seeking out the declarations and definitions etc. I've heard that Code::Blocks is pretty good, although I haven't tried it yet. I've also heard that's it's code completion doesn't works very well. Maybe you know a plug-in simillar to VisualAssist (wishful thinking, I know :-).

Sponsor:

#2 Yacoby   Members   -  Reputation: 132

Like
0Likes
Like

Posted 26 May 2009 - 09:28 AM

Code::Blocks is good, the best from the fairly limited number I have tried, although in my opinion no IDE on Linux is as good as VS200x.

The last stable release of Code::Blocks was over a year ago. There nightly builds work fine, and I very rarely have crashes with them, so I would recommend you go with them. The code completion is much better than the 08.02 release.
There are some Ubuntu repositories that have the preompiled nightly binarys and plugins.
Ubuntu Repo guide for Code::Blocks nightly builds:
http://lgp203.free.fr/spip/spip.php?article1 & lang=en (remove the space around the & . the forum is screwing with the url)

It is worth getting the plugins if you go down the code::blocks route. Things like the code formatting and the easy use of Valgrind (memory leaks) is a large bonus.

Other things worth looking into may be Eclipse (With C++ Plugin) or Anjuta. I am not sure how good these are, but Anjuta keeps getting recommended, so I may have to take a look.

#3 evolutional   Moderators   -  Reputation: 1069

Like
0Likes
Like

Posted 26 May 2009 - 09:30 AM

Another vote for Code::Blocks here

#4 Kambiz   Members   -  Reputation: 758

Like
0Likes
Like

Posted 26 May 2009 - 09:40 AM

Qt Creator
NetBeans
Eclipse

The first one runs much smoother than the other two in my experience. Qt Creator is pretty new and don't have much experience with it but it has impressed me a lot.

#5 rozz666   Members   -  Reputation: 634

Like
0Likes
Like

Posted 26 May 2009 - 07:51 PM

Thanks for the tips.
I tried Code::Blocks (the last stable release and the last nightly build). however the code completion doesn't seem to work. The only thing it completes are global identifier (no std::), local variables and sometimes parameters of global functions.
Is Eclipse similar in this case? I also had sugestions to use VI or VIM. How good are these?

#6 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 26 May 2009 - 08:15 PM

Quote:
Original post by rozz666
Thanks for the tips.
I tried Code::Blocks (the last stable release and the last nightly build). however the code completion doesn't seem to work. The only thing it completes are global identifier (no std::), local variables and sometimes parameters of global functions.
Is Eclipse similar in this case? I also had sugestions to use VI or VIM. How good are these?


Most of the time I work without code completion at home, but from my experience, QtCreator has the most decent one, and can compete with VS08's code completion. The code::blocks code completion seems to only run nicely on a good, sunny day; but then I wasn't snoopy enough to research how it's implemented and what exactly it claims to consider.

VI and VIM are (modal) text editors, very decent and mighty ones, but it needs some learning curve to complete. For a more classy text editor, I can recommend most scintilla based editors (last time I checked, code::blocks' editor was also based on the scintilla text editing component), like scite (my absolute favorite, so minimalistic and yet so powerful), or when you are on windows, Notepad++. But gedit, kate, and the other standard editors also do a good editing job; it's just that they are not so much biased towards programming as scintilla based editors are.

Sidenote: My current toolset at home:

* Window programming: QtCreator+QtDesigner (also has good documentation integration) (note that QtDesigner is also integrated into QtCreator, but I prefer using it as an external program)
* Normal programming: Either monodevelop+bash+make, or scite+bash+make

I once favoured anjuta, but then the UI was tweaked in a way that I personally did not like.

#7 Fiddler   Members   -  Reputation: 856

Like
0Likes
Like

Posted 26 May 2009 - 08:21 PM

I'd recommend Geany (nice, fast IDE) or MonoDevelop (nice, slower IDE with a visual debugger). Barring those, I'd go with Eclipse or Code::Blocks.

[OpenTK: C# OpenGL 4.4, OpenGL ES 3.0 and OpenAL 1.1. Now with Linux/KMS support!]


#8 jonathanjansson   Members   -  Reputation: 271

Like
0Likes
Like

Posted 26 May 2009 - 08:21 PM

I didn't like Code::Blocks debugger. Don't remember the exact reasons now but I didn't stay with Code::Blocks for long.

Then I tried Eclipse and I find it being better than Visual Studio on some points. The debugger is not as good as Visual Studio but better than Code::Blocks. But it has features like refactoring and instant syntax checking.

Eclipse had some problems in setting up include paths. I have not been able to do something like "PROJECT_DIR\.." so I can write the projects name when including header files so I had to rearrange my folder structure. Don't like that.

NetBeans is supposed to be really good too but I have not tried it. Will give it a try when Fedora 11 is out.


#9 reptor   Members   -  Reputation: 100

Like
0Likes
Like

Posted 27 May 2009 - 07:39 AM

I think both Eclipse and Netbeans are better than any other of the free IDEs I have tried, including Code::Blocks and KDevelop and Anjuta.

A clear problem in my opinion with the many free IDEs is that some people who haven't got a clue what a good user-interface is, actually designed one.

I see that both Eclipse and Netbeans have a very good user-interface compared to the other choices. I think particularly Netbeans has a nice, clean, user-interface compared to the other mentioned choices. KDevelop for example is a horrible mess (but it received some community award some years ago, hailing it as the best IDE there is for Linux which I find bizarre given its messy user-interface).

Performance-wise I found some problems with some recent version of Netbeans so if you have a slow computer I would say it might have a performance problem. But this is what you have to try first to see whether it is a problem or not.

I haven't experienced performance problems with Eclipse so it is what I am using now on Linux. I need to check maybe there was some temporary problem with Netbeans' performance as it wasn't always so slow, some update made it behave erroneously I suppose.

#10 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 27 May 2009 - 09:24 PM

Quote:
Original post by reptor
A clear problem in my opinion with the many free IDEs is that some people who haven't got a clue what a good user-interface is, actually designed one.


When I started programming, every IDE was confusing. I am not a fan of KDevelop, too, but I don't consider it bad. Or, I liked Anjuta for the less blown GUI. I was also used to Eclipse once, but thought it would be too blown for my personal taste.

So, your argument is personal opinion, as you admit, but claiming those programmers are ignorant is a tad too much, because you are clearly biased by your personal preference. And obviously, many people like the user interfaces you consider bad.

#11 Trenki   Members   -  Reputation: 341

Like
0Likes
Like

Posted 27 May 2009 - 09:47 PM

I'd say take a look at Eclipse which also can support C++. Code completion is as good as in Visual Studio and syntax highlighting is even better than in Visual Studio combined with Visual Assist X.

#12 stanirya   Members   -  Reputation: 771

Like
0Likes
Like

Posted 27 May 2009 - 10:20 PM

Add another (completely biased :-) vote for Eclipse.

#13 Waterwalker   Members   -  Reputation: 431

Like
0Likes
Like

Posted 27 May 2009 - 10:34 PM

Quote:
Original post by jonathanjansson
Then I tried Eclipse and I find it being better than Visual Studio on some points. The debugger is not as good as Visual Studio but better than Code::Blocks.

I would guess that both are using the very same debugger namely gdb so you are most likely referring to the GUI provided for the debugger [smile]

I put in another strong vote for Eclipse. Its a mature tool as opposed to Code::Blocks and I also agree that I do like Eclipse even more than VS - except for the Debugger (Eclipse has no ready support of the VS Debugger on Windows) and Debugger GUI of course. But Eclipse has at least one nice features the VS Studio (and probably the other afore mentioned IDEs too) lack(s): Its preparser. While you are typing your source the preparser does already highlight mis-spelled variable names, missing semicolons, and syntax errors you would otherwise only notice when trying to compile.

Another very big bonus is that you can jump to function or varibale definitions and declarations by CTRL+ mouse click. Each time I work with VS in bigger projects and miss this feature so much. Sure, in VS you can have a key shortcut for the same but that involves clicking on the function plus typing a shortcut. Very annoying.

One more bonus is Eclipse's syntax highlighting. You can define colors and fonts very specific and have way more options than with VS. E.g. you can make class attributes, function parameters, static functions, whatever ... have different colors and formatting. So by just looking at your code you can instantely tell if you are looking at a static function call, a local variable, a class attribute and things like that.

When hovering over a function call Eclipse does not only show you the documentation of this function (if its in the header file) as pop up info. It also shows you the implementation if its in your own sources. So you get a quickinfo like popup on the function call. Upon moving the mouse inside this quick info on the function declaration you get then scrollbars in the quick info and can start scrolling the function implementation. This saves you actually going to the function but sitll you can browse its full souce code. Also quite a very helpful feature when working with big projects or multiple people on the same project.

The only downside with Eclipse is that it uses Java and hence is eating up quite some resources. There might be other IDEs which don't (VS not among them though).
------------------------------------I always enjoy being rated up by you ...

#14 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 27 May 2009 - 11:13 PM

Quote:
Original post by lightbringer
Add another (completely biased :-) vote for Eclipse.


Hehe, absolutely okay (it's a mighty IDE, too mighty for my taste and for what I need). I just don't like when people refer to people as ignorant or even dumb/bad and the like, when such statement is based on personal preference [smile]

#15 stanirya   Members   -  Reputation: 771

Like
0Likes
Like

Posted 27 May 2009 - 11:27 PM

Quote:
Original post by phresnel
Hehe, absolutely okay (it's a mighty IDE, too mighty for my taste and for what I need). I just don't like when people refer to people as ignorant or even dumb/bad and the like, when such statement is based on personal preference [smile]


Well, I am taking (yet another) web engineering course right now, and our instructor insists on doing everything in pico... he'd probably do it in vi if we let him.

Eclipse happens to have a pretty good interface, but it's true that there are many FLOSS projects out there where the interface is literally "from hell", and not due to personal preference. Zen Cart comes to mind, maybe Koha also. That's because FLOSS projects tend to be very developer-centric, and not all programmers are good UI designers.

Eclipse also might look intimidating at first, but it's actually very straightforward once you get used to it, and comes loaded with many powerful functions (the kind where you'd have to search all over to find equivalent Emacs plugins, if they even exist ^_^). Same for NetBeans, except Eclipse also has the incredibly useful mouse-over that displays context API info.

#16 reptor   Members   -  Reputation: 100

Like
0Likes
Like

Posted 28 May 2009 - 12:40 AM

Quote:
Original post by phresnel
Quote:
Original post by reptor
A clear problem in my opinion with the many free IDEs is that some people who haven't got a clue what a good user-interface is, actually designed one.


When I started programming, every IDE was confusing. I am not a fan of KDevelop, too, but I don't consider it bad. Or, I liked Anjuta for the less blown GUI. I was also used to Eclipse once, but thought it would be too blown for my personal taste.

So, your argument is personal opinion, as you admit, but claiming those programmers are ignorant is a tad too much, because you are clearly biased by your personal preference. And obviously, many people like the user interfaces you consider bad.



Well, perhaps I could have presented my opinion in a better way than saying "haven't got a clue". So let me try to express myself better.

Let's take KDevelop as an example. I don't think it is just a personal opinion when I say that its user-interface is disorganised compared to the ones of Eclipse and Netbeans.

I think you can measure organisation objectively. If we can do that then it isn't a personal opinion anymore if something is disorganised or not. For example, you expect things which are logically close to each other to be close to each other in the IDE. And you don't expect things that are logically far from each other to be close to each other. Why do you expect like that? Because you know it is better that things that are logically close to each other are kept together in a user-interface. You don't want them littered a little bit over here and a little bit over there.


I think (this is a personal opinion for sure) that we can see how organised an open-source project is by looking at the user-interfaces of the programs those projects have developed. Looking at KDevelop makes me think the project is not well organised - there are many people stirring the pot, as so to speak, and everyone want to place some user-interface feature somewhere. What I am saying is there doesn't seem to be clear guidelines within the project how the user-interface should be designed, and then there isn't a good procedure to ensure that the guidelines are followed.

On the other hand, when I look at a project such as Netbeans or Eclipse, I get the feeling that the projects are better organised compared to the KDevelop project. I do think that the organisation of the user-interface reflects the overall organisation level of the project. A disorganised and messy user-interface tells me that there is a lack of organisation in the project while an organised and clean user-interface tells me that there are people in the project who practically force the project to a better way to design the user-interface and to stick to what has been agreed as user-interface design guidelines.

#17 jonathanjansson   Members   -  Reputation: 271

Like
0Likes
Like

Posted 28 May 2009 - 01:55 AM

Quote:
Original post by Waterwalker
When hovering over a function call Eclipse does not only show you the documentation of this function (if its in the header file) as pop up info. It also shows you the implementation if its in your own sources. So you get a quickinfo like popup on the function call. Upon moving the mouse inside this quick info on the function declaration you get then scrollbars in the quick info and can start scrolling the function implementation. This saves you actually going to the function but sitll you can browse its full souce code. Also quite a very helpful feature when working with big projects or multiple people on the same project.

The only downside with Eclipse is that it uses Java and hence is eating up quite some resources. There might be other IDEs which don't (VS not among them though).


Also when hoovering over macros Eclipse opens a window with the expanded code for the macro!

Think there is a compiled version of Eclipse too which should be faster. Know a friend run that on Mac OS X. But I just use whatever is Fedora 10's repository. Maybe I actually use compiled one, don't know. For me it is a bit sluggish though.


#18 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 28 May 2009 - 01:57 AM

Quote:
Original post by reptor
Quote:
Original post by phresnel
Quote:
Original post by reptor
A clear problem in my opinion with the many free IDEs is that some people who haven't got a clue what a good user-interface is, actually designed one.


When I started programming, every IDE was confusing. I am not a fan of KDevelop, too, but I don't consider it bad. Or, I liked Anjuta for the less blown GUI. I was also used to Eclipse once, but thought it would be too blown for my personal taste.

So, your argument is personal opinion, as you admit, but claiming those programmers are ignorant is a tad too much, because you are clearly biased by your personal preference. And obviously, many people like the user interfaces you consider bad.



Well, perhaps I could have presented my opinion in a better way than saying "haven't got a clue". So let me try to express myself better.

Let's take KDevelop as an example. I don't think it is just a personal opinion when I say that its user-interface is disorganised compared to the ones of Eclipse and Netbeans.

I think you can measure organisation objectively. If we can do that then it isn't a personal opinion anymore if something is disorganised or not. For example, you expect things which are logically close to each other to be close to each other in the IDE. And you don't expect things that are logically far from each other to be close to each other. Why do you expect like that? Because you know it is better that things that are logically close to each other are kept together in a user-interface. You don't want them littered a little bit over here and a little bit over there.


I think (this is a personal opinion for sure) that we can see how organised an open-source project is by looking at the user-interfaces of the programs those projects have developed. Looking at KDevelop makes me think the project is not well organised - there are many people stirring the pot, as so to speak, and everyone want to place some user-interface feature somewhere. What I am saying is there doesn't seem to be clear guidelines within the project how the user-interface should be designed, and then there isn't a good procedure to ensure that the guidelines are followed.

On the other hand, when I look at a project such as Netbeans or Eclipse, I get the feeling that the projects are better organised compared to the KDevelop project. I do think that the organisation of the user-interface reflects the overall organisation level of the project. A disorganised and messy user-interface tells me that there is a lack of organisation in the project while an organised and clean user-interface tells me that there are people in the project who practically force the project to a better way to design the user-interface and to stick to what has been agreed as user-interface design guidelines.


Now that was a good post. Rate++.

Still, I think that such "locality" is not necessarily mandatory. Often, you want functions that you use often to be close together. They are not necessarily related much to each other; personally, if any, I would like to have the functions "[regex] search", "[regex] search+replace", "open file by name", "compile", "execute" nearby (actually, I don't want any buttons on my IDE, I am happier with keyboard shortcuts and ordinary menus, and ideally, the ordinary menu can be made invisible (e.g. codeblocks++) and more ideally, I can go fullscreen (not maximize, fullscreen) with another shortcut).

I don't know why the KDevelop people made it the way it is, and I don't remember enough to argue, but can't you re-organise button-bars?

On the other hand, while Eclipse and MSVC and the other big IDEs might have very decent GUIs, they are often not intuitive because of the sheer mass, and require some learning curve, too. E.g., I use MSVC200x on a daily basis for 9 months or so now, but still I regularly struggle with some standard tasks that I don't use every day, but in the more minimal IDEs (like QtCreator, Anjuta, Code::Blocks, or even editor+bash) I seldom struggle at the same tasks. In that respect, with struggling I mean "searching my way through a plethora of menus".

#19 dublindan   Members   -  Reputation: 457

Like
0Likes
Like

Posted 28 May 2009 - 02:03 AM

My vote goes for vim*.

Failing that, I'd use Geany.

* Vim is a great IDE, but to use it as one, it requires a significant amount of effort to configure it to do everything you'd want from an IDE - however, provided you spent the time to learn the vim editing commands, it is IMHO worthwhile. As an added bonus, you'll be able to use your "IDE" in a terminal or over ssh or whatever :-D Cant really dot hat with a "traditional" GUI IDE ;-)




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS