IDE for Linux

Started by
17 comments, last by guywithknife 14 years, 11 months ago
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.
Advertisement
Add another (completely biased :-) vote for Eclipse.
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 ...
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]
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.
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.
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.
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".
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 ;-)

This topic is closed to new replies.

Advertisement