What Free IDE Do You Use?
postermmxvicom writes "I program only occasionally and mostly for personal interest. I went to update my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005! I went looking for other free IDEs and came across Code::Blocks and Visual Studio Express. I work from a Windows machine, use C++, and make mostly console apps; but have written a few Windows apps and D3D or OpenGL apps. I wanted to know what free IDEs you use and recommend. What do you like about them? What features do they lack? What about them irritate you (and what do you do to work around these annoyances)? For instance, when I used Visual C++ 6.0 in college, there was an error in getline that had to be fixed, and the code indenting in DevC++ needed to be tweaked to suit my liking."
nuf sed
I use nano, textwrangler, and jEdit depending on where I am...what's this "IDE" you speak of?!
I don't mess with C++ often but I still use Dev C++. Code::blocks wouldn't even install on my machine(or maybe it did, but never started up without a fatal error, can't remember which) and Visual Studio Express is a monstrosity which will take 45 minutes to install tons of weird crap while making your monitor flicker. Visual Studio express also allows only one programming language.
Contrast those with Netbeans and Eclipse which are known as Java IDEs but can be configured with plugins and add-ons to do all kinds of stuff, including C/C++ development. I haven't tried either of the two for C/C++ but I believe that Eclipse would be a the good middle ground between Dev C++ and the bloated NetBeans.
Here's[PDF warning] a good place to start. Good luck.
What else would you need?
I like Eclipse as an IDE because it supports many languages/modes and is very customizable. I mostly use it for Java, Perl and HTML/XML/CSS right now. There are MANY plugins and the context-aware help/auto-complete is very well done.
GVIM does everything I need it to and more.
I also happen to work in multiple character sets depending on the project (pure ASCII, UTF-8, pure SJIS, EUC, etc.) and to date I have never found an editor other than GVIM that will let me open and save files to different character sets effortlessly.
The only complaint I would have at this point is the auto-suggest or whatever it's called, it didn't quite work for me when I tried it though I may not have set it up properly.
I like it, just wish I could get CUSP (Lisp plugin) working in Ubuntu. If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.
An Education is the Font of All Liberty
Keep in mind that VC++ is not the Microsoft Platform SDK. These are two completely different, albeit related, products. The SDK had a bug in getline(), but VC can't really do anything about the quality of the installed SDK.
The best free IDE is the one that you don't have to think about, it just gives you the tools to do your job without getting in your way.
My in-laws have a Mercedes. On the infrequent opportunities I have to drive it, I am always amazed at how well it supports my driving. It is the little things like rotating the headlights into a turn, actually automatically switching into neutral when the car comes to a stop, and auto-dimming rear view for night driving that make driving it a pleasure.
version 7.0 RC5 came out 2 months ago.
Wiki page with link
On the rare occasion I'm forced to write something for windows, I prefer DevC++. Even though I haven't seen or heard anything new about it in years, it was the first IDE I ever used, and my first experience with C/C++, so I'm still very fond of the interface. For all my real work (on Linux), I stick with vim.
53 49 47 53 20 53 55 43 4B
I'm more than happy with gedit and make.........
As long as you don't piss yourself in disgust when Microsoft is mentioned (as many here do) - Visual Studio is actually very good.
Just vi. It's all about function not cuteness.
But lets not start the whole vi V emacs thing again, I'm sure lots of people are happy with emacs.
For Java & PHP development, Eclipse. Does everything I need it to. For Windows C++ development, VS2008. Work in a MS shop, so not much choice here. Mac Objective-C development, Xcode. Not much choice with this due to nib's being so intergrated with the code.
... for Perl the Padre IDE is getting pretty awesome.
Works identically on Windows, Mac and Linux and they even managed to get the entire IDE to install itself from the CPAN.
I recently switched from emacs to Eclipse CDT with emacs key bindings (an option in preferences). I am pretty happy with it so far.
Personally i mix and match to make an IDE.
For the code editing i have notepad++.
For the compiling i have the intel core compiler.
For debugging i use Intel Debugger.
There's plugins for notepad++ to make the compiler/debugger only a keyboard shortcut away.
Free edition of Delphi.
xwpe ftw!
http://www.identicalsoftware.com/xwpe/screenshots.html
Two options that have not come up yet. KDevelop 4 is shaping up really good, but I do not think it is actually working on win32/64 yet. The other is Qt Software's offer Qt creator which is also getting a good deal of praise. The latter is probably extra good if you use Qt... and if you don't, I would recommend at least looking at it, since it is a very nice LGPL library.
Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
You hit it in the summary. I program professionally. At work, I use gcc, xcode or msvs (depending naturally on the platform).
At home, for personal development on Windows in C++, nothing beats Visual Studio Express. It's lightweight, meaning they've trimmed out most of the stuff that you don't care about anyways for personal projects.
As much as it might pain the free software crowd, Microsoft has done a good job with Visual Studio Express.
I currently have no clever signature witicism to add here.
I swear by Eclipse - I mostly do Java these days though, but I do have it setup for C++, Perl and PHP as well. :-)
Good plug-in support - easy to install and update.. what's not to like?
Integrates with most versioning tools through plug-ins (CVS, SVN etc).
Runs on all platforms. It's great.
I use Apple's Xcode with the Ada plug-in from www.macada.org
Vim with a bunch of addons has been good enough for me.
Colorless green Cthulhu waits dreaming furiously.
I use Eclipse http://www.eclipse.org/ for all my IDE needs. I have found that it works well on any platform (and with any language) that I find myself sitting behind (or coding in). Eclipse gets my vote mainly for its very wide language AND platform support.
The world's smartest bug zapper www.zapstats.com/kickstarter
I use Netbeans 5.5. I did upgrade to 6.x but quickly reverted back when I found out it did not support auto completion without having to import the package first. Maybe this was a bug in Netbeans 5.5 but I did like the way I didn't have to stop typing, use the keyboard combination or right click and select "Fix imports". Having to do this just to get method completion for something like a Hashtable was unacceptable to me.
Summation 2
Notepad++ isn't really an IDE but it's probably the best c++ editor I've found for Windows. If you want a full blown IDE then Eclipse is probably your best bet. It's written in Java but with a little fiddling it's not too ugly. As for Dev-C++ it's probably lost support because it's written in Delphi of all things.
Years ago I worked mainly in MS Windows, and I used Dev-C++ as the free IDE, because it's fast and simple.
Then I switched to Linux. Tried KDevelop for a few days but didn't like it. Then discovered Kate, which can work as a sort of IDE, because you can open multiple documents, and open a console window at the bottom to type compile and run commands.
Then KDE4 was release and Kate suddenly was unusable for programming (due to ruined search function). And that's when I discovered Geany, which is really nice, it has the same functionality as Kate but is more clearly geared towards programmers.
Geany works great in Linux, I see that it's cross platform, so I guess you can also get it to work in Windows. But note that due to Windows not having the same compiler tools as Linux available by default, it might be handier in Windows to have something that comes with its own compiler like Dev-C++ :)
Express edition. Free of charge.
The error with getline is a bug with the library/compiler etc. This is separate from the IDE. It's not very difficult to modify the compiler/C runtime etc VC uses - its just an editor which calls out to other executables to do compilation.
In any case - I'm sure that problem has been fixed with Visual Studio express - Microsoft actually do IDEs and compilers very well, especially with their last few iterations. 6 is pretty old.
Personally I use vim on unix. But when doing GUI work on windows, Visual Studio is hard to beat.
I.O.U One Sig.
http://monodevelop.com/ - Supports C, C++, C#, Asp.net.. rather nicely I might add.
-Troll, Flamebait, and Offtopic are NOT equivalent to disagreement.
Thank you
vim of course
Why UNIX?
Say you're working with git (but it may be the same with other VCSs, not sure).
Say you run git-commit -a (with no -m) in a M-x shell. Then git wants to spawn your $EDITOR so that you can edit your commit message (and see what you're committing).
In that case, you'd want either emacsclient, which tells emacs to open up a new window for the to-be-edited file (and when you say you're done, emacsclient terminates).
Or, you know that the thing that call $EDITOR from M-x shell require very light-weight editing, so you want a small editor which doesn't use curses.
Yes, I'm seriously suggesting to learn how to use ed. If you know sed and/or vi, it's as simple as spending five minutes with the man page, plus having the man page open for reference the first few times.
It's also a powerful tool for programmatic text manipulation, sitting in a niche where sed is not powerful enough and perl/sh/... is too general to do what you want easily. [it's kinda' like sed but with the whole file in the pattern space and with a few more powerful transformations.]
I use Visual Studio exclusively when developing in Windows. My only complaint is the lack of multi-monitor support but that's coming in 2010.
and I keep them here:
http://www.marthastewart.com/goodthings/magnetized-pin-box
It looks cute, girls get interested in the field.
The lunatic is in my head
Go read the article. He said "free".
Exceeding the recommended torque is not recommended.
What else?
Try SharpDevelop if you ever decide to trade in C++ for C# and the .NET framework.
http://www.icsharpcode.net/OpenSource/SD/
http://en.wikipedia.org/wiki/SharpDevelop
I'm not really a Microsoft platform coder any more, but I've used this one in the past and it's not bad. Basically a free (as in speech - LGPL) clone of VisualStudio.
Be careful. People in masks cannot be trusted.
I've been using NetBeans lately for C/C++ development, and (for the most part) it has it's usual awesome editor features. Unfortunately, the C/C++ plugin only works with the Cygwin/MinGW development tools on Windows.
I'd say that it's most useful editing feature is it's code completion- it completes quite a few of the usual syntactical characters, and it enters them for you in a way that makes sense. Compare that to Eclipse, which only fills in (as far as I know) parenthesis and some brackets. Being accustomed to the completion NetBeans offers, I found the way Eclipse completes characters to be more frustrating than helpful.
For example, if you have this mostly-typed statement (')' autocompleted by editor):
...you might think that pressing the ';' key should make the cursor jump to the end and skip over the ')'. NetBeans will do the small things like this, where I haven't seen Eclipse do it.
some_function(something()[cursor])
I haven't used Eclipse as much as NetBeans, so I may have missed the "turn this feature on" checkbox, but I've always found NetBeans to be a more intuitive editor. I'm not an expert C/C++ programmer (Java is my main language), so I could just be making assumptions that may be true for one language but not another. Either way, its just my $0.02.
emacs may be many things, but it's not buggy. It's an app which can run for _months_ without trouble. In eleven years I do not believe that I have ever managed to make it crash.
Exceeding the recommended torque is not recommended.
Im surprised at no mention of Komodo. The free IDE, Komodo Edit, is extremely nice. I use exclusively for python code and I've found the in-line syntax checking/bug checking a handy feature. Also the ability for it to recognize my own internal function/variables in my modules is extremely handy when I have lapses in my memory :p.
Padre for Perl, with now have all the goodness of plugins for catalyst, mojo and fantastic support, did I say free?
I recommend using no IDE.
Well, you would probably get more than just IDE with that, as TheIDE is quite tightly coupled with the U++ library (http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_3.png, http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_4.png), anyway, ide-wise:
- it has cool highlighting, including highlighting of C++ blocks and coloring parenthesis (see http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_2.png)
- its C++ code-parsing abilitites (for purposes of code-navigation and 'intelisense') are at the moment said to be better than CDT's or at par with Visual Studio, although the problem is that it parses only the project files (not 'external' headers) http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_5.png.
- if you are rebuilding large projects often, it has very fast build process. It uses two tricks, one widely known (using multiple CPU cores to launch compiler instances), one special (combining files to avoid header reparsing). In practice, on quadcore CPU, it can build up to 16 times faster than plain make.
- works in Win32 and X11.
But there is also a drawback for many users:
- as it adds a strong crossplatform modularity layer, it gets a lot of suffering getting used to it. Simply do not expect your usual Visual Studio copy...
Midnight commander's built-in text editor colorizes code in many different languages. I've been using it for probably about 8 years now, including all the development I did for college projects. With the exception of when I was forced (read required by professor) to develop something in VS, I found it to be stupid slow, buggy, and just downright frustrating.
Also, there are simple lightweight text editors which work great without all the bulk of a full IDE, like TextPad, Kate, etc. TextPad has a free version which has an annoying pop-up at the beginning, but that's it. Essentially, its a commercial version of Kate anyway.
So yeah, text editors for modifying code, then compile with gcc/javac/whathaveyou. Its free, fast and works.
Why is it nobody seems to know about the excellent CodeLite? Described as "a powerful open-source, cross platform IDE for the C/C++ programming languages (build and tested on Windows XP SP3, (K)Ubuntu 8.04, and Mac OSX 10.5.2)" see http://www.codelite.org/
Not free, and also no longer sold for Windows, but it's my favorite IDE of all time. I still use CW9 on Windows for anything that doesn't require absolute latest C++ compiler/libs (mainly, my MUD, which I do my dev on Windows, but run it on a Linux server).
CodeWarrior has a feature no other current Windows-based IDE has - independent free floating edit windows without being locked into an MDI container with grey backdrop. I'd gladly pay a few hundred dollars for a modern, actively supported editor that had such a feature (I hear SlickEdit has been planning it, but they have yet to deliver).
Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
I'm essentially a beginner in C++ programming and at least for that language I found extremely easy and straightforward doing projects on Qt Software's free IDE. Even if you don't implement their toolkit in your projects, you can still have a stable and unbloated environment to do some serious coding.
There is only one caveat, afaik, with Qt Creator. It's still in version 1.1.1... this means it probably misses some features (or has some not so obvious bugs) which shall probably be covered in later major releases. Nevertheless, if you bind Qt's capabilitities (ie, signals and slots) to your C++ projects there is no better IDE to unleash your productivity!
You can have more information and download your free copy here.
"Sum Ergo Cogito"
Vi is one editor every professional should know the basics of because it's very feature complete and versatile. Emacs is more specialized but I'm not knocking it. However if you're developing today, you need to move away from modal editors that have awful help systems and no menus. They simply don't encourage learning and get in your way if you're away from the editor for too long and have to try to remember obscure commands (or look them up!). Note they are EDITORS. An IDE does much much more. You should also be using IDEs and editors that support multiple languages. Gone are the days when a computer professional could afford to know just one or two languages. Who the hell wants to learn the quirks of different editors for each one?
These posts express my own personal views, not those of my employer
3.5 isn't even too bad.
i wish i could stop
I've used several different IDEs, with several different languages, for many different programming tasks, over the past decade. I have encountered exactly one instance where having a "project" be anything more than a collection of files I work on at the same time was actually a good thing. Every other time it has simply been an obstacle to bottom-up design, by forcing me to make a lot of decisions about the structure of my code before most of it had actually been written.
The one time the project-oriented IDE was a good thing, I was working on a large app with more than a dozen people who never got to all meet at once, with a central authority dictating the general structure of things to make sure we didn't duplicate effort or step on each others' toes. There was AI involved, so having an integrated debugger to figure out why the AI was making particular choices was very useful. Kdevelop served us very well.
Of course, large development teams are inefficient and prone to communication problems that cause delays and bugs, so they should be avoided whenever possible, just like top-down design. Most of the time, I'm either working on incremental modifications to mature code, where a glorified source browser is sufficient, or writing a small utility from scratch by myself, where I really just need a text editor and a command line. I generally use kscope for the former, and kate for the latter. They get out of the way and let me code.
Sure, I still use a debugger, but the overwhelming majority of the time it's to analyze dumps from crashes I can't reproduce easily, so integrating it with the IDE offers no benefit. A debugger is no substitute for understanding the code, and I can count on one hand the number of times there have been enough control flow-relevant variables being modified at once to make that something I couldn't work out in my head or on a whiteboard.
There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
Personally I am happiest when not stuck in some program pretending to do everything, even if it would succeed admirably.
So for me, it's screen with at least one nvi session and one shell for compiling -- but usually many more, and lots of open manpages for reference. Doesn't even matter much what shell, as long as it supports arrow-up-history and tab-completion. Of course nowadays I have to have a web browser around, sadly very little way around that, so it's X and that and lots of XTerms... many of which sport screen again for various purposes, like irc.
The point? The magic isn't in the software, though it can help a bit. If you're used to the command line then at some point you might realise that speeding up your workflow is as simple as #!/bin/sh. Or any other language you might choose for the task; awk, sed, C, C++, perl, what-have-you.
Forgot to mention that if you're using the monopoly "OS", the native version doesn't work. Cygwin's does. Right now I'm doing Perl/Tk development (on the PHB's XP system) with Cygwin & emacs. Works well. It also lowers my blood pressure considerably to have bash, grep, find, ls, and other real utilities on that otherwise abominable platform.
Exceeding the recommended torque is not recommended.
Does anyone remember Source Navigator? It was actually an OK IDE, but seems to have died. Since then I have used Eclipse, but even though I frequently DO work on 10K+ lines of code, I find Eclipse often to be a pain.
Emacs is simple and once learned can be very useful and powerful. Combined with standard unix tools you can get an amazing amount of stuff done without the big bloating program. The advantage is that these tools are available on most platforms (yes, even Windows) so you don't have to relearn the IDE when it disappears (like SNavigator did.)
I develop plenty of number-crunching code on different *NIX hosts, but I login to the network form a Windows computer. I found that BVRDE offers a rather pleasant developing environment. I also looked at NetBeans, but BVRDE allows to access remote sources through (S)FTP, a feature that is mandatory here.
YMMV but every time I load up an IDE I find myself saying "wow" and "cool" for about a day and then getting back to terminals and editors. It's a matter of power and convenience. I am writing a text program so why shouldn't my interface also be powerful and expressive (i.e. a language).
Graphical-Vim is very powerful and lets me edit while testing and running ( a big part of what IDE's do) the difference is that the testing an running all happen in a real environment (not some tiny window in the bottom of an IDE) which I can set up and modify as I go along.
I think that what I am saying is that IDEs try to take control of lots of things and I end up fighting with them to get what I want. So I decide in the the end that they can f** off and I go back to the command prompt.
* for .NET development on windows, Visual Studio Express / SQL Server Express / SQL Server Management Studio Express
* dynamic typed languages, PHP/Perl/Javascript, Komodo Edit (Linux and Windows)
* MySQL - MySQL GUI tools (Linux/Windows)
* Lightweight Windows text editor with rudimentary highlighting - PSPad (HTML, Javascript, C#/ASP.NET)
* recently been getting into Qt/Linux and Qt Creator I am finding good for that - has its quirks but it's newish
Geany.It's ported to windows too.
If you're mostly writing console apps, you might like it.
PROS:
LIGHTWEIGHT, fast, small & simple (almost Notepad simple), syntax hilight for lot's of programming and scripting languages
CONS:
No GUI designer stuff I think
Hoping that I'm not about to start a flame war: why?
I should add to myself (sorry for the self-reply): I hope I'm also not feeding the trolls. I mean, seriously, 10 klocs is too much? On second reflection, that has a mild troll odor to it. At least as far as I nose.
But even if I am, I think I'm making valid points that not everybody knows about or would have though about.
Mostly Eclipse. Some Notepad++.
... my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005!
Me? I've been using Dev PHP for a long time, so long that I just now noticed it hasn't been updated since 2007!
Likes? Fast, simple, doesn't-get-in-the-way, good syntax highlighting.
Dislikes? Just one: Search is weak. Search is regex by default, which requires an extra step to search for a particular codeblock. Worse, it doesn't wrap by default, so I have to scroll to the top before I search for something near the top.
It's a project that was developed for a while, dropped,picked up again, dropped, etc. so there are multiple "versions" of it floating around as of a year or two ago. I linked to one of them.
I have no problem with your religion until you decide it's reason to deprive others of the truth.
If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.
While the handling of Vi or Emacs actually *is* breathtakingly bizar and unwieldy, what you're saying is not correct. If someone actually takes the time to learn to use Emacs and the extensions it offers for developement - which can take a few years - it can be the most powerfull and fast IDE out there. And it opens files upwards of 40 MB (that's Megabyte) in half a minute and then you can navigate around them with no delay at all. That league of performance is the reason I started using it. In terms of performance Emacs is the most powerfull IDE on the planet.
Then again, I started using Emacs 3 years ago - after briefly considering the purchase of Macsperts new darling child TextMate, basically a modern Emacs rip - and I still can't bear it for longer than 10 minutes - mostly because it so totally doesn't comply with CUAS (Common User Access Standard). Yet then again, Emacs was created when CUAS didn't even exist, so that's no fault on behalf of Emacs.
Bottom line:
If you are willing to invest months (!) of time actively learning an IDE, the cli version of Emacs will be with you until the day you die, as it runs well on everything that uses electricity. Up from the most powerfull supercomputer using the most bizar unix variant right down to a 10-year old handheld PC.
We suffer more in our imagination than in reality. - Seneca
On what planet?
I've yet to choke emacs, on gigabyte files. (data & logs.... NOT code!)
To be sure, it can take a while to load a real monster, but if you're patient, have enough swap space, and take the time to reminisce about the '386 days, it _will_ work.
Exceeding the recommended torque is not recommended.
I have used Codeblocks for the last 3 years now. It was pretty good when I first started using it and their latest update to version 8.02 was just icing on the cake. Plus it uses the GNU compiler for windows which make the code pretty cross platform if you aren't using OS specific calls.
I've written console apps, graphical apps, compute games, to libraries that are being used at my university with this thing. Its basically everything nice about Visual Studio without all the bloat.
A while back I toyed around with Eclipse (with the C++ add-ons); I eventually gave up on it since its behaviour was really erratic while attempting to debug programs, making it nearly impossible to do so. I'm sure I was doing something wrong, but nonetheless sometimes a configuration would successfully manage to get a debug session going, while at other times the same cfg would balk. I didn't care too much for the interface to the debugger as well. Dev-C++/Bloodshed is still good, even if it's a bit dated; my current favourite is Code::Blocks. It has a few bugs in it which need ironing out, but still it's a great IDE (cross-platform too). Note to the 1st /.er: I had a few problems with Code::Blocks crashing when I first installed it too. It would freeze on startup; I investigated with Process Explorer and found that I was accumulating instances of the MinGW compiler which would linger after the last failed start, and that if there were such the program would freeze again. I deleted them all and some of the freezes cleared up, but not all. Finally I moved the C::B init file into the same directory, dumped the registry entries into a file and then wiped them, re-installed them only for the current user (not sure if this was the cause)-- I haven't had any problems since. (?)
Geany http://www.geany.org/ is small, fast, and has the basic features I need. It has syntax highlighting for everything from Assembly to Latex, Java, C, C++, HTML, you name it. And (very important) it stays the hell out of my face and just lets me do the job. I love it.
At the moment I'm developing a Python based web app. I started using PyDev/Eclipse but found the environment more hindrance than aid.
I then got the idea to package up my development environment into a Virtualbox VM. I modeled the VM as closely as possible to the production environment. I run a screen session with several Vim instances (using windows and tabs). I then ssh to the VM. I find this convenient for a number of reasons:
In my experience, having your development environment behave exactly the same *every* time you use it is not to be overlooked.
I can't remember the last time I forgot anything.
I use Qt Creator, xemacs and vim. On all platforms.
-- "Perceptions create reality. By changing your perceptions you change your reality."
Comment removed based on user account deletion
Oh, stop, please. I can't take it.
Exceeding the recommended torque is not recommended.
- MS Visual Studio, really, don't look for an alternative on windows if you don't have to, it is the best IDE available.
- Qt Creator for Qt on linux/Windows as Qt is missing msvc integration from the free version, waiting for kdevelop4 to get a little more stable
- netbeans + c++ plugin for interplatform projects that cannot be done with qt.
I used DevC++ for quite some time until I found out that it was out of date as well. Since then I've used Code::Blocks, and I find it to be quite an improvement. Since it's cross platform, working on different operating systems is pretty easy too.
KDevelop is my alternative choice. For all intents and purposes, KDevelop is my favorite IDE, but since it's only on Linux at the moment, Code::Blocks is my best choice for now. (Still, KDevelop is quite powerful, and I'm eagerly awaiting the cross-platform release.)
Eclipse is also a great choice, though I haven't used it nearly as much. I feel it's a little more focused on Java development, but many /.ers swear by it, so it's probably worth a try.
And on a final note, I've been using Vim a lot more often lately, and with the IDE plugins detailed in the Ars Technica article, I may make that my IDE of choice in the near future. (For others, there's Emacs. Both are great, take your pick.)
I'm stuck with GVIM + csope + ctags + a few other plugins... Can't get used with anything else. This combination works just fine.
I find KDevelop to be excellent IDE for C/C++ development. IT has few rough edges, but tons of features makes it simply the best choice. Integrated debugger, valgrind and cachegrind support, integrated documentation viewer, doxygen generator, ctags, version control etc.
Most professional Linux developer I know are using KDevelop. Others are using Vim and Emacs. I have Emacs guy here who - when exposed to some nasty KDevelop's feature - always claims that "Emacs supports it too, I only have to find and install proper extension". He usually fails or forgets to do so.
Seriously. Why bother? IDEs are so hard to simply so hard to setup. Whenever I try to use one, I always end up fighting with trying to add nonstandard libraries, or hooking it into the code repository. It's horrible. Seriously, a three line makefile is all you need. It is so much easier just being able to say, "You! Compile this, with this option." It's 50 thousand clicks and it still doesn't work.
God, IDEs suck.
... but Visual Studio Express is actually quite good. I'm a Linux guy, and I use Komodo Edit (I do mostly "dynamic language" development now) and before that I used Eclipse for C/C++ and Java, and although Eclipse gets a lot of things right, it can't beat Visual Studio's breadth of features and simplified work-flow. Of all the things MS has done over the years, VS is hands down (IMHO) the best. They don't give it away with all the features so as to not kill the 3rd party market, but it's clear nothing out there in Win[32/64] land comes close (especially for C++ and C#).
It was necessary to develop monolithic graphical development "environment" programs for windows because it lacks even the basics for developement. Thus, windows "IDE"s are an environment within an environment. Unix was designed by programmers, for programmers. Unix IS and IDE.
The first thing that comes to my mind is Eclipse CDT: http://www.eclipse.org/cdt/
It has been around for quite a while, it's mature, frequently updateted, build on top of Eclipse.. definitely worth a try, unless you want to work on a pc with little memory - it's java, so it will need lots of it.
On Windows you don't really get much choice about using an IDE but I'm suspicious of unix coders who use them. If they need to be hand held to that extent while developing perhaps their skills arn't quite up to the job. Vi, gdb/dbx and strace should be all any unix/linux coder needs.
No I'm not trolling, those are just my old fashioned get-orf-my-lawn views. YMMV.
I've did a 60K C project back in the day using vi, gcc and dbx. Never had any issues. Perhaps you're just not up to being a developer and would be happier doing web design or other pointy clicky type IT roles?
Visual Studio is actually very good.
Really?
Last time I checked, you had to move your hands all the way over to the arrow keys just to move around in your text.
Sure, you can cheat and get Ergo Elan keyboard from Kinesis, which puts the arrow keys in what's essential the Fn/Ctrl/Alt/Space "sub-bottom" row (and it puts Ctrl, Alt, Space, Enter, PgUp, PgDn, Home, End, Delete and Backspace under your thumb; go look at keyboard pr0n to see how it makes sense). But that's still in the sub-bottom row. Way harder to reach than the home or top row.
I don't think it's "actually very good". I think it gets the very basics wrong. It may have great features that are easier to use than in emacs and vi, but if I'm constantly pissed of by having gross inefficiency or discomfort imposed on me by poor design decisions, I'm not going to be happy and (thus) I'm not going to be as productive.
And it's not like Microsoft doesn't have the resources to fix the editor: they have many in-house coders who prefer to use emacs (more than they like to admit, in any case). Why don't they ask them why they prefer emacs, and think about how they can make VS provide what emacs users want?
(How do I insert 78 '#'es? How do I move forward five words? How do I select for copy-pasting the current function? How do I go to the next preprocessor directive? How do I jump to the matching parenthesis? How do I navigate the sexp tree? How do I look up in three seconds what a key does, or which keys a function is bound to? How do I jump to a function/struct/union/enum definition? All without a mouse, of course)
wxDevC++ is the successor and still actively maintained. Laurent.
VIM is an IDE by all means. What do think does something need to be called IDE that vim has not?
Just because most people using vim are not using most of those bloated features does not mean they are not there.
Can you only move around in your text with arrow keys, page up/down and home/end? That's a deal breaker for me. I've given VS some flak for that at http://tech.slashdot.org/comments.pl?sid=1245985&cid=28106773 but it applies to most editors except emacs and vi.
Do you really need anything else?
I'm surprised no one has mentioned Anjuta yet. I've tried it a couple of years back and found it quite usable. It may not be as sophisticated as MSVS or Eclipse, but is somewhat like dev-cpp, which has been mentioned. The latter being for Windows, I wonder what platform /. posters actually use/develop for !
and nmake. Who needs fancy syntax coloring. Step debuggers are for weenies who can't manage to use printf()
-=[ place
Try Ultimate++: http://www.ultimatepp.org/
From the site:
Ultimate++ is a C++ cross-platform rapid application development suite focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment.
Rapid development is achieved by the smart and aggressive use of C++ rather than through fancy code generators. In this respect, U++ competes with popular scripting languages while preserving C/C++ runtime characteristics.
The U++ integrated development environment, TheIDE, introduces modular concepts to C++ programming. It features BLITZ-build technology to speedup C++ rebuilds up to 4 times, Visual designers for U++ libraries, Topic++ system for documenting code and creating rich text resources for applications (like help and code documentation) and Assist++ - a powerful C++ code analyzer that provides features like code completion, navigation and transformation.
TheIDE can work with GCC, MinGW and Visual C++ 7.1 or 8.0 compilers (including free Visual C++ Toolkit 2003 and Visual C++ 2005 Express Edition) and contains a full featured debugger. TheIDE can also be used to develop non-U++ applications.
U++ distributions combine U++ with 3rd party tools like MinGW compiler or SDL library to provide an instant development platform.
I'm strongly tempted to label this another 'bloze problem. I'll admit I've never tried a huge file on Winbloze. I've loaded and worked with dozen-megabyte files in Linux, and emacs on Solaris can handle a gigabyte file from halfway across the continent via nfs.
Exceeding the recommended torque is not recommended.
Tip of the week: Even if you're not writing QT code, the integrated qmake builder works WAY better than the autoconf stuff.. then again, anything works better than autoconf ;-)
I wrote my first program at the age of six, and I still can't work out how this website works.
And it's not like Microsoft doesn't have the resources to fix the editor: they have many in-house coders who prefer to use emacs (more than they like to admit, in any case).
I demand a citation from a credible source. If they don't like to admit using emacs I fail to see how you were possibly able to come by this information.
is free for Solaris and Linux.
I've only tried it on Solaris but it's amazing on there. Every bit as good as Visual Studio on Windows, with some features that VS does not have.
geany, http://validator.w3.org/ http://jigsaw.w3.org/css-validator/, and firefox' console2
so, actually this is not _integrated_ since there is no one thing but 4 things. well. i have not found truly useful IDEs for my needs yet.
The only IDE I use is XCode, and that only when I'm working on some Mac-only open source package that doesn't include a Makefile.
I guess there might be some IDE somewhere that works cleanly with Make, but they all seem to have a thing about replacing a common portable cross-platform tool with their own proprietary project files... and I've seen where that leads all too often.
I've just rebooted my "hobby" after many years of absence (having generally been accustomed to using Borland products), and I'm using Codeview under ubuntu. It works for me, but the lack of mention suggests it's not that well liked. Am I wrong?
Visual C++ Express 2008. Its free. You get a good help (msdn) system. If you install Windows SDK (also free) you can 1. Create Console Apps - ANSI C/C++ and Win32 2. Create Win32 based windows/GUI apps 3. Create DirectX/Direct3D/Open GL apps.
Find it here. It does cost 15 euros, however. When I last tried it and the free alternative it was well worth the money.
Then again, I wonder what would happen to Eclipse, if I opened a 255 Meg file w/it. I have done this w/Vim and edited it w/o a problem.
The lyf so short, the craft so long to lerne
IDE has a rather strange notation to it, because it intents to do anything which it never can.
To really code I use a combination of various editors (based on mood and complexity of the task at hand) and to analyze source code there is nothing like Source Navigator. It builds various cross-referencing, symbol and function tables and has a very basic, but still functional and coloring editor window, too.
It can even launch your favourite editor for the current file right with 1 right mouse click.
It's not overly fancy, but everybody tells me: it really gets the jobs done without trying to get into your way (OK, the GUI is rather old-school and has certain quirks).
Cheers.
march is the month for ides! ther's precedents and all that
bring bak the ponies!!
So many comments about VI, Emacs, Ubuntu etc. Did anyone notice the original post said he works on WINDOWS ?
The vi support doesn't work too well. I've tried it. However, as it is easy to edit the files straight from the directories w/vim, you can just use the QT Creator as a debugger, for example.
Apart from the shoddy vi support I really liked QT Creator.
The lyf so short, the craft so long to lerne
Viplugin (commercial, 15 euros) and then there are the two other ones that did not work as well when I tried them 6 months ago.
The lyf so short, the craft so long to lerne
There are good free IDE's
But the best is Still Visual Studio 2008, specially when you work with .Net
I have used Eclipse to develop Java, but compared to VS2008 it sucks major!
In order of interest according to your requirements:
Code::Blocks
Anjuta
KDevelop
JEdit
Emacs
NetBeans
Eclipse
Anjuta and KDevelop only run under OSS Unix (Linux) but you can run them in an emulated enviroment - there is a no-hassle installation for such an enviroment from Ubuntu.
JEdit and Emacs are both editors that can be extended to IDEs and beyond. You may want to look into that approach.
We suffer more in our imagination than in reality. - Seneca
Actually, IDEs are fantastic, until you need to step outside what the IDE will do, then they are rubbish. Which is about 5 minutes into any non-trivial program.
To add my own opinion, start with CMake. I switched from GCC Autotools to CMake last year, and I'm not looking back. The great part about it is that it's much easier to setup than Autotools, and generates project files for Code::Blocks, Eclipse, KDevelop and Visual Studio. That makes your project trully portable across your favourite OS.
To answer the actual question, I strongly recommend Eclipse with CDT. I've also used jEdit and KDevelop quite a bit.
J-F
Goodbye Slashdot. You've changed.
I'm ashamed to admit, that I am old fashioned. For me my "IDE" is joe + jbrownie (http://www.onyxbits.de/jbrownie) when it comes to Java and joe + Makefile, when it comes to C(++).
Unix
Live free of IDE
Turbo C++ Explorer is also free but has not been updated since its initial release.
(The same applies to Turbo Delphi Explorer and Turbo Delphi for dotNET Explorer.)
I was using the Turbo Delphi version for a while before upgrading to Delphi 2007 and it worked quite well.
The key word here is an IDE, not a text editor...
Netbeans & Eclipse are both good. Netbeans fairs better with c++ in my experience. Both have their quirks... namely that space (particularly on a single-monitor setup) is at a real premium. I prefer Notepad++ for the windows world if you're going to go the text-editor route... it's more intuitive than the rest of the mix to me.
I use XCode, combined with Textmate (commercial), but XCode alone is pretty good, and I actually like it.
Nothing better for coding for your phone and desktop in the same IDE.
and if you think that emacs, and all those vi variants for that matter, aren't usable and productive just because _you_ can't work them, that sounds quite ignorant to me. Several of us here find emacs (and vi*) highly productive. IMNSHO emacs, gcc and Perl are the "killer apps" of *nix (even if they are ported to the monopoly platform - they lose something in the move).
If you think that the software monopolist is morally acceptable, I suggest you go read this, and this, and this. And then go develop yer Micro$oft apps on V$ (if you can still stomach them). See if I care.
The application I'm presently working on is actually targeted for Winbloze XP (against _my_ will). That doesn't keep me from writing it in Perl/Tk with emacs. When it's done, I expect it to run equally well in any environment (that supports Perl & Tk, which is A LOT). Try that with Visual Studio. I bet you can't, because V$ was deliberately engineered to make it as difficult as possible to develop for any non-Imperial target.
When I abandoned the Evil Empire, V$, VC++, MFC, and all of that rot in favor of Free software, I was overjoyed not only by the ideology but by the quality of the tools. I've never looked back.
And since when did astroturfers get mod points?
Exceeding the recommended torque is not recommended.
I've recently become responsible for a Drupal site. I have some PHP experience, but not with Drupal specifically.
I'm currently using NetBeans - it feels a bit heavy, it's not very good at following the spaghetti includes of Drupal, and it lacks line wrap. Hey, it's not originally my code :)
Are there any IDEs that are better suited for Drupal hacking? I'm making a lot of changes to the PHP code itself, so PHP is the primary focus. A big bonus would be if it was good at tracing execution of Drupal code, but I suspect this is impossible. Any suggestions are welcome!
Are you a grammar Nazi? I'm trying to improve my English; please correct my errors!
ISPF
I'm a Web developer, not an "actual" programmer, but I love BASH, ssh, and vim. I find GUI tools get in my way. Like using boxing gloves to play cards.
Try Komodo it's good and stable and runs on windows and Linux environment
anyone else share my favorite free, lightweight IDE, which is no IDE -- and no saved file either -- and happens whenever I build up a long one-line Perl script bit by bit, starting from what was supposed to just be a quick and dirty loop-around-a-regex -- the compile-test routine is a simple enter, the up arrow lets me make further changes, and versioning consists of pressing the up arrow twice whenever I fuck up!
QtCreator is coming along nicely. It uses gdb, which is a bit slow on windows, but I'm finding it very useful for switching back and forth between windows and ubuntu.
I would have to say I'm very impressed with SharpDevelop for .NET development. Plus they even wrote a book ("Dissecting a C# Application") about how they wrote it. On top of that it's open source and has an interesting add-on architecture.
"I have never let my schooling interfere with my education." - Mark Twain
NetBeans. It's had good support for C/C++ development for a long time. We use Eclipse and NetBeans at work and NetBeans is actually the more well behaved / light weight of the two. I have had netbeans running for about 3 days without closing it, working on a J2EE project and the IDE is consuming all of about 87mb of ram.
Lazarus is excellent for everyone familiar with Pascal or Delphi... Plus it can compile windows CE apps...
i was very happy to see this when i made my transition from windows world of visual studio over to linux, this ide is awesome, seems very powerfull
I use Visual Studio for C++ and Emacs for Python. Both environments have their strengths and weaknesses.
When in Emacs, I miss the "find regexp in entire solution" from VS and in VS I miss the speed, kbd macros and simplicity of emacs. At first I thought the "hippie-expand" of Emacs was useless compared to VS "intellisense" but after some tweaking, I prefer it. etc
I would not do C++ in Emacs (I do not want to waste time on make files, compiler switches, strange debug tools) and I would not use an IDE for Python (yet) since the ones I've seen are too clumsy and focused on the write/compile/run cycle. Simple tools like the command line, ipython, nosetests etc make up a great environment.
Conclusion, VS or Emacs: It depends...
I'm not a programmer, but I am a systems engineer. I write mostly small tools or automation. For Windows I use ConText, for Unix/Linux I use Vim
You can't spell evil without vi.
Can we get a "-1 Wrong" moderation option?
well, !notepad.
I had to tutor a new developer once. He'd obviously received the wisdom that using any IDE was a sign of weakness. I gently tried to modify this wisdom. After watching him robotically switch between Notepad (yes, Windows Notepad), without syntax checking or any other modern facility, and command line windows to execute his programs, I had to give up on him (oh, he wasn't a great coder either, I had to tell him that ignoring exceptions wasn't a great idea in a medical app).
I'm adept at vim and shell, and all my projects are based on ant builds for full command line support, but machismo is costing a lot of people a lot of time, and while I can understand not liking the extra weight of an IDE, I think many people are not giving them a chance.
If you are developing C++ in a Windows environment, Visual C++ 2008 Express is probably the best free IDE for you. Microsoft has a lot of problems, but one thing they do better than just about anyone is give you solid development tools. Install it and you can start coding immediately. You don't need to install and configure umpteen plug-ins like Eclipse. Also The user-interface is fast and incredibly easy to work with.
It's a different story if you need to develop for MAC/Linux. But if you just need to code for Windows, its far and away the best way to go.
Well then why don't you just explain it to us?
Your blanket statement that Free software somehow simply, automagically loses out to V$ in the areas of "usability & productivity" is an unsubstanstiated crock. Emacs is a mature, highly polished, extremely flexible/customizable IDE and the product of twenty-five years of user-driven development. It was probably the _first_ IDE. Vi is more tightly focused, but also an efficient, highly usable tool. Both have large, experienced, and fanatically loyal user bases.
Having used both, and Visual Studio, I _strongly_ prefer emacs and vi. You can't simply tell me that "they aren't usable". I find them more logical, efficient, productive (as in: faster) and _portable_ as well. I want you to explain just what you think makes V$ _soooo_ much more "usable and productive".
With the wealth of alternatives available (let's not leave out Eclipse, since it seems pretty popular too, as well as Free), I can see no reason to tolerate the moral bankruptcy of the factors of Visual Studio. But you don't want to talk about _that_.
So, enlighten us. What's so all-fired "usable" about V$? What makes it so superior to, say, emacs? What does it have going for it besides its Imperial market monopoly, with the accompanying shills, "analysts", and astroturfers?
And bear in mind that I place a great distinction between "User Friendly" and "Beginner Friendly". For "Beginner Friendly", I'll agree that the Imperial "Tools" are da bomb. Not being a beginner, however, "Beginner Friendly" is not what I want.
Exceeding the recommended torque is not recommended.
Delphi and Lazarus/FPC.
http://www.codelite.org/
Just had to throw LabView into this discussion. Been using it since version 5, available for a lot of platforms. Drawing you programs never gets old... :-) Optimum for routines less than 1000x1000 *pixels*.
When I'm doing web development (HTML, JavaScript, XSLT), I use the free version of Aptana Studio Professional, which essentially is a bundle of the Eclipse editor plus the Aptana plugins. I add the free AnyEdit Tools plugin so that it tabifies and deletes trailing spaces for me.
I am really surprised no-one mentioned QtCreator which runs on Windows too. You can use Mingw or the visual c++ compiler with QtCreator. Unfortunately you can debug only using Mingw.
I am wondering, though, what do others use for coding (and for Python coding in particular). Text editors are fine for many tasks, but perhaps there are more complex projects with lots of files which require something like Eclipse, etc. What's your experience w. that?
The Eric Python IDE is pretty amazing, with completion, and breakpoints with variable viewers, etc. First IDE to wean me away from emacs. Check it out:
http://eric-ide.python-projects.org/eric4-screenshots.html
If you're a student, you can also get Visual Studio 2008 Professional (and a few other things) for free under a student license at http://www.dreamspark.com/
I found out about Code::Blocks this year, and it's been working wonders for me. Simple, fast, has everything I need, project templates for SDL / Ogre3D / whatever, and works well in both Linux and Windows. That said, I've only used it for C++ on gnu compilers.
Previously I used Visual Studio (because that was better than anything else I'd tried), but I'm not looking back.
It's not about "not having a choice". Windows programmers aren't stupid, they figured out IDEs are far more productive.
To answer the question: Visual C++ Express is the one. Lightweight IDE, best compiler, most standards compliant, best debugger ... it's a free download so don't waste time looking at anything else.
No sig today...
I've tried a few IDEs and this is what I found for C++ development:
*Visual Studio*
- Best debugging
- Handles stl strings, etc
- Easy to change variable values while debugging
- Not very good with stl iterators
- Nice GUI for debugging
- Best interface
- Code completion, etc is all great
- Have to use project files: a pain
- A bit bloated (though not as slow as Eclipse)
*Code::Blocks*
- Debugging is pretty good
- Sometimes a bit buggy (Sometimes can't change variables and stl templates a bit weird)
- In theory does lots of good stuff
- Interface is nice
- Not quite as clean as VS but getting there.
- Allows plugins... could make it better than VS in future
- A lot less bloated then VS
- Project files are better than VS
- Allows for normal Unix makefiles
- Multi platform
*Eclipse/C++*
- Debugging not implemented in the C++ plugin
- Nice interface
- Really bloated, way too slow for me
*Emacs/make*
- I don't know how to use the debugging extensions and I don't feel like spending months to learn them
- Great when running things over ssh, no other method really works
Overall, I find that the debugging capabilities are by far the most important to me. So I use VS for almost all of my development. In fact, it's the only reason I still use Windows.
I generally force myself to use vi to edit smaller Unix configuration files. It's a good skill to have for when the pandemic comes. I visit many different Linux, BSD, and Cygwin hosts. The crap default version of vi on these boxes (or the crap termcap config) seems to have different rules about breaking insert mode. The worst of all are the ones that break edit mode if you press enter to create a blank line to follow your insertion, then cursor up to the line where you wish to edit. Beep! Ah, f.......k the mother of all stupid interactions. Every installer-default vi with a different rule for which keystrokes break insert mode should be forced to have a different name. vi66579 would be the default on OpenBSD. On the worst systems I break down and upgrade vi to vim if possible. I just don't like vi enough to invest in making it bearable. Sorry, potentially you're my one true love, but I just can't get past the mole on your nose.
For a long time xemacs was my primary editor. I sometimes hate, sometimes like, sometimes love emacs. I was willing to invest in it: two or three times a year for half a day of power tweaking. Enough to become proficient in psgml mode when I needed to use that. But I was never willing to invest on a minute by minute basis, so I never achieved full orgasmic enlightenment.
On an untangent, the same is true of my relationship to Lisp. A belief in Lisp is a lot like the faith of economists in rational agents: let's just throw away everything the cognitive scientists have learned about human limitations. When Kurweil finally delivers the neurobot to enable me to paren count like the Rainman, I'll jettison 30 years of blood, sweat, and tears learning all these other languages in a heartbeat. Until then, I rest my shift key.
For my current work in embedded development, I dove head-first cold-turkey into Eclipse 3.4 (Ganymede) last summer. It was a lot to cope with all at once.
I can't say that CDT was a painless transition. I went the fully integrated subversion/JIRA route from day one. I tied to work with the managed build system on some simpler projects. The limitations of the MBS tend to be inscrutable and obscure. The Eclipse documentation (mostly with IBM's thumbprint on it) consists of a masterful job of telling you what you could have guessed already in giant swaths of enterprise-ready declarative text, without ever telling you anything you need to know or can actually use. With one exception: if you intend to acquire your Eclipse skillz by hacking on Eclipse itself, there's a lot of value in what IBM provides.
Hacking Eclipse for me is not an option. I'm using Eclipse mostly for the CDT, so I don't even know Java (which doesn't mean I can't write it, just that I can't correctly set up a classpath in under half a day). I ended up having to write an error parser for a non-standard embedded compiler, which required some Java. Considering my profound ignorance of all things Java, the process was actually pretty slick. Except for diagnosing the classpath problem, which took more time than the multiple ascents on missing skillsets combined.
I don't recommend the Ganymede CDT as an instant-gratification experience. You need some tenacity to get over the learning curve, discover the necessary work-arounds, and train your eyeballs to parse context menus 1000 pixels deep, where most of the selections are the expanding variety. I have a wiki to taking notes on any new technology I'm learning. I nearly melted my wiki server coming to terms with Eclipse.
Having said that, a year later I now have half a dozen major language plug-ins that I use on a regular basis, including some math languages, scripting languages, and simulation environments. Compared to my xemacs days, I love the ability to group a set of projects across multiple languages into a workspace and treat the workspace as a whole.
The current CDT C/C++ parser is not half bad. Having read the history, I would have screamed to have tried Eclipse for C++ development pr
Eclipse. I mostly use the usual Java plugins, Flex Builder, PHP development kit, EPIC, PyDEV and it handles the little bit of C/C++ I do without any complaints. If the RIM JDE plugin worked in Linux it'd never get closed.
On Windows you don't really get much choice about using an IDE but I'm suspicious of unix coders who use them. If they need to be hand held to that extent while developing perhaps their skills arn't quite up to the job. Vi, gdb/dbx and strace should be all any unix/linux coder needs.
That's really cool grandpa. And how did you keep the punch cards from sticking in the reader?
Microsoft is the devil --and they make programming so easy, it's the equivalent of giving hand grenades to children. But while you're congratulating yourself for writing code in binary, those who understand modern IDEs are writing functional software in a few hours that could take you weeks.
>>I went to update my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005!
Is this necessarily a bad thing?
For every "it doesn't have snazzy new feature x" there's a "it hasn't broken/lost feature y". And you're comfortable and familiar with it. Stability has its advantages. Plus you *can* update the underlying programs if you really need to; they just haven't been rolled into an updated single package.
I'm an embedded systems programmer; we use IAR's ARM IDE at work (definitely NOT free). I used Eclipse briefly on a contract project, and I use DevC++ for my own little home stuff since using it for a course a few years ago. There's a balance point between staying on the bleeding edge, and working with existing fielded non-changing hardware that needs very stable updates from a stable development environment.
No seriously, Eclipse IDE sucks... Last time I tried to do autocompletion, I typed "std::" and waited for the list to show up... It took about 15 seconds and froze everything in the IDE. You could say it was because it was the first time and it had to cache, but no, it did it again and again ! I gave up before finishing my hello world. I don't care if this was improved, when you see that a software can allow a so poor level of quality you don't want to trust it. Moreover, it is overconsuming my memory and takes ages to respond !
I daily use Netbeans instead for web and java, and it works very well. C++ mode seems also to be good, but for C++ I prefer to use Qt Creator. Honestly, it is the most suited IDE for C++ that I ever tested, it is lightweight, has most of features I want and does everything I need (autocompletion, autoindentation, svn, debug, ...). Moreover, I know that it's not exactly the debate here, but if you want to make an application quickly and simply, just forget about VS : with Qt you can almost do a complete web browser by doing only drag & drop, and it compile on Windows and Linux very well (I use Linux, and I did some projects with a Windows user : we hadn't the slightest problem to compile and run our app on our respective platforms). Oh and by the way, it automaticaly takes the look & feel of your platform :)
I typically use vim for everything, except refactoring... which is when I boot up Eric4; a very decent IDE originally designed for python, but it looks like it supports other languages just fine now too.
The big problem I have with IDE's is that they're so bulky, and take up huge amounts of screen real-estate; annoying on a laptop. On a multi-monitor setup, an IDE is tolerable.
With vim running full screen, I get much more code on my screen in one go. ;-)
I use SATA now..
thats the best I got right now..coffee hasnt kicked in yet
The parent post may have been terribly rude, but I agree with the parent. I'll assume he was being sarcastic.
Anyway, I'm going to speak to those of you who want to indoctrinate people into using vim or emacs as if it was some kind of holy crusade.
The other day I began to read a science & technology magazine in the college I went to. There were a lot of things like instrumentation for earth sciences, translator software, and you know what? Most of them were built in Visual Basic.
Have you wondered why? Not because the language is good, but because the development environment allows you to create applications quickly without having to read a thousand manuals on how to compile.
And people busy with real problems don't have the time to "configure and set up these environment variables whatever". They want something that works FAST.
As for developer experience, here's something that happened in my last job: There were a bunch of vim/emacs fanatics out there. And there was this C/C++ project with a lot of buffer overrun problems.
So I did a recursive directory regex search using Code::Blocks. I copied and pasted the search results (all it took was a right click) and wrote a report. Why didn't they do that? Well, to do this the traditional "without IDE training wheels" way, they required to do a lot of command line stuff. And they were too busy "fixing bugs" using their l337 c0d3r 5k1llz so nobody even bothered.
IT'S ALL ABOUT PRODUCTIVITY, PEOPLE! It's not how "powerful" and "customizable" an editor can be (provided you have the time to learn over 9 thousand scripting commands and options), but how much time it can save you so you can do ACTUAL CODING. Same goes for the (insert your favorite linux image editor) fanatics. If you need to learn script-fu so you can do something that a commercial product does with just a right click, you're losing productivity time.
Not all development teams are scripting / shell experts. When a team needs to finish a project fast, standarizing the development tools is generally a good idea. Do you really want to standarize people into learning whatever macros and scripts you need to do a simple regex over all the project files? Are you INSANE???
The article poster did NOT ask for an editor, he asked for an IDE. Sheesh. You people act like if using an IDE would drain IQ points from you. Get over it!
Textmate... downloaded from Demonoid
Jason-Palmer.com
Why "don't you get much choice about using an IDE" on Windows ?
There's nothing you can do on Unix-style boxes that you cannot do on Windows.
Just download the Windows SDK for free from the Microsoft Download website, it comes with the command line VC++ compiler, and then install VIM or EMACS and ther you go, you can feel right at home.
The Ultimate++ library comes with a very decent IDE called (humbly enough) "TheIDE". Although it was designed to work with their library it's a very good general use IDE for C/C++, supports debugging, code browsing, is portable, etc.
As for the the library itself, it's quite good and I've used it on a couple projects of mine.
I do not think it means what you think it means.
An IDE is an Integrated Development Environment. That means all the necessary development steps for at least coding and compiling and debugging are part of the same interface.
That doesn't mean swap out to a different terminal session and type "make."
I've never understood the sad devotion to vi and vim and other obfuscated tools that UNIX elitists have. Sure I can use vi, but why in god's name would anyone want to unless they're forced to work over ssh for all of their development?
If you're comfortable with it, that's one thing. Recommending somebody else cripple themselves with obsolete technology that completely ignores how people actually work because it should be enough for anybody reeks of that famous Bill Gates quote.
i use source navigator http://sourcenav.sourceforge.net/ Not fully functional but very good for large classes Development somewhat stopped though
IDE ? I live in Emacs!
There I can edit, compile, grep, open-shells, and run gdb that utilizes emacs buffers.
It does Java, Python, PHP, Scala, Erlang, JavaScript, HTML, CSS, LaTeX, C, C++ and Fortran. Open source with an active development community. I used Eclipse until a few years ago, but NetBeans has come a *long* way in the past two years.
Then I used notepad.exe
Now I use notepad++
Eclipse, SQL Developer, Notepad++, Aptana Studio and Visual Studio Express C++/C#.
"Microsoft is the devil --and they make programming so easy,"
If you think an IDE makes writing the code any easier then I doubt you progressed much beyond "hello world"
"those who understand modern IDEs are writing functional software in a few hours that could take you weeks."
Not from what i've seen. They just spend more time pointing and clicking but don't solve problems or find bugs any faster.
Why not just use a good text editor that allows you to build directly from your editor? It will run on multiple operating systems, has a powerful find/replace function, syntax highlighting, tabs, folding, highly customizable, free, open source, yadda yadda yadda
Just go check it out, I've been using it for about 10 years at work and home and love it.
SciTE
http://www.scintilla.org/SciTE.html
I have been searching for a cross platform IDE with code completion, integrated help, search, projects, visual form editor, debugger, etc. I have found QtCreator to meet all of these qualifications. Give it a try:
http://www.qtsoftware.com/products/developer-tools
I've used Codewright for the last 10 years. It is a GREAT C editor. It's C++ understanding is a little lacking. I am trying to switch over to SlickEdit which is the best editor I've found.
I'm currently playing with Visual Assist X plugin for Visual Studio. It makes Visual Studio a great editor, but the brief keyboard emulation sucks.
Bottom line, get Visual SlickEdit!!!
Because it is best for Java and Web.
I use Visual Studio at work as they pay for it. At home I use Visual Studio Express as it is free.
for windows:
Programmers Notepad 2
http://www.pnotepad.org/
and MinGw
http://www.mingw.org/
PN2 has tons of features, add your own code clips, tools, etc. It seems to be actively developed. Supports all languages with code completes and syntax highlighting. Its very nice.
Its also included in winARM toolkit as well if you want to dev arm7/9 embedded systems.
They Live, We Sleep
Turbo C++
My favorite IDE is the combination of Python + wxPython + Boa Constructor. I tried to make the switch to IronPython, but it seems that it still lacks all the functionality of wxPython. Maybe in the future there will be a Visual Python Express Edition, only not yet.
"Editors", that's "Which Free IDE". We covered that in third grade.
Advice: on VPS providers
http://www.codelite.org/ Its the only IDE I've ever found comfortable to use on Linux. Eclipse isn't designed for C++ and feels clunky as a result. Code::Blocks was OK, but seemed to have too many bugs to make it usable. CodeLite on the other hand is designed for C++ and I haven't encountered any major bugs preventing me from using it productively.
"Which free IDE do you use?"
Neigh everyone mentioned either vi or emacs (I know they can run on Windows, but they are not acceptable as an IDE and all ya'll need to get with the times), a few said Eclipse (wtf Java?? yeah it has plugins, but it isn't a C++ IDE dammit!), and DevC++ is just dead.
I recently tried out the Qt Creator and I love it. It feels new and snappy, works well, and emulates Visual Studio's dialog creator (in my opinion, being Qt and not MFC, kicks Visual Studio's bug-laden ass). I haven't been able to really squeeze the useful juices out of Qt yet, but the potential is evident.
Visual Studio Express is great, and if you want to do MFC than thats definitely the way to go, but if you're just programming as a hobby or for personal projects then I suggest giving Qt Creator a try
After a quick download from http://www.drjava.org/ you can start using the super lightweight IDE that I frequently turn to, partly because you can evaluate Java statements on-the-fly with the interpreter behind its handy Interactions Pane. You can interact with code in a compiled class or just start interacting with any lines of code you type immediately. It's really easy to get some code going without the bulk of something like Eclipse (which I generally use for all larger projects). I may be a bit biased since Dr. Java was created by folks from Rice University, my alma mater, but I genuinely find it more useful than other lightweight IDEs specifically because of the Interactions Pane. It's been around for nearly a decade and the latest release was earlier this month!
Bam, 1 keypress to build.
Add this to the increase efficiency gained by editing your text with a real text editor and there is no way in hell an IDE is more efficient.
"linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
I don't often feel compelled to reply in this manor, but you deserve it. So here it goes:
LOL
What I really like about kdevelop is that it can let me write my own makefiles and just carry on with editing etc.. still the debugger works just great etc.. kdevelop keeps from being in my way which I find very nice..
If you're working and serious about it there is only one solution for programming on, and for, a Windows system and that is Visual Studio Professional. Let's go back to the car analogy world. If you're a mechanic, and you make your living from that trade, you don't buy tools at the dollar store. You buy them from the Snap-On or other professional tool guy. The same goes for development. Don't be cheap. Buy Visual Studio Pro. VS2010 is coming out soon. I would recommend using VS2008 express until VS2010 is released.
If you really want to use free, then use a VS Express Edition or Code::Blocks.
Don't think of it as a flame, more like an argument that does 3d6 fire damage.
When coding for Flash, I've found FlashDevelop ( http://flashdevelop.org/ ) to be the best IDE out there for doing AS2 (Actionscript 2) or AS3 (Actionscript 3) based work. Our UI team used it on the last AAA title we shipped and my current UI team is using it in our pipeline for the current games we're tackling.
The fact it's free and open source is great. The fact I can make an entire game in it without Adobe's Flash IDE, bringing in raw assets (mp3, graphics, etc..) and tie into compiled Flash assets (swcs) make it indispensable. I'm hoping the community efforts to get it working on Linux and Mac OS succeed as it's the only reason I start up Parallels on my Mac (other than to play a game or two of "Plants vs. Zombies.").
On side of "Emacs" one has to accept that some workflows would be impossible, since there might be no ready button for it. Side of "vi" is flexibility. Side of "Emacs" is conservatism.
I'm in danger of fanning the flames here but I really think you are way off target on the above statement.
If you lift the lid on what Emacs can do (as in, you grok Emacs lisp), then Emacs offers a level of flexibility that can't be matched by vi. I've written utilities built into Emacs to crawl through custom traces looking for specific patterns and summarizing them on the fly as you move through files. View-linkage routines to allow you to navigate two related files (not two similar files - we're not talking about ediff-buffers here) in lock-step. Idle timers allow you to keep internal structures reasonably current without causing the interactive performance of Emacs to suffer. The list goes on.
Vi is extensible. Emacs is more extensible.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
My choices for Visual IDEs:
Windows Platform (Ranked as numbered)
1. Visual Studio (free edition for C++)
(fastest C++ compiler, standard compliant, the best debugger on earth)
2. Netbeans with C/C++ plugins
(closest competitor to Visual Studio, save debugger front-end all other features equally good, simple project and solution management (as compared to Eclipse, very good for Java too, other language support, available both on Linux and Windows)
3. QtCreator
(I rate this below Netbeans only because it came later, unique feture is its bundles Qt SDK (the GUI library of future) available both on Linux and Windows)
4. Eclipse
Linux Platform
1. Netbeans (the best on Linux)
2. QtCreator (could have ranked it 1.5)
3. Eclipse
I spent some time playing with Qt Creator last weekend at the recommendation of a friend, and I'm definitely liking it so far. Code completion, code folding, and the integrated debugger seems to work pretty well. And it's cross platform Windows and *nix, with a drag and drop GUI WYSIWYG editor. I believe it's C++ only, but it sounded like that's type of coding you were doing.
I use emacs when i do some small codes. I really like the intendation and highlighting feature of emacs.
For large stuff i use netbeans. Both netbeans and eclispe are extremely large apps, but i feel that netbeans is lighter than eclipse.
As far as tha original questioners question goes, it seems he just wants a light weight ide to do some occasional coding on "windows". So emacs and vim are out. VS, eclipse and netbeans are not lightweight. That leaves him with Dev-C++ and CodeBlocks. The 2 are really good but its sad to see that Dev-C++ hasnt been updated in quite sometime.
The reason the big two (Vim, emacs) are so popular is that they honestly are better tools than you're getting with a normal IDE. The stuff you traditionally get with IDEs: code browsing, graphical debugging, etc. become less and less valuable the better you get as a programmer (the better programmers usually end up with specialized tools for that stuff, which are more powerful than IDEs). However, the advanced text editing you get in these tools only gets more valuable over time.
To each their own on their selection between the two, but I"ll describe my work in Emacs:
I use it on mac, and windows, and a few big-iron unixes.. I share most of my .emacs between them, with my own customizations. I use org-mode to make checklists and plans for my work (e.g. which code has testcases done, which ones have testcases to write?). I use yasnippet for a template/snippet library, which lets me embed lisp code that evaluates at snippet insertion time (like generating proper INCLUDE_FOO_BAR #defines, documentation blocks, or namespace declarations). ido-mode means I only ever have to specify a filename by substring (with tab-completion). CTags support means I hit Alt-. to lookup a symbol name in an arbitrarily-large project, without caring about how my project is built or the platform it's on. On windows Visual studio is my build tool, and debugger, and emacs handles the text itself. The difference is quite substantial, and worth the setup. The only thing I wish it had was a way to tell an external editor which line to highlight while debugging (I use the built-in editor to list code while debugging).
Care about electronic freedom? Consider donating to the EFF!
small projects I use vi, notepad++, etc. larger projects i use an IDE (usually netbeans).
netbeans for just about everything
IDLE for small python projects (netbeans otherwise)
visual studio express for c#
vi for console work
APL is the IDE, editor, debugger, interpreter, compiler, help center, etc. It is the one true IDE which I have used for more than 35 years.
Singing:
"Rho rho rho of X
always equals one.
Rho is dimension,
rho rho rank,
APL is fun!.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
I'm surprised nobody's mentioned it yet. My favorite thing about vim / bash / make / gcc is programmability. I'm a programmer, right? So I know how to program things. So if my editor, compiler, and debugger are all programmable (ie they're command-line tools that can be tied together with my shell, ie bash, or with screen), then it makes me happy. The real reason emacs keeps catching up to IDEs (oh and can read your email and news and surf the web) is because it's really, as I understand it (not an emacs expert) not so much an editor but a scripting engine for a dialect of lisp that happens to have a bunch of convenient editor-like features.
I don't use IDEs much myself; are they as programmable as the suite of command-line tools I use? I think they're not so much programmable as they are configurable, but that's just a guess.
Visual Studio is what I started on so I am biased to that, though I still am on v6 ('98).
...I'm going to have to discount any Java-based IDE as they will consume all your resources eventually.
I've been migrating to Code::Blocks which seems comparable, but with more compiler options. It recognizes gcc from a CygWin install and compiles native windows apps w/o needing cygwin1.dll. I even got it working with BorlandC++ 5 (free). Debugging is decent on it as well.
from 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
to 45 2F 6E 40 3C DF 10 71 4E 41 DF AA 25 7D 31 3F
not only a very nice free IDE but an open-source cross-platform class library. My code compiles and runs on Windows (32 &64) Ubuntu (32 & 64) Red Hat Enterprise, FreeBSD - thats all thats been tested so far but no reason to think the list doesn't continue.
Anyone still use Borland's CodeWright tool?? Very good tool for editing C or C++ code/projects on Windows. Have some good functions to outline functions/procedures and a "Brief" mode as well. For the Unix/Linux folks, you can set the editing mode to "vi" and you can use the same commands for vi in this environment. Sadly, they dont support it anymore but it IS a good tool.
This is the only IDE that's getting my vote atm. since it has a 'fakevim' mode plus a lot of other IDE features. being primarily a vim user having a vim mode is essential (even though it's not perfect). It seems to be pretty good in general, but I haven't used a lot of IDE's, I like it better than VS, Eclipse, and Netbeans, all of which I stopped using after an hour or so of not accomplishing anything.
If your a student you can get VS 08 and 05 for free via microsoft dreamspark program at dreamspark.com. As well as a bunch of other awesome stuff that I like cause Im a windows guy. Posted AC because I dont want to get flamed for saying that
Can emacs/vim for example organize java imports or do some other useful automation, like create constructor (with proper arguments) that will initiate all instance fields in a class? Things like that greatly increase efficiency.
jEdit is a superb text editor. It is written in java so I can easily run it on Linux, Winblows and Craple. I mainly develop C++/Python on Ubuntu 64.
jEdit has a macro recorder and editor, and all kinds of plugins. One can easily browse for a plugin using the plugin manager and install new plugins.
jEdit allows one to customize nearly everything, syntax highlighting, code folding, hot keys.
I don't use any auto intent scheme. With jEdit, I can highlight several lines and simply hold down the ALT key and press Arrow Left or Arrow Right to shift the lines left or right.
jEdit also allows block selection, copy and paste. This is a real powerful feature.
Check it out! www.jedit.org
vim supports any language, since binary to natural languages -- just whisper in front of screen and it will writes what you are telling.
Take a look at http://www.codelite.org/. I occasionally teach C++ and I have the problem that not all students have a C++ dev platform installed. If they have one, I let them use it. If not, I recommend CodeLite. I spent a lot of time looking for an cross platform free IDE that I could recommend to students. I needed something that worked. Something that was pretty simple to get people up on running on. And, because students come from many backgrounds and have different ability to pay I really wanted something that was free. I used to use Dev-C++, but support for that project is over and wxDev-C++ is to closely tied to wxWidgets.
CodeLite works, is reasonable easy to learn, and it is free.
Stonewolf
Free, excellent!
I feel that I am older than the IDE, if you don't count the line number editor in BASIC. I learned to program using punched cards... Yes, I am that old and I am only 56. I have seen a lot of IDEs come and go and I have used several. (I was really in love with the original TurboPascal IDE on DOS. :-) I've used several others including different generations of MS VisualStudio. I think I have learned a lot about how programmers program.
What I have learned is that everyone has their own style that fits the way their minds work. If allowed to programmers will eventually find a set of tools that works for them. Once they have found that set of tools they should be allowed to continue to use them.
I learned to program during a time when it felt like every new project was on a computer with a different architecture with a unique operating system. Even machines with the same architecture might have different operating systems. (How many OSes were there for the PDP 11 anyway?). I got to the point where I would invest no (zero) time in learning the new OS. All I wanted to know was how to invoke the editor, call the compiler/assembler, run a batch file (if the OS was that sophisticated) and some basic file handling.
As the chaos settled it became worthwhile to learn some more sophisticated tools. I spent several years on a DEC 20 and learned emacs. (My brain and vi do not get a long. :-). About that time I ran into MG (also known as MicroGNU) a small subset of emacs written in highly portable C. I carried it along with me for many years and used it for all my DOS C and asm programming. I used gemacs on VMS. I have been using variants of emacs for around 28 years now. I am too the point where I do not remember the key strokes to perform a task, my fingers just do the right thing.
Emacs + make works for me. But, I do not recommend it to new programmers or casual programmers. If emacs works for you, you will find it, love it, and use it. If vim works for you, then you will find it, love it and use it. If VisualStudio works for you then... actually I would never recommend proprietary tools to anyone. Tomorrow you might find yourself working on a different OS and all your investment in learning VS will be lost. FLOSS tools can be taken with you. And, you can continue to learn them for ever because they can never be taken away from you. I still have a copy of mg in a .zip file somewhere. If I have to, I can make it work on any machine and OS that has a text based display.
Stonewolf
Microsoft's compiler creates much smaller and faster executables when developing for windows than GCC would (and most of IDEs I've tried use GCC in the background).
I find Dev-C++ clunky and buggy, and its integration with GDB is so poor that I find GDB to be of better use from command line. By contrast, the best debugging utility I've used on windows is Visual Studio's.
So all in all, for Windows, VS reigns supreme. (IMO)
Get smart. Make the switch to Java and start using Eclipse.
Eclipse is very nice IDE and very useful, though competitor to Visual Studio (which isn't free and very CPU/memory consuming) .vimrc file (http://dotfiles.org/.vimrc).
:) Goodluck.
Vim is great if you get to know most shortcuts and download (/create/modify) a nice
Check them out and configure whatever you want
Read and Comment at my BLOG
!!!
I use GPS available in the GNAT GPL packages at http://libre.adacore.com/libre/. It supports Ada, C, C++, Python, SPARK, etc. Its probably the best free IDE for Ada and SPARK, especially for use on large projects.
www.geany.org nuff said.
Netbeans is free and easy to install and works great. It supports multiple languages. Great online community e.g. support, documentation, tutorials, etc. It freakin' works. Everything about getting Eclipse up and running sucks. Installation, getting plugins, documentation, etc. If you can get Eclipse up and running it's pretty good, but I still like Netbeans better.
On Windows, two prime candidates would be Visual Studio (Express if you want it free), and Qt Creator. Each has its own strengths.
Visual Studio has two things really going for it as far as C++ development is concerned: code completion, and debugging. Let me explain what's so special.
Code completion is a damn tricky beast for C++. I've yet to see an IDE that does it 100% correct (which isn't surprising, since dealing with templates requires a full-features C++ parser and template instantiator just to get completion lists). However, of all C++ IDEs that I know, VS deals with C++ templates best. Some trivial examples to test it:
If the above behaves as comments describe, then your IDE understands operator overloading, templates in general, and template specializations in particular. VS (2008, at least) does it right.
Second is debugging. One real nice thing that VS has going for it there is type visualizers for the watch windows. Basically, when you have a std::list or std::string, normally, since it's a class, the watch window will just show all its members, and you'll have to navigate to the underlying data yourself (and, in case of list, actually go through the chain of linked nodes until you get to the one you want). In VS2005+, however, there is an ability to define custom visualizers for types, that represent an instance of that type in some more convenient way. For example, for all STL containers, it will display the count of elements, and list the elements themselves (as if it was an array); for std::string, it will show the string; and so on. Of course this can be disabled for individual watch expressions when you actually need to see the real members (but frankly, unless you're debugging STL containers themselves, how often would you want to do that)? That feature is even customizable, albeit in a limited way (but still enough to cover all STL, ATL and MFC containers).
Now Qt Creator shines in a different area - it's a very, very nice RAD UI tool. Qt itself is simply the best C++ toolkit for that sort of thing today, on any platform, and Qt Creator is decent IDE with integrated visual designer, debugger, and other nifties. Note that you don't get MFC with Visual C++ Express (and even if you would, it's much more ugly and low-level than Qt). You can of course still use something like wxWidgets with Express, but arguably it's still worse (too MFC'ish for my taste), and you don't get any integrated designers.
Visual Studio 2010 beta 1 - but you wouldnt hear about that on /.
I wish I still used Turbo C++ for DOS, more accurately. Back in the day, that was one hell of a compiler/IDE system - or at least, it was when I was a teenager. Of course, "the day" was 14 or so years ago, but still. I admit to secretly lusting after Borland C++ 3.x, but really, so far as I know, Turbo C++ 3.x had most of the same tricks of whatever version you picked up (DOS or Windows), and as I was a game programmer diddling around with hardware stuff on DOS, that was all I needed.
Which actually brings up another question - does anyone know of a GOOD knock-off of the Turbo C++ DOS IDE for Linux and/or Windows? I'm talking the text-based graphics here. The closest I found was some text editor for Linux I saw years ago that only bore a vague resemblance and ultimately didn't work well, and RHIDE (which was an IDE for DJGPP that started out great but the maintainer, so far as I know, vanished).
I've been looking for an IDE for quite some time for my students to use in class.
The requirements are:
1. It should be fast
2. Easy to download and not require an online connection to use/activate
3. It should have the usual editing features
4. IT SHOULD HAVE A GREAT DEBUGGER
I'm trying to encourage my students to use a proper debugger.
Here's what I know:
Eclipse: weird installation process... compiler/debugger need to be configured separately.. lousy debugger
Netbeans: also weird installation process.. compiler/debugger need to be configured separately.. lousy debugger
DevCpp: good installation.. ok use.. buggy debugger
Visual C++ Express: last time i tried you need internet to install.. hard to configure projects to use pure C.. good debugger.
For now we mostly use DevCpp. Maybe I'll learn Delphi and fix it up a bit.
XCode is the best I've used, and I use it every day.
I use Eclipse (For Java) but I know that they do make a C/C++ version. There is a real nice community surrounding the project as well.
Somewhere in a dark place you will find:
www.m1
Netbeans is the best IDE I have ever used. Netbeans is written in java so it will run on multiple platforms. While it has lost some
"street cred" to Eclipse it is still wildly popular and attracts developers to volunteer their time to add support for many languages.
Plus, Netbeans in and of itself is a development platform which can help you create some very nice apps.
If your primary development goal is to target Windows, you just can't beat Visual Studio Express.
It just has so many productivity enhancing features. IntelliSense is a godsend. Debugging tools are powerful; the editor is really pretty good... I don't think anything comes close. (For developing on Windows, anyway.)
I have tried NetBeans and Eclipse but I still find VIM easier
jEdit + Ant is the best I've ever used. I hate bloated IDE's that try to do too much and cram too much on one screen. Having to wait for my code to be typed in or trying to clean up IDE-created code is a waste of time. I just need syntax-coloring and indenting (along with building/compiling/coding from Ant). Code aid is OK too, but not necessary. I son't like Eclipse, Netbeans or Visual Studio. Beasts every one of them.
I've been using Eclipse for a few years now, as my employer decided to standardize on that platform (in the IBM "RAD" incarnation) for Java development (but I also have Ganymede for another development effort). A few gripes, yes...
- Different parts of the IDE behave differently. That is, one part looks as if the interface was designed by one committee, while another part seems to have been designed by a completely different committee with different evangelical tendencies. So many completely different approaches to interfaces, combined into a single IDE.
- I have yet to experience the editor doing very much that I actually wanted to happen. It indents the way it wants, and not the way I want. Configuring each new project's preferences can partially help, if you have the time to do that. Context highlighting and mouse over help? Good for 30 second system freezes. Sure... I can yank out the editor and replace it with something else. Not sure why I should have to, but yes, it can be done.
- Rebuilding projects after the IDE has eaten them can be quite tedious, involving days. Doesn't happen often, but you'll be (horribly) impressed when it does.
- The integrated debugging often seems to require Task Manager be running so you can kill the IDE and restart. Never fails to impress me...
Generally, I consider Eclipse "not ready for prime time." I remember better IDEs 10-15 years ago, but hey, they weren't free. Eclipse in one form or another is also mandated here at the office, so it's not going away. Oh, wait... There's SlickEdit/Textpad and the command line. Many here do seem to prefer that approach...
You ask what more I could want. There's actually lots of answers to that, but probably the biggest and most relevant is automatic documentation and syntax assistance. When you're using an API that you've used many times before, this is of course unecessary, but often you need to work with APIs that are at least a little unfamiliar. In this case, even something as simple as a listing of a function's parameter types and names, and preferably its return type, can help a lot (moreso if it has the Windows API IN/OUT/OPTIONAL tags). Ideally, the IDE would also display the documentation for the function (doxygen-style or even just a single-line comment) - this is especially helpful with macros since they are much less self-documenting. Most IDEs have these features.
Automatic completion of variable names and such is nice, but often you need more than that. The core C/C++ libraries aren't so bad, but many third-party libraries are rich with overly-long class, type, function, or macro names. Remembering these can be a bitch, and most editors will only auto-complete names that you have already used in the "document" (code). By comparison, most IDEs will build up symbol tables from your libraries, etc. which makes it possible to find the name you want even if you've not used it before. Visual Studio's "Intellisense" will even determine, based on context and previous usage, which auto-complete options you're most likely looking for and will place them at the top.
Background syntax check/compile. Rather than writing a bunch of code, running make, waiting while it recompiles *everything* because somebody touched a high-level header, and eventually getting to your code only to have some 157 lines of mostly incomprehensible error referencing things that don't even appear to be on the line for which the line number is given, you can get a nice red underline exactly under the incorrect tokens, with an explanation of why it is incorrect and often even a simple way to fix the problem (yes, I meant to put "using SomeRandomNamespace;" at the top, thank you for the reminder). This is also an easy well to tell if you've fixed a large number of those 157 errors, or only one, or you fixed a bunch but you create 37 new ones... you get the idea. IDEs do this kind of check, and it is a lot more helpful than slogging through a bunch of build errors.
There's no place I could be, since I've found Serenity...
I like Code::Blocks a lot, it lacks features of Visual Studio, but it is has plenty for developing applications.
When i started coding there was no such thing as an idea, really. I think my first IDE was turbo c++ (a dos application).
The one constant in my life has been VI(m) and i've come to rely on it quite heavily.
When I got into visual studio, there was even a plugin back then to make vi work as the editor for visual studio.
But I've also used alot of IDE's, they are "handy" for a number of reasons. Most of it comes from hitting compile and getting links direct to the place in your code when your code failed to compile.
In my more recent time i've used (and not hated) the following IDE's.
Code::blocks
KDE Kdevelop
Visual Studio
Eclipse
Netbeans (v5 was good - version 6 felt like i was coding over vnc via a 14.4k modem it was sooo slow and laggy).
PHPEdit (err, commercial now i think and only php)
Anjuta - fairly simple but binary and fast
Gleany - probably starting to stretch the meaning of "ide" a bit here
Monodevelop and sharpdevelop.
Theres more in there worth mentioning - I just cant remember them all. The thing I really prized in an IDE thought was its ability not to tie me to it (eclipse is great for this, mostly). Like VS and Kdevelop have massive code writing bits that do alot of work for you and when you decide "ahh, i need to use a different IDE" you spend alot of work moving away from them - thats frustration personified.
Eclipse is a beast of a tool, anything you can ever want to do you can find a plugin for (or modify settings to do it for you - like getting it to ssh into another box to actually execute the compile). The sheer bredth of whats available for eclipse is what sets it apart from everything else.
Kdevelop was/is absolutely brilliant at handling coding for unix/qt (it has a "manager" for the automake process which is just awesome).
And the rest all work quite well.
However, my last word is simply this - nothing (imho) can replace a good editor (such as VI). The IDE can provide briliant little extended functionality but nothing is anywhere near as important as what the editor does, this is where you type your code and ultimately the most important part of the process. The generic editors in most IDE's (including visual studio) do have some functionality that can be quite broad, but when you get to know an editor as well as you can know VI there's really nothing that compares. (by the way, im a VI boy, but coders i know who use emacs can do anything i can just as efficiently - so choose emacs or VI you cant go wrong).
The problem is learning an editor like VI (or emacs) takes patience and often its not until someone shows you some little trick they did in VI without even taking their hand off the keyboard that makes people go "wow, thats some pretty useful functionality" and you start wanting to learn more. But being able to do almost anything from the : menu in VI with a few choice commands is something that truely becomes invaluable in terms of efficiency (i.e. not reaching for the mouse). No one really seems to appreciate that until they actually see it in use though.
Open Watcom and Euphoria. Any Forth is fun to noodle around in, too. But the first two are about the easiest, fastest, and most portable (sorry, Visual-whatever people, but chaining myself to Microsoft is not an option.)
Frankly I'd rather wear a cowboy hat and drink out of a toilet than program in C++. Scala under Netbeans -- now that is the good stuff!
So far, I have used VS, VIM, EDIT, notepad, gedit, etc..and my favorite choice after VS is Code::blocks. It can be configured to create makefiles, projects, and can create them for VC and GCC. IMHO it is the next best thing to VS(and runs on linux)
Ultimate++ is a project as an IDE with a GUI Creator and a library (faster replacement for much of STL) with many additional helpful libraries that make C++ development so much smoother. http://ultimatepp.org/ Check out their forums as they are very active. I would download the latest SVN build from here: http://code.google.com/p/upp-mirror/downloads/list
Eclipse SDK or jEdit
I have used many IDEs over the years from Borland, M$oft, Metrowerks, IBM - but now I use Code::Blocks.
I write primarily cross-platform command line and server apps.
What I like about C::B is that it doesn't get in my way and I can easily switch back and forth between my Windows and Linux machines without skipping a beat. Using MinGW under the covers and watching my coding I am able to truly "write once & run everywhere".
C::B gives me the basic things I need and then gets out of the way... What's not to love?
I could use anything -- but C::B is consistently getting the job done for me.
I also poke at things from time to time with Visual Slick Edit and of course VIM ... but I wouldn't classify either of those as IDEs (not the way I use them anyway)
Stalinism works better than autoconf.
-I like my women like I like my tea: green-
VC++ 9 is OK. You just have to ignore/disable what you don't need, and realize that it really wants you to write C# or "Managed C++", rather than pure C++ so watch out for that.
But I'd also check out Qt Creator: http://www.qtsoftware.com/products/appdev/developer-tools/developer-tools (download at the bottom of http://www.qtsoftware.com/downloads). It's intended to be used to use Qt to make GUI applications but you don't have to use Qt. It's a nice simple interface, no feature bloat (yet?).
VOS/Interreality project: www.interreality.org
I'll chime in here with another plug for Visual C++ Express Edition. You don't get either MFC or ATL, but for what you want, you don't need those. Also, VC++EE can process makefiles. Augment it with Boost and the platofrm SDK, and you'll have a solid IDE for developing Windows application.
This might not be popular on this board, but for C++ on Windows with varying target applications there is only Visual Studio in some flavour. Preferably with the VI plugin. Nothing comes close...
I love source insight... but it's not free.
Are there any free IDEs that can match the power of source insight (Kdevelop is pretty darn close, any on mac/windows?)
I churn C++ code under VS2005 at work.
All in all, I like the IDE, although free-floating edit windows would be nice.
That said, I find Visual Assist indispensable.
It is expensive but if you can get your employer to pay for it, I highly recommend it.
I also use Artistic style (free) to reformat code, and PC-Lint ($$$) to find lurking problems.
I have used Several IDEs in a seach for a perfect one. Plain text like vi or gedit is fine, but at the moment I am likeing Code:Blocks