Simple GUI IDE? [closed] - c++

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I'm looking for a GUI Linux IDE.
Specs:
simple and fool proof. normal look & feel
full as-you-type indentation in most languages
a compile+run button, a debugger, auto-refactoring for C++
basic unintrusive support for common buildsystems - straight make, cmake, qmake, autotools
smooth workflow. proper keyboard support, no jarring transitions between debugging/coding modes, etc
What i've tried:
KDevelop is bloated and buggy, makes it difficult to even transfer projects between machines etc
jEdit is ugly, feature poor and it's difficult to find things. but it does indentation well.
Anjuta, Geany and a bunch of other micro-IDEs for GNOME fail at indentation and misc features
Code::Blocks only does C++, it's pretty complex and it can be hard to get things working with libs etc
vi and e-macs are nice but I'm not taking the time to learn them right now, and I want something coworkers can use as well
NetBeans has a terrible Swing look, weird code editor. also it's pretty slow and seems complicated. great features though.
Eclipse. pretty huge and complex, I don't like the UI. I feel like I can't do anything without a tutorial
Presently I use KDevelop for work and gedit+terminal for hobby dev, but wanted to see if I'm missing out.

You could try QtCreator. It's not quite complete (as of this this posting at least), but it might be closer to what you want than some of the others you've tried. It's very keyboard friendly.

I tried PIDA after this answer, and I think it's pretty good. You'd still have to learn vi/emacs to use it, though.
I'd also suggest you take a look at MonoDevelop. It's basically M$ Visual Studio for Linux, and it has all the features you listed.

maybe just try kate. it's a great editor with plenty of plugins, ability to use built in terminal, code folding, and it fits nice in kde desktop. Plus it's very fast.

Related

How to move on from Turbo C++? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
In my school, they only teach on Tubro C++. I can program well in the DosBox but I want to develop my own applications, algorithms, etc. The problem is that I don't know where to start. The spectrum is so broad, I don't know what gcc or g++ are other than the fact that they are compilers.
I don't know how to use VS Code (mac) to compile & run. I don't know anything about the modern C++.
Where should I start?
I wanna do Machine Learning related stuff and GUI.
I actually have a browser based application in mind where I'd be needing Artificial Intelligence, cool GUI, etc.
That is a very good question. I think these steps would be the easiest for you -
Install Linux on your laptop or use macOS. I say this because you can develop in windows but it would be much easier on Linux or a mac because of the sheer size of the community.
Get familiar with the command line on Linux/macOS. You should try on Ubuntu which is one of the most popular versions of Linux. You must be able to use commands like - ls, cd, pwd. You can find lots of content for this easily.
Get familiar with the vim text editor.
After writing your first HelloWorld program on C++ using vim, you should learn how to use the g++ command to compile and run your code.
After you are familiar with all of the above, to make your work easier you can download and use text editors like Atom or Sublime.
These were my initial steps in the world of programming. I would also recommend you create an account on Github and browse other open source community projects, also learn git. Lastly explore also other domains and languages like web development, machine learning, python etc. Otherwise, if you are into competitive coding, C++ is indeed an excellent choice. For this, you can visit platforms like CodeChef, Hackerrank, SPOJ etc.
For tutorials, you can find many sites like Udacity, Coursera, edX. MIT OCW is a popular resource on YouTube for formal courses like Algorithms and Data Structures.
PS. Do not waste your time learning everything about everything. Instead, you should keep on experimenting and look up on the web whenever some error or a bug pops up.
Since TurboC++ was just a compiler, maybe you'd be happiest just moving into a full blown IDE(Integrated Development Environment)!
For Mac, I might recommend Eclipse. It's a very popular IDE and can be used for C++.
However, you'll need a compiler. GCC is a good compiler for Mac, but as far as I know you need Apple's "XCode" IDE to install GCC in the first place. So if you were to go through all of that effort you may just want to stick with XCode.
You'd need an Apple Developer login, but here's a tutorial on getting GCC up and running.
https://www.mkyong.com/mac/how-to-install-gcc-compiler-on-mac-os-x/
Of course, nothing is keeping you from sleeping around with some new languages, but if you want to stick to C++ I'd say get your compiler, find an IDE you like and get to learning.
First of all you need to know How compiler works and the program structure.
I recomend you an excelent course called "Programming Paradigms", from Stanford University. You can find it in ITunes University and it is free.

C++ Workplace and compiler. Hello World testing for beginner [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am beginning to learn C++ after ages of not programming in any language (last thing I did were a few lines in Python). I know a little bit about programming, object oriented programming, but all theoretical. Not in any particular programming language.
I am following a few books about the language itself but I don't know where to test a few lines of code.
What could be a convenient workplace to do this? I tried installing Visual Studio but it isn't straightforward for me to see how to (or where in it to) write/compile and run small pieces of code.
Perhaps there are simpler environments that are more convenient for just beginning learning the language.
What simpler working environments can I use?
Is Visual Studio a good choice for beginning (testing my first lines of code in C++) and I just should study more how it works?
The simplest environment I found for starting to develop in C or C++ is Code::Blocks:
www.codeblocks.org
Or, directly, the download link with everything you need:
http://prdownload.berlios.de/codeblocks/codeblocks-13.12mingw-setup.exe
In there, just do "new Project", select "Console application", then "C++", and it will creates an "Hello World" Project for you.
Although Visual Studio is very good, the huge numbers of features immediately available can be intimidating for the beginner.
I would prefer visual studio IDE any day. And you have it available with you. It could be learning initially but worth it.
If you have questions / doubts about it some one here will help you.
Maybe just drop into Coliru and play around in there. No installation or set-up required, and immediate feedback on your snippets.
Alternatively, if you're on IRC, head to Freenode and send snippets to geordi prime.
I started with Dev-C++. It is a IDE which makes it easier.
Even if you don't know hello world in c++ or C you can make a new project at the top left and click on Console Application. Dev-C++ has a C++ tutorial which makes it a lot easier.
But I also suggest Microsoft Visual Studio for Windows 7 and up.
Just use a simple editor like Notepad++ and hand compile your sources with the compiler (VC++ or MinGW). It'd give you a lot of exposure on understanding build scripts which you'd later require for doing something serious. As for the compiler, I'd recommend MinGW since it's (almost) complete in its support for C++11; use a pre-packaged binary setup like TDM GCC.

Recommendations for an open-source project to help an experienced developer practice C++ [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm looking for recommendations for open-source projects written in C++ that will help me "get my chops back". A little background:
I've been working heavily in Java for the last three years, doing a lot of back-end development and system design, but with a fair amount of work in the presentation layer stuff, too.
The last C++ projects I worked on were a Visual C++ 6 project (designed to interact with Visual Basic) for mobile devices and several projects using the GNU toolchain circa gcc versions 2.x to 3.2
I'm looking to get back up to speed on the language and learn some of the popular frameworks, specifically the basics of boost (although boost seems fairly sprawling to me, similar to the kitchen-sink feel of Spring in the java space) and test driven development in C++.
What I'm looking for:
Specific recommendations for small to mid-size open source projects to poke through and perhaps contribute to as I level my C++ skills back up. The problem domain isn't important, except that I would like to work on something in a new area to broaden my experience.
Edit:
A few people have commented that it's difficult to provide a recommendation without some indication of the problem domain I'd like to work in. So, I've decided that I'm most interested in graphics applications or games, two areas which I haven't worked in before.
If you like visual stuff, openFrameworks is a C++ Framework for doing Processing-type applications. http://www.openframeworks.cc/ I'm not sure how viable it still is, but it looked pretty cool.
It's hard to suggest something like this, you really don't have any itches you want to scratch??
I would personally be working on Unladen Swallow if I wasn't absurdly busy starting my own personal venture. Dynamic language optimisation looks pretty cool to me.
You could also look at Wt
Why not Boost itself? It's a very active project, it's right at the core of what C++ is about, and it could need some help.
You mentioned test driven development. The Boost Unit Test Framework, for example, is powerful, but IMHO suffers from extremly bad documentation. That'd be a place to start, would teach you everything there is to know about that particular part of Boost, and I am sure you could find your way into one of the Boost modules from there.
I think you're going to have to be more specific. As a quick check, I did an apt-cache showpkg libstdc++6 on my Debian squeeze system, to find all the packages that depend on the C++ library — and found 4,537 of them. Obvious examples include:
most of KDE
Firefox, Thunderbird, etc.
apt-get itself
It'd really help if you specified what field you're interested in.
You can find many projects on GitHub. If you find a nice project, you can fork it (it's like creating a local copy you can work on) and start coding. Once you have done something nice, you can make a "Pull request" to ask the guy you made your fork from to merge your work.
I like being able to commit without having to ask for an access and be able to make smalls contributions to many projects without having to contact anybody, simply with a couple of clicks.
You can also check Gitorious and Bitbucket, both site work a bit like Github.

C++ development on linux Code::Blocks, EMACS or GVIM [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.
I am not looking for an IDE suggestion for C++ development. I have found many discussions on that and tried EMACS, GVIM and Code::Blocks. I liked Code::Blocks very much than the other two. But it looks like most of the developer community is using tools like EMACS or GVIM. Is there a reason for this? Why Code::Blocks is less used?
I found EMACS and GVIM is less user friendly. You have to put more effort to get it working, but Code::Blocks take advantage here. It is easy to start and compile. Or do I miss something?
Thanks
Whatever editor you ultimately end up using, it is worth taking a few minutes to at least learn to navigate around and perform basic editing tasks in Vim, since a vi of some flavour is the most commonly available editor in especially the more specialised distros.
Code::Blocks is less used because it isn't extensible as Emacs & Vim. During my work (in Emacs) with different programming languages, i often create a new scripts that make my work much easier. Code::Blocks allows to write extensions only in C++, that requires to do lot of work.
Code::Blocks is a new entrant. Vim and Emacs on the other hand have been present for much longer. They are the original text-editors. These were written when there was no GUI and have evolved with time. GUI has been later on added to these; GVim is one example. Like any other modern GUI-based IDE Code::Blocks hides the strange command-line invocations from you thereby making it more user friendly -- for those who were brought up on a heady mix of rich OS UI :-)
Lots of developers use EMACS and vim because they're excellent and powerful editing tools that, once learned, can make everyday editing tasks much simpler. Neither is specifically an IDE in the same sense as Code::Blocks. EMACS and Vim are just editors, but because of their usefulness and their longevity they've accumulated a number of plugins and extensions to simulate many of the tasks of an IDE.
As for which you would like to learn, it's up to you. If you just want an IDE that lets you jump right in, you're probably not looking for Emacs and Vim, but if you want a very powerful editor that, while taking a while to learn, will make your life easier in the end, go for Emacs or Vim.
Vi(m), Emacs are everywhere on the linux machines. They are very extendable and can satisfy any project need. As almost all projects (at least at our company) at the linux are very big projects for support you need a serious configurable tool to accomplish the task. You don't need IDE to fast create small projects. One project. One configuration. Years of work.
Plus. With Vim or Emacs you can do it remotely and fill ok.
Code::Blocks is a nice IDE but most linux OSS projects don't want to be IDE dependant and are so written that anyone who can drive an editor and use make can build them. If you are going to be doing serious work on Linux you need to learn one of vim or emacs. This is not to say that you can't use Code::Blocks for your own projects of course - I certainly do!
Personally, I switch the IDE of choice every now and then. For example, I've used Code::Blocks for some years, but skipped it now as for some reason the editor window has got an increased latency that let me type whole phrases into the blind; and I already disabled all time consuming stuff (I anyways don't use frequently) like code completion (that is, on my Debian GNU/Linux installation; on Windows I still love code::blocks).
So, I recently stumbled over Monodevelop, and even though I am not the biggest fan of mono/.net, that IDE is really nice and extendible. It has a class browser and a filesystem browser, and some more features I personally don't use (it's primarily an mono/.net IDE, but also supports C++ really nicely). The only thing I don't like on monodevelop is that it isn't scintilla based, or that it cannot be tweaked to be like scintilla (I am a heavy user of it's copy+paste mechanisms) (*).
I usually don't compile inside an IDE, as that is often painful when it comes to distributing your app or porting it to other operating systems (I use makefiles or CMake instead). Also, having a (fullscreen) console/terminal-window handy for compilation is really nice if your app dumps a lot of log, or when your compiler dumps epic error messages.
(*) For example, you can press CTRL+D to just duplicate the marked text right behind the current cursor position. To get a glimpse on it, look at Notepad++ (win) or Scite (Linux).

Cross-platform C++ IDEs? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm looking for a good IDE for C++ that has most or all of the following properties (well, the first 4 or 5 ones are mandatory):
cross-platform (at least Mac, Linux)
of course, syntax highlighting and other basic coding editor functionality
reasonably responsive GUI, not too sluggish on mid-size (say, 100 files) projects (both my Linux and Mac computers are 5 years old)
code completion
integration with gdb
SVN integration would be nice too
refactoring (rename a variable semi-automatically throughout the codebase, etc.)
can display class hierarchy
can add hypertext-style links to the code (so you can click on a function/class name and it brings you to the declaration),
can show code parts that (potentially) call my function (I know that's hard to do for C++ so I added the potentially)
So far, I've been using Emacs for everything, but I think advanced features that give me more overview and search capabilities like the last three would be nice. I'm tired of just using grep and find on my codebase.
Basically, I want most of the things for C++ development that Java IDEs usually do.
I see Netbeans can be used for C++, as well as Eclipse. I think they would fit my requirements. Has anyone actually used them for daily coding? What are the differences? What are your experiences? Code::Blocks is more lightweight and doesn't do many of the things listed above, right?
Note: I don't need a GUI builder.
Update: With the bullet point 10 I mean that I can give it a function name (e.g. Foo::setValue), and it shows me all occurrences where this particular function (and not other functions of the same name, like Bar::setValue) is called in my codebase.
Code::Blocks does the first 5 and it's also got class method browsing (though not a heirarchy display). It's a much more lightweight solition thaen Eclipse or NetBeans, but if you like the minimalist approach it's pretty good.
To summarise CB versus your requirements:
Yes
Yes
Yes
Yes
Yes
No - but you can add it easily
No
No, but similar functionality
No
Can go from definition to decl and vice versa, but no callers list
As all the solutions you mention are free, you could always try them all and then make a decision on which one to stick with. That's what I did.
In addition to the ones mentioned, there's QTCreator, which has "Rapid code navigation tools" though I've not used it.
I think though that the non-essential requirements aren't so good, you can easily see where a method is being called using search! (of course, if you have a huge class hierarchy where every class has the same named method, you've only yourself to blame :) if you havn't laid your classes out in an easily understandable way)
I'd recomend Netbeans, in 6.5, its pretty fast IDE and offers all 10 of your requirements.
I recently asked this same question. I ended up choosing Eclipse with the CDT plugin and the Cygwin libraries. I've been pretty happy with it, except I haven't quite got the hang of the debugger. The window for walking through source on the debug perspective is pretty small, for some reason I haven't figured out how to see into arrays, and I think I knocked out one of the windows for displaying variables and don't know how to get it back. I've ended up abandoning the debugger perspective and just walk through debugs in the normal perspective.
Also, I use Eclipse for Java, so the helped minimize the learning curve. It can do refactoring and you can integrate svn.
Java based IDEs (Netbeans and Eclipse) are sometimes somewhat slow. Also their main focus is Java. One problem with Eclipse is that it is difficult to use for small screens, such as in laptops. I prefer to work usually in vim + ctags (to perform the functions of grep and find), and when I have some advanced operations like comparing two directory hierarchies, I use Eclipse. I've not used Code::Blocks much, but I hear good things about it.
Coming from Emacs, I think you'd prefer something lightweight and not heavy-weight. I would consider Code::Blocks then as a good candidate for exploration.
codeblocks is open source !!
http://www.codeblocks.org/
Go for Eclipse. If you have a decent computer, it is fast enough and has best possibilities with its plug-ins.
codeblocks have a lot of features just check them up !
and it is free !
If you already know Emacs, it may be easier to just start using a few more packages, than learn a whole new IDE.
For example, you can easily do #9 with Emacs: just run tags once and then M-. RET anywhere.
You also have to weigh the IDE's features against what you lose. For example, most IDEs don't tend to have Emacs' easy macro capabilities or numeric prefixes, which are often like a more general form of refactoring.
It is not only the IDE that matters - you would probably need to be able to build you application outside of the IDE (i.e. continuous integration).
Consider using CMake to create a cross-platform description of your build scripts. Once you have the CMake Script (which is straightforward) you can generate from it project files for the IDE of your choice - eclipse, kdevelop, Visual Studio, codeblocks, etc.
I would suggest using eclipse as an IDE. There are few options of how to use CMake with eclipse. Play around, and find the best for you.
Once more - CMake is not only cross-platform it is also cross-IDE. And CMake scripts are very readable, a simple make file would look like this:
project(hello)
add_executable(hello hello.cpp)
Now compare that with makefiles, or setting up a project in your favorite IDE!
My two cents (in no particular order ... and not all these options are c++):
Qt ... my first productive GUI building framework
Lazarus ... what a cool name, and very productive tool (not c++ though)
MonoDevelop ... I'm falling in love with c# development (very much like c++)
Java ... ubiquitous ( a bit like c++)
CHEERS!
Sublime Text Editor is the best cross platform editor so far I have seen. Try using it http://www.sublimetext.com/. It comes with unlimited demo period without suppressing any of its functionality. But if you are satisfied with that, please buy and use it to credit the author.