Allegro.cc - Online Community

Allegro.cc Forums » Programming Questions » [Rant] Linux C++ IDE's suck

Credits go to Aikei_c, bamccaig, Chris Katko, Jonatan Hedborg, Slartibartfast, taron , and Thomas Fjellstrom for helping out!
This thread is locked; no one can reply to it. rss feed Print
 1   2 
[Rant] Linux C++ IDE's suck
OICW
Member #4,069
November 2003
avatar

A while ago I've ranted a bit about how the Code::Blocks suck. Well, quite frankly I have to admit that at least they seem to suck the least from all of the other IDE's I have tried for C++ development so far. At least for me.

I have downloaded several of them just today and tried to import one non-trivial project (2 subprojects) of mine created in Code::Blocks. In addition I have tried to create a new project from scratch.

  • Eclipse - tried them, was able to import the project (not build it). The Eclipse RCP is just pure mess and not very space efficient. I gave up when I saw that customisation is possible, though it is done utterly wrong (how on Earth am I supposed to identify which toolbar is which from a list of checkboxes?). Not to mention that the whole IDE just walks all over me and imposes Workspaces on me etc.


  • Netbeans - when maximized the menus won't either even appear or just disappear as soon as they are opened. Issue in Swing/JDK or whatever. Not my problem. Anyway I gave them a try but wasn't even able to import the project.


  • Scite - not an IDE, just a text editor. Might as well use vim... ::)


  • Anjuta - a whole clusterfuck that was able to somehow open the project. But nothing more.


  • CodeLite - looks much like Code::Blocks. Amazingly fast start. Amazingly fast crash upon loading the project ::)


  • KDevelop - surprisingly it didn't look bloated like all of the KDE stuff seems to me since version 4. It started up pretty fast, though crashed as soon as I tried importing the project.

End of rant. Long story short, it seems that though the C::B autocompletition and whispering suck plus lots of other pet peeves. At least it doesn't get in my way and allows for great deal of customisation and flexibility.

Anyway, what do you guys use for development on Linux? Any suggestions what am I doing wrong with Eclipse?

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

Thomas Fjellstrom
Member #476
June 2000
avatar

The C++ stuff for eclipse just sucks.

Have you tried creating new projects for the IDEs rather than importing? Especially with KDev. I really liked it for doing kde dev.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Aikei_c
Member #14,871
January 2013
avatar

Linux is an IDE itself! You just need to configure it.
That's obviously a joke, but I think on linux most people use text editors with various packages/plugins/whatever and build their IDE themselves.
I wouldn't take my words seriously though, since I'm not experienced with linux.

Chris Katko
Member #1,881
January 2002
avatar

Geany.

{"name":"geany.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/5\/5579a976493d0f9f5943e87ea3e26ce3.png","w":919,"h":740,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/5\/5579a976493d0f9f5943e87ea3e26ce3"}geany.png

Highlighting, project support (don't know if your type is though), variable/class/etc context highlighting and completion, and a side-bar object view.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

taron 
Member #10,584
January 2009
avatar

I've used MonoDevelop for C++ with varying success.
Fairly stable.
Autocomplete wasn't as context-aware compared to VS last time I've used it, but much better than C::B. Felt better than C::B to me but didn't mess around with it enough to probably have noticed many problems.

OICW said:

Any suggestions what am I doing wrong with Eclipse?

I've only used it for Java development. Having a lot of open projects in a workspace can randomly grind your computer to your halt for no apparent reason, but it does require a hell lot of projects, so I'll let that slide. Sometimes something just breaks and requires a restart (not that often but it happens). They've added a restart button in the menu bar under one of the items (or maybe that's just the adk version), which is helpful but shouldn't be something that's required in the first place. Also I've found the standard auto-completion settings get in my way most of the time instead of assist me, but that's personal preference. It always felt quite sluggish though.

Chris Katko
Member #1,881
January 2002
avatar

taron  said:

I've used MonoDevelop for C++ with varying success.

I tried to, but it would max out CPU usage and crash every time it tried to load on my Netbook.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

bamccaig
Member #7,536
July 2006
avatar

IMO, the reason that no good IDEs exist on Linux is that it is contradictory to the "UNIX philosophy" and therefore hard to do well period, let alone without major funding. It's the same reason that no good IDEs exist on any platform. >:(

For starters, GUI applications are exponentially more complicated than their command-line brethren. What might take a day to add to a command-line client is probably a week's work in a GUI, if not more. And of course, all of that extra code adds to maintenance costs too. There are always going to be bugs, and with GUI code those bugs are exponentially harder to resolve.

The worst offense is that the code is tightly coupled to the IDE that it is written for. If you try to implement a feature for Code::Blocks then it can't be reused easily for Eclipse or NetBeans, etc. Part of that is short-sighted design, and part of that is GUI programming already taking enough goddamn time without adding the added complexity of abstracting things into reusable interfaces. This makes things difficult. When GUIs change they break everything because things are so tightly coupled to the GUI... Getting it right is very hard and rarely accomplished.

The command-line is the most efficient, precise, and friendly user-interface. Think of a command line as another form of code. That's all it really is. It is fast and precise to command the computer with commands (both in development and use). It is slow and error-prone to command the computer with graphics (both with development and use).

I think that most Linux users are more than happy on the command line. They've given it a chance, learned how much better it is, and just don't require graphical tools to get their job done. Why waste time developing exponentially more code for a worse result when they can apply their skills to something that really makes a difference? That's my personal opinion...

Don't knock Vim until you've persevered. >:(

Chris Katko
Member #1,881
January 2002
avatar

I'd say the reason Linux IDE applications suck is because most Linux GUI applications suck. And the reason, I think, for that is that people hate writing good user interfaces and assume that "anybody can do it" in the same way that non-programmers take for granted advanced programming.

The effect is further compounded by that fact that:

In Windows, if the GUI sucks, nobody uses it.

In Linux, if the GUI sucks, the programmers tell you you're not using it right.

The whole Dwarf Fortress complex.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

OICW
Member #4,069
November 2003
avatar

Have you tried creating new projects for the IDEs rather than importing?

Yep, I have tried making a new project from sources since nothing else besides C::B can open C::B project. Perhaps I was doing it wrong (TM) and perhaps that project of mine doesn't have a very good structure.

Aikei_c said:

Linux is an IDE itself! You just need to configure it.
That's obviously a joke, but I think on linux most people use text editors with various packages/plugins/whatever and build their IDE themselves.
I wouldn't take my words seriously though, since I'm not experienced with linux.

Well, it's not a joke, it's entirely possible. But there's a reason I'm not using vim[1] nor esoteric desktop environments like xmonad/Awesome. I have found that I'd have to spend a unreasonably long time configuring these. Not to mention that in order to get used to them I'd have to configure them first. But here comes the Catch 22. And I don't have time to learn these things.

What I'm looking for is a software that allows code editing and project management because I can't be arsed to manually track all my files outside the code editor. I also don't want to write my own makefiles as they quickly become a mess. I'll have a look at Geany, thanks Chris. I might give KDevelop one last try, but crashing on me almost after start is a way to ensure I won't use the software in the future. I know MonoDevelop, but I wouldn't use it for C++.

bamccaig said:

Don't knock Vim until you've persevered. >:(

I seldomly use vim, but I just don't have the time to learn it properly. I have things to do. And at work IntelliJ Idea seems to work best for Grails development (though in my opinion it's much bigger bloatware than Eclipse and Netbeans combined).

Update:
Oh, I almost forgot, my main pet peeve with Eclipse was this (downscaled from 1280x800 resolution of my laptop):
{"name":"608098","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/b\/ebc88b8b68e3922afb6ce1291589633c.png","w":640,"h":400,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/b\/ebc88b8b68e3922afb6ce1291589633c"}608098

References

  1. Besides quick config edits, hacks etc.

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

Thomas Fjellstrom
Member #476
June 2000
avatar

OICW said:

Yep, I have tried making a new project from sources since nothing else besides C::B can open C::B project. Perhaps I was doing it wrong (TM) and perhaps that project of mine doesn't have a very good structure.

Ah ok. It sounded like you were trying to import the project file. If its crashing just trying to open up the files, that really sucks. I don't remember KDev crashing on opening up a regular set of files. But I have to say, KDev does some fancy magic, so its not impossible that some new language features might confuse the heck out of it. That's my guess on what it might be. Still though, that's no excuse for crashing.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

OICW
Member #4,069
November 2003
avatar

Well, I have seen something like "import project from sources" and tried that. When I tried to restart the KDev it crashed again. The third time I got some error message and no crash. But still a bad way to go. On the other hand I wasn't able to start CodeLite until I have deleted the workspace...

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

Jonatan Hedborg
Member #4,886
July 2004
avatar

The problem with developing without a good IDE for me is the lack of context sensitive refactoring (no, SED does not count), auto-complete (that is, language aware and parsing your code to figure out what you might need), direct error feedback, and maybe most of all, a usable debugger. Oh and easy and flexible code style formatting (that does not require that you learn Yet Another DSL to configure).

Linux is good for a lot of things, but it's been standing pretty much still when it comes to development environments, while the rest of the world has been racing ahead. This is because some people simply refuse to acknowledge that they might not have the optimal solution already. Really, what are the odds that the first idea was the best?

-------
Sweden: Free from the shackles of Democracy since 2008-06-18!

Thomas Fjellstrom
Member #476
June 2000
avatar

KDev has some powerful re-factoring. You just have to not have the version that's crashing for OICW. :(

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Slartibartfast
Member #8,789
June 2007
avatar

I'm using QtCreator for developing C++ on Linux, it has every feature I expect it to have and it works well.
Of the above mentioned IDEs I only tried Eclipse. I've used it for a while but in the end it was to annoying to use.

OICW
Member #4,069
November 2003
avatar

You just have to not have the version that's crashing for OICW. :(

The version is this:

oicw@apollo ~ > kdevelop --version
Qt: 4.8.5
KDE Development Platform: 4.10.5
KDevelop: 4.3.1

I have just tried to create a new C++ project from template. Just as soon as I got to see the default main.cpp it crashed >:( what baffles me is why KDevelop depends on vlc.
{"name":"608099","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/7\/f77f0351b6145c1a95042dbef8275951.png","w":607,"h":351,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/7\/f77f0351b6145c1a95042dbef8275951"}608099

Update:
When restarted it presents me with selecting CMake binaries and crashes again. The third time it tells that the file process died unexpectadly. When I try to load the project it crashes :D

Update 2:
"You need a user account on the KDE bug tracking system in order to file a bug report..." - wait, what? I need what? :o No way in freaking hell! >:(

Update 3:
Oh and Geany is simply unsuable piece of crap. Creating new project was far from intuitive (base directory, filename, project name - it wasn't updating when I have edited the base dir and kept me bugging until I've found the right permutation of the parameters) and it's all DYI - write your own makefile, etc.

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

Thomas Fjellstrom
Member #476
June 2000
avatar

OICW said:

what baffles me is why KDevelop depends on vlc.

It likely uses the phonon, which depends on vlc or gstreamer.

Quote:

"You need a user account on the KDE bug tracking system in order to file a bug report..." - wait, what? I need what? :o No way in freaking hell! >:(

They got tired of all the people spamming the bug tracker. If you can't be bothered to take the step to sign up, they really don't care ;)

I'd do the same thing.

I use Kate, and Konsole. It sucks that it doesn't have decent project wide auto-complete, but it does do it for symbols in a given file.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

OICW
Member #4,069
November 2003
avatar

They got tired of all the people spamming the bug tracker. If you can't be bothered to take the step to sign up, they really don't care ;)

I don't really care either :D I can't be bothered to create bazillion of accounts I use only once, though I understand the reason for this decision. Sadly, this was the first time I was actually going to file a bug report (though I think I'd have gotten flamed for not using the up to date version instead of the one from repo).

Thomas Fjellstrom said:

I use Kate, and Konsole. It sucks that it doesn't have decent project wide auto-complete, but it does do it for symbols in a given file.

I have used it in the past for small assignments. KDevelop is essentially Kate with project management (that seems utterly borked). Though I really need something that can take care of the tedious project management tasks. I hate to admit that I'm probably going ot use QtCreator after all :-/

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

Thomas Fjellstrom
Member #476
June 2000
avatar

KDev is far (far far) more than kate with project management.

Also Kate is the only one with that fancy automagical file tree view[1].

References

  1. hint, I wrote it \o/

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

OICW
Member #4,069
November 2003
avatar

Sure, that was gross generalisation on my side :) Oh, by the way I've always liked Kate ;) sadly, I can't right now remember that tree view you're talking about :( Anyway, thanks for suggestions rants etc.

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

axilmar
Member #1,204
April 2001

The command line can be more powerful than GUIs for complex tasks, but GUIs cannot be beaten for the less complex tasks.

For example, compiling a project in an IDE is as complex as pushing a button, because the IDE knows all the horrific details of calling the compiler and linker.

In the command line, even typing a simple command that does everything would take more than pressing a button.

Linux doesn't have a polished GUI and polished GUI applications because people that use Linux do not have an incentive to create such applications. When they have though, the results are just as good as those in Windows/Mac.

Evert
Member #794
November 2000
avatar

OICW said:

I seldomly use vim, but I just don't have the time to learn it properly. I have things to do.

There is no obligation for you to use vim (or any other piece of software) if you don't want to.

I will say this though: if I had thought "I have too much to do to learn to use vim properly" rather than "I have a lot of things to do and a deadline approaching. If I start using vim to do things I will learn to use it quickly" I would never have learned to use it.

OICW
Member #4,069
November 2003
avatar

Evert said:

I will say this though: if I had thought "I have too much to do to learn to use vim properly" rather than "I have a lot of things to do and a deadline approaching. If I start using vim to do things I will learn to use it quickly" I would never have learned to use it.

Well, when I'm in such desperate time constraint, the last thing I want to do is to complicate the matters by learning new stuff that seems unintuitive at first glance. Though I understand the reasoning behind it.

[My website][CppReference][Pixelate][Allegators worldwide][Who's online]
"Final Fantasy XIV, I feel that anything I could say will be repeating myself, so I'm just gonna express my feelings with a strangled noise from the back of my throat. Graaarghhhh..." - Yahtzee
"Uhm... this is a.cc. Did you honestly think this thread WOULDN'T be derailed and ruined?" - BAF
"You can discuss it, you can dislike it, you can disagree with it, but that's all what you can do with it"

Trezker
Member #1,739
December 2001
avatar

A comment on the linux is an IDE thing.

In Haiku, there a desktop feature called stack & tile.
http://www.youtube.com/watch?v=7MleAbU3AXs

This allows you to put different windows together either docked or stacked (tabs).
With this you can put together your own IDE by grouping up all the different programs you're using.

I don't know if there is anything like this on Linux.

Edgar Reynaldo
Member #8,592
May 2007
avatar

I'm sorry, but I will never be converted to using a text based and not graphical code editor. I hate text interfaces in general, and all they do is slow me down. I know, I must be the anti-floss to bamccaig but I like my GUIs. When done right, they speed up work tremendously.

As for IDE's on Linux, I tried C::B and I didn't like it very much, and it takes a lot of processor time for some reason. There were menus and toolbars everywhere. Configurable I'm sure, but the defaults are horrendous. I like to have a menu and maybe one toolbar, and that's it. Get out of my way, let me have my screen space, and let me work.

Chris Katko
Member #1,881
January 2002
avatar

I'm sorry, but I will never be converted to using a text based and not graphical code editor.

There is zero advantage to intentionally using text mode on a graphics card. And if you're using text mode emulation in a graphics environment, you're using a GUI. Truetype font anti-aliasing doesn't occur in text-mode.

Don't get me wrong, I still love the glow of edit.com's Hyper C/Pascel/whatever format. But I've yet to find a Linux text editor that comes even close. They're all covered in obscure, silly, key combinations.

It's like "Yeah, you can do regular expressions while you write code! But all I care about is do you actually know how to write software?"

My points seem scattered around, so I'll just say, use what you want, just don't tell me a fake text-mode editor is automatically going to give everyone better code.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

 1   2 


Go to: