What is the easiest C++ IDE for students, non-programmers? [closed] - c++

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I teach programming at secondary school: this is our current status and I would appreciate any suggestions:
We have programmers club for advanced students. We develop in MSVC# (even commercially) and NetBeans, everything works fine
However, two thirds of the class are not developers: they are otherwise oriented, their job will probably not be in IT
According to our school agenda, we HAVE TO teach them some basics
So in the first year of their studies, we teach them something like "programming for dummies" to give them time to decide what they really want to do (programmers club requires to do MUCH homework)
The language HAVE TO BE C++ (for many reasons). Currently they develop in C++ Builder 6.0, which is slow and buggy in our school network.
So what would be the best solution for those students? The requirements are fast, reliable and very easy to undestand IDE. Console output is sufficient, something like "editor and play button". Visual programming and debugging tools are not required. The IDE should be free, preferably running on Windows.
My favorite was MSVC 2008 Express - it is really fast and pretty simple. But C++/CLI is not C++ (managed code is not the basics), so this is not an option. Any other suggestions?

You said it right there: go with Visual C++ Express.
Just because you can use it to write C++/CLI projects doesn't mean you have to. Just create ordinary Win32 console apps and you'll be using plain old C++, nothing managed whatsoever.
To clarify: C++/CLI is what you get when you create a Windows Forms, Windows Presentation Foundation or some other type of .Net-based application. If you create a Win32 Console Application, you will be using ordinary C++ without any of the managed Microsoft extensions.

Visual C++ Express does support native C++ developement. I would strongly urge you to upgrade to the 2010 version to gain some C++0x support; C++0x makes it much easier to program in C++ without touching the nasty bits.
However, C++ as a first language sounds daunting. Particularly for those without any further programming aspiration; it's complicated, easy to misuse, and will blow up with poor error handling in hands of beginners.
For some casual programming introduction, I'd recommend something like JsFiddle: they can do it from anywhere with no special tools, and whatever they learn they might even be able to actually use as non-IT guys. It's also much more fun to get immediate feedback when learning something, which is another mark against C++.
So if you have to use C++, use C++0x to make stl algorithms "just work" using lambdas and avoid iterator complexity using the range-based for (amongst other improvements).

I've worked with:
Eclipse for C/C++ Developers (at work and at home)
QtCreator (at a side project I was working on while working)
Microsoft VS (at work)
Code::Blocks (on my home laptop, with Eclipse, for fun)
vi (at work and at home)
Notepad++ (at home)
KDevelop (at home)
I think for the beginner, in my personal opinion of course, the Eclipse, MSVS and Code::Blocks are equally great. When stuff starts getting more complicated, you need to choose based on direction. If you're developing for Windows - stick with MS. If you're developing with GCC - stick with either Eclipse (Which is kindof heavy but powerful) or Code::Blocks (which is way lighter but not as sophisticated). Use QtCreator if you're doing GUI for anything with Qt, otherwise I wouldn't keep it.

Code::Blocks is the one I usually recommend for beginners. I'm not a big fan of the Eclipse CDT since I've always found it needlessly complex under Windows.
Since it uses gcc under the covers, you won't find any of those "helpful" changes Microsoft made to the language, like their so-called safe functions, which are nothing of the kind, and which render your code unportable.

If you don't want to scary students with nasty or bulky look of IDE. Choose qt-creator. It's looks nice. Looks simple, but at the same time is very powerfull.

I would have to recommend QtCreator, and it's a good thing to teach them to use a cross-platform GUI toolkit.

It sounds like you want Eclipse for C/C++ Developers.

Related

How do I go about making a GUI- enabled desktop app in "pure" ISO C++ [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am trying to make my first desktop app, but I am at my wit's end trying to understand C++/CLI. After several hours of trial and error, it seems to me that it is unrelated with C++( I may be wrong ). I am getting hard time making functions, classes, etc. work, and am unable to understand what is going on. So, I have decided to abandon it for the moment.
Please tell me whether I can make a GUI-enabled desktop app in "pure" C++, using just my Dev C++ compiler. Yes, it might be a better idea to use visual studio, but I want to return to it later. Right now, please tell me whether I can do it in "pure" C++, and if yes, how(i.e., any books, tutorials or some specific learning path).
And yes, the app is just for my learning purpose. So, the issues of cross-platform compatibility, etc. can be safely ignored.
Thanks in advance.
If you're stuck with Windows, some of the more popular choices are:
Microsoft MFC. Not for the faint of heart...
Qt. However, this is also not strictly ISO C++, as it requires a special pre-compilation step. But it comes with a very complete library, is cross platform and widely adopted. The documentation is excellent and the learning curve not very steep.
wxWidgets. Cross-platfrom, popular and standard C++ only. However, relies heavily on the pre-processor and code using it tends to become ugly... (that's my personal opinion...)
GTK+, which is pure C. There is a pretty decent C++ wrapper called gtkmm.
Qt is probably the best C++ GUI framework out there. It does include language extensions that are not 100% C++ but it comes pretty close. There are also tutorials to help you out.
Standard C++ does not come with a gui. There are certain libraries that you could use to create a gui in c++ such as:
Qt
WxWidgets
I hope this helps
Firstly, C++/CLI is not C++, its Microsoft's ".net that looks like C++" language. Ignore it, it was pretty much dead on arrival.
I'm not sure what you mean by "pure ISO C++", if you mean you want to create a GUI app using C++ without any special language features (eg C++/CLI) then you'll be looking at Qt nowadays. Its really rather good and is probably the best C++ GUI system there is today. You can also download the QtCreator IDE that will help you out. (its also all open source and your apps will run on mobile and Linux too!)
If you want something that is Windows-only then you could write old MFC apps (for the desktop) or if you want to be bleeding-edge then write WinRT apps. The native OS GUI features are available in both these systems.

Why there are no good open-source development tools? Shouldn't it be a priority for the community? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
My native language is not english, so please sorry my mistakes.
I'm doing a course of free technologies and recently I've been learning Linux and it seems promising, however, I couldn't find good development tools, something like Visual Studio.
After trying a lot of other IDEs, none of them gets close to MSVS functionality.
I know it's not easy to develop a good IDE, but there are dozens of "almost-there" IDEs, I wonder what they could do if the developers had joined efforts.
Also, I'm just wondering... Why the open-source community doesn't have a good IDE on top of the priority list.
After researching a little, I found a lot of articles describing how the OS community works, they always break apart, when things are getting usable they just dissipate and begin to work on more unusable things.
This made me very sad, because I thought open-source were serious stuff, and that's why I choose the course on free technologies, now I'm almost decided to give up.
There are hundreds of Linux distros, and hundreds of similar software that does almost the same thing, from desktop environments to python scripts, people are reinventing the wheel. Open-source is quantity and not quality.
If I can't find a good C++ IDE that has the features I'm used to, I'm going to give up. I'm not a genius geek, just a normal or maybe dumb guy who programs in C++ and is used to tools that facilitate the development. Emacs, Vim, all that stuff is too much for me. If that were the only tools available for programming, then programmers would be the rarest persons in the world because you need to be a super-genius to use these tools.
The features I want in a C++ IDE are:
-Good code highlighting
-Pop-up documentation
-Good debugger with visual aid
-Usable and smart code completion
Thank you.
I think what you're encountering is a difference in culture. Surely there would not be the amount of free and open source software that exists if nobody had the tools to develop it. But the people who are developing it are mostly used to a very different flavor of tools that what folks brought up on Visual Basic are used to. Emacs, ctags, make, gdb, strace, ltrace, and so on are all very powerful and much more natural to somebody used to unix than a MS-style IDE... and I hesitate to simply say IDE, because many FOSS developers consider emacs itself to be an "IDE".
Perhaps your question would be more productive and less inflammatory if you instead asked "Why are there no open source MSVS-like IDEs?"
I agree with Diego Sevilla comment.
My first experience as developer was with Visual Studio and that skew my way of work.
Like my mind was trying to use something equals to Visual Studio, but that is only an habit.
After Visual Studio I moved to Eclipse, I loved it! at that times with visual studio and subversion you needed an external tool! (today exists some tools out there).
Now I am using vim, why? ultra fast, customizable and minimal (if you want).
But the best best example of open source IDE is smalltalk, I wish all programming lenguage came with the tools smalltalk provide.
Um, get Eclipse or Netbeans. Both are great free IDEs with millions of users.
There are many open source IDE's. Check out http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments You can see some of the licenses.

Visual Studio or GCC? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What should you choose to learn cpp programming? As I know both have support for language but does that really make any difference If I have to make a choice?
At this stage, of learning afresh, you should not be worrying about compilers. Both are fine. Catching up the nuances of the compiler and if any difference does exist should occur latter, rather than at the start.
What would you make out of the differences at present when you are starting to learn the language ?
If you're just learning, I'd recommend G++ but I'd recommend you get the newest one you can. This might be a little tougher than usual on win32 (you'll probably have to hand-upgrade mingw or something). So, you might do yourself a lot of favors installing Linux on a second partition or some old PC or something.
The main reason I'd recommend G++ over VS is the implementation of the NEW bits of the language. MSVC++ has some of C++0x implemented but a huge portion of it is not. Furthermore, they got a lot of stuff wrong and/or in some sort of half-way state (and sometimes what they say is "partially implemented" is only available in their C++/CLI language, features of which they include in their list of supported C++0x stuff). G++ on the other hand is pretty much THE implementation of the new standard that people making the standard are actually implementing. It's been forked to test new features, etc, and is much, much further along in implementing C++0x than any others that I can think of.
Why learn C++0x? Because this is what the language is going to look like now. Why learn the old when you'll just end up having to relearn like everyone like me has. With C++0x extending the language and changing the language in so many ways, it almost feels like it's totally new. In my opinion you'd serve yourself well by just learning what the future is going to be like rather than the past (and in VS's case, a bastardization of the two).
I use VS because I pretty much have to. If I was a newbie today I'd learn on G++ to get all the new goodies. I totally wish I could actually use it myself.
I would recommend Visual studio 2010 express to start with, its a far more userfriendly experience where you have editor and debugger integrated, that if the goal is to learn c++ with as few other distractions as possible, you can download it for free from the link below:
http://www.microsoft.com/express/Downloads/#2010-Visual-CPP
Perhaps VS is better for beginners because it has the auto-completion feature.
Both Visual C++ and GCC are good compilers. If you want to use GCC, you might want to try out Qt Creator IDE. It has a very nice text-editor with vim builtin. On the other hand, with Visual Studio you have plenty of nice plug-ins such as Visual Assist X, ViEmu, etc.
GCC is good if you're wanting to create small programs which don't require much management, for example to just say "Hello world" or work a couple things out. Also, if you want the application to build on many systems like Linux or Mac, GCC is the option to choose.
Otherwise, if you're on Windows and want to create some massive project that needs loads of complex steps and stuff to build, Visual Studio is good.

New to C++: should I use Visual Studio? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I'm about to start work on my first C++ project. I've done lots of C# and VB (VB6 and VB.NET), plus Java and a few other things over the past 10 years or so, just never had a requirement for C++ until now.
I plan to use Visual Studio 2008, but I'm interested to find out from experienced C++ programmers whether Visual Studio is a good IDE for a C++ newbie.
Will VS in any way make it harder for me to learn to program C++ correctly?
Will VS encourage any bad habits?
Are there any pitfalls I should look out for?
First off, VS 2008 is quite powerful and probably one of the best IDEs for C++ programming (at least with a supporting plugin such as Visual Assist X).
Beware, however, that C++ is a hard language to get right for the compilers and that the default warning level is quite lenient to boot. So it will tolerate bad/wrong code quite often. It is always advisable to check the code on other compilers as well – at the very least in g++ with high warning level in strict mode.
Also setting the warning level higher in Visual Studio is encouraged.
Visual Studio is an excellent IDE for C++. If you know it from C#, it will be comfortably familiar.
There is something to be said for starting to learn a language like C++ by not using an IDE at all, but by building from the command line. This will impress on you the various phases of the c++ compilation and linking process, and will serve you in good stead if you ever need real cross-platform portability.
VS 2008 is fine for developing C++. Like someone else said I would purchase Visual Assist X simply because it gives you Intellisense on steroids and a better code outliner. Also the MSDN docs you get with VS are excellent quality and include a full description of the C++ language and standard library. On Windows you would be mad to use anything else.
Use Visual Studio, especially if you already know it through C#. I agree with the others that you should invest in Visual Assist though.
You better off with code-editor + build tools
as an IDE, VS is pretty bad (subjective). There are a lot of alternatives (more lightweight, for sure)
By build tools I mean not only compiler but also some kind of make/jam etc
This way you'll be ready for real cross-platform development (first) and as a bonus you'll get the possibility for much quicker and comfortable builds for "not small" projects -- one command builds everything. And while you can get the same in VS (really?) it will be faster. Plus you can have project structure the way YOU want 8)
As for reference, for my pet-project i use source insight + kjam + msvc compiler
I remember a few years ago having some troubles with VS. Actually the problem was with the C++ compiler, because they didn't implemented some features of the language, or at least they didn't implemented in a standard way.
We switched to Eclipse CDT because it was relatively easy to use other compilers, supported custom makefiles, and multiple targets.
But if you plan to develop for Win32, VS it's probably the safest choice.
I'm doing something similar; I've done a lot of Java programming and started learning C++ not too long ago. When I am starting to learn a new language, I like to work through the various bits of syntax differences by writing smaller programs. As great as Visual Studio is for larger projects, I think it tends to add a lot of bulk for that kind of practice. I'm with Konrad on the command line idea - great place to start. I am also using Dev-C++ for the smaller projects. It's a nice, compact little gcc IDE that is only about 60MB total footprint on the hard drive, and it compiles to windows executables without any problem. Good luck in your endeavors!
Yes, use Visual Studio, it's an IDE you already know, so it has the lowest learning curve in terms of tooling. Since you've never done any C++ before, please use the IDE, not a console window to learn. The one thing you will miss is the .NET framework. You can use Managed C++ with VS, but if you plan on using pure C++, with no managed code at all, it's going to be scary at first.
One thing I've always noticed about C++ is that if you expect all the same tools you had with C# to be there for C++ when you start, you might be disappointed. VS is a great IDE, and it's had C++ support long before .NET came around, so trust it, enjoy it, and remember, nothing is perfect.
I asked a similar question here except using C on Visual Studio. Although I personally couldn't imagine doing C# without VS, I find using VS for C an exercise in masochism. I know this isn't exactly the same as what you're asking, but if you find that it is a similar experience in C++, know that it's not just you.
Using VS allows you to not having to get under the hood and understand how the chain of buildtools work. Use VS to automate what you know how to do manually and make sure you understand what happens behind the scenes. In the world of C++ you are more expected to understand the build chain than in high level languages like C# or VB.
If you're using the VC project system, you should be fine. If, however, you are using a makefile-based project, it's extremely important that you tell the IDE about your include paths, preprocessor macros, etc, so that intellisense will work correctly.
Some people form a bad impression of Visual C++'s code browsing capabilities because they are used to C# where there's no configuration required.
Another thing to be aware of: occasionally, I have found that intellisense stops working well in a project where I have worked for a few days or weeks. If your solution is called foo.sln, deleting the foo.ncb file will cause the IDE to reparse your code, and intellisense will start working again.
Finally, I've heard that VS 2010 will be a major improvement to the C++ IDE experience for the first time in years.
http://blogs.msdn.com/somasegar/archive/2008/11/21/c-enhancements-in-vs-2010.aspx
Yes, use visual studio, but be aware that applications that you build with it wont run on some computers unless they have the visual studio runtime redist installed. If you find your app wont work on other machines, go download it.

Netbeans or Eclipse for C++? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm currently working on a pet project and need to do C++ development on Windows, Mac, Linux, and Solaris, and I've narrowed it down to Netbeans and Eclipse, so I was wonderig which is more solid as a C++ editor. I just need solid editing, good autocompletion for templated code ad external libraries, and project file management, the build tools are external, so thats irrelevant here, for my comparison.
Thus which is a better choice?
Note: I know I should be using emacs or vim, but the issue is, my theory at least, that I'm left handed, so I use my right side (design,creativity) of the brain more than the left side (logic, memory), so I just simply cannot use emacs or vim, my brain simply isn't compatible, I tried them many times too, even used emacs for a few months but it drove me crazy...
Thanks
I haven't used NetBeans, but Eclipse CDT (C Developer Tools, which includes C++), especially with the latest version, is really quite excellent:
Syntax checking and spell checking
Syntax highlighting that distinguishes between library calls and your function calls and between local and member variables and is even applied to code that's #ifdef'ed out
Macro expansion that can step you through each level of macro application or show the final result even of very complex Boost Preprocessor macros
A file and class outline view that updates dynamically to show where you are in a file. (Commercial IDE's I've used fail to do this.)
Powerful, flexible Find/Replace and Find in Files features with complete Perl-style regex support. It's also supposed to be able to do a C/C++ Find in Files that can search based on language semantics (e.g., only find references, not declarations), although this sometimes doesn't work for me.
Automatic tracking of TODO and other comment tags
Mouseover tips that show the exact declaration of a variable or function, including any comments, instead of just where a variable or function is declared. (Again, commercial IDE's I've used fail to do this.)
Support via plugins for Subversion, Doxygen, etc.
Some refactoring support - rename, extract constant, extract function, a few others
Code reformatter, based on user-definable code styles
You'd asked specifically about its editor; the Eclipse editor is good enough that I use it in preference to the commercial IDE for our product whenever I don't need the commercial IDE's forms designer.
Eclipse's debugger integration (using gdb) is tolerable but not great, and its memory usage is high. A few features (like the C/C++ Find in Files) don't work reliably or require reindexing (which is time consuming) for no apparent reason, but the latest version seems more reliable in this regard.
Can someone who's used NetBeans fill in how it compares?
I'm using Netbeans from time to time on Solaris and the latest (6.5) version is pretty neat. It has all the features that you need, perhaps autocompletion could work better, but I have a really bad code base so it might be the result of it. Keep in mind that you need strong machine for that, if it's your PC it's ok but Netbeans on a remote server (like I tried) is really slow unless you have a decent hardware. There are few simple refactorings for C++ with nice preview option, definitely worth a try.
You can get a whole Sun C++ pack from here:
http://developers.sun.com/sunstudio/downloads/express/
Personally I prefer NetBeans - the project management is excellent and I was up and running quicker than with Eclipse. However, it is subjective and YMMV.
They are both bloated and slow, IMHO. Why don't you try Code::Blocks instead? It is specifically aimed at C++ developers and performs much better than either Eclipse or NetBeans.
Just to give 2 cents to the comments about speed or performance issues with eclipse/netbeans:
The only part of an IDE that sucks if it is slow is the editor component.
And in contrast to some obviously superficial assertions here, I found the editor
component in Eclipse extremely snappy. The rest of the IDE is prone to lags,
but the editor itself delivers spotless performance.
I have a 1.4GHz Laptop and use Eclipse with it. Eclipse's editor component is faster (especially when scrolling/browsing through text) than Code::Blocks or KDevelop. The simple reason for this is: Eclipse caches everything, especially the syntax highlighting etc., other IDEs seem to try to do this ''live'' and fail.
The c++ indexer was a cause of woe in versions past. It crashed when out of memory, without it none of the nifty search functions worked, etc.
For the current version I can only say: It is all fixed and it works like a charm.
It's speed is comparable to the VisualStudio Indexer.
If you install Eclipse CDT you get a ton of nice features as has been explained in other replies already, that most other IDEs only provide with multiple plugins. (I don't know about netbeans, never used it.)
The feature that kicks me everytime is the smart tooltip when I hover over some identifier. Eclipse gives me direct access to any javadoc that might be entered somewhere and the file where it is defined and even lets me scroll around inside the tooltip!
So I have every identifiers full context at my fingertips, everywhere.
I prefer it over Visual Studio and pretty much everything else I've tried.
Granted, everything else you do in the IDE could be snappier. For me, the crucial thing is, that the editor is fast and eclipse's definitely does a great job there.
The only thing I hate about Netbeans is that the debugger is kinda slow in comparison to Eclipse . Besides that , Netbeans would be my choice .
If you run eclipse under linux you can use valgrind for memory leaks. Eclipse supports gdb well enough for me, but I couldn't find a decent memory leak plugin, and the valgrind integration plugin is in beta. This blog does a great tutorial for it: http://kapo-cpp.blogspot.com/2007/02/detecting-memory-leak.html . I cast my vote for eclipse on linux. P.S Real men use ed only.
The c++ parser in code::blocks doesn't seem to be on par with netbeans and eclipse ones: according to code::block's wiki, it needs to be entirely rewritten.
They're both excellent for C++ development, but one thing that I've recently found lacking in NetBeans is that there doesn't seem to be a plugin available for CppUnit, or any other C++ unit testing framework. I'd love to get some more responses to this question if I'm wrong about that.
(Also, I know development is always going on for NetBeans, so maybe someone will come up with a plugin soon.)
For C++ I'd have to agree with Nemanja Trifunovic and say you should give Code::Blocks a look. It's free, and has great performance. I started using it a few years ago after switching from Bloodshed Dev-C++ (which is basically not supported anymore) and couldn't be happier.
I'm a huge fan of Eclipse and have used it extensively for Java and C++ programming. However, currently, it does not support remote C++ development. I tried Netbeans Remote C++ development and have found it to be rather excellent and extremely simple. Having said that, the C++ parsing is not as fluid as Eclipse, the autocomplete sometimes gets in the way and doesn't go away, and the biggest problem I have had is the constant need to restart the IDE due to very slow performance. I hope Eclipse can continue to build it's Remote C++ development capabilities and use Netbeans as an example of how to make it very simple!
having used eclipse for some time now i recently took a look at netbeans and must say i quite like it. at the end of the day they are both excellent ides and it is a very subjective choice.
in my opinion netbeans seems to be a bit faster than eclipse, but that might just be a feeling.
I have been using Net Beans so far. But I was forced to switch to Eclipse due to problems in NetBeans. There is a Net Beans bug which renders the IDE useless when you work with projects with a large amount of source files. Many people have been complaining, but it seems the Net Beans team was unable to fix the problem which stops the IDE from responding when it is parsing the source files. :(
Reported in:
Petr Dvorak - Oracle Blog
As a solution they provide an on-demand parsing mechanism which does not work for me :(
Net Beans Wiki