Any plans to migrate away from Sourceforge for the pre-compiled binaries? Alot of people are becoming uneasy with them as a host given their recent history of malware-wrapped packages. Some adblocking subscription lists even blacklist the domain.
"We disagree with some of the previous monetization strategies from an industry and business perspective, and have immediate plans to discontinue programs inconsistent with our being a trusted and reliable resource for the entire open source community."
Sourceforge has nice features if you get away from the malware.
It had some issues with the console_host not dieing on abort?
Killing the process was one of the not so funny memory's of my tutor existence at some university courses.
Otherwise solid little IDE though. Works always out of the box. On almost any system you throw at it. And where there is complaints there is at least usage.
QtCreator on OSX has proven buggy for me in the past. I tried to give it another try recently, and it depended on a version of Xcode that is 2 version numbers ago. I'd have to edit the various installation assertions myself to get it to find and use modern Xcode.
VSC is really, really great. Meanwhile, the previous free VS's were not as full-featured, none of them run on OSX or Linux, and some Windows users still prefer GCC for various reasons.
Visual Studio does not run on anything other than Windows.
However there is an Atom-like code editor called Visual Studio Code that is multi-platform running on Windows, OS X and Linux. I believe VSCode is built on the same platform (Electron?) as Atom although I might be wrong.
Yes, I never meant to imply they are the same, just that VSCode is "Atom-like" in that it is a code editor built using the same core framework as Atom.
On Windows Visual Studio is still very much the default in the context of Windows only developers.
Some people/projects prefer to use MinGW-W64 builds with an IDE such as Code::Blocks, CodeLite, QtCreator, etc.
With VS Community coming out last year it has given more people/projects access to a full Visual Studio environment which is very nice IMHO. I have not seen many FOSS projects switch to using Visual Studio and MSVC (the short name for the Visual C++ Compiler) over MinGW-W64 though. I suspect this is just down to "if it ain't broke" though more than anything.
The devs here use VS to write C++ targeted to an embedded device running VxWorks. Their code may or may not be "portable," but it's not targeted to Windows.
Why not? You can develop on Windows, don't include windows.h or put platform-specific things in #ifdefs, make use of all the awesomeness that is Visual Studio (potentially improved with ViEmu, Visual Assist and Resharper), then add a CMakelists at the end to compile for other platforms. Yes the first time you'll probably have to tweak a bit to get it to compile on other platforms, but that's loads better than suffering through gdb and ctags for months.
(I have used RedHat 4 back when it was new and fresh and have been using Vim for 15+ years; I have written vim scripts of 100 lines and more. Just to say, I'm not some greenhorn who's never known anything but an IDE. I still think developing C++ using Visual Studio is an order of magnitude better than any alternative.)
Experience has taught me that C++ compilers generally don't agree on the code they will accept:
incomplete implementation of the standard (Visual C++ 2010 partial C++11 support), different non-standard header files (string.h vs memory.h), different warnings ( "possible loss of data" ), different error message conditions ( "not all control paths return a value" ).
I find it a lot easier not having to support several compilers, especially if Visual Studio's is one of them.
If the Visual Studio compiler was able to run on many platforms and target those platforms, it could definitely be a choice, as it compiles fast and generates fast code. However, for the moment, g++ allows me to ensure that my project properly builds for all desktop platforms, without having to setup compilation-dedicated virtual machines or worse, a jenkins build server ...
How are you going to avoid breaking things if you can't cross-compile before committing ?
Sure, there are some differences in what compilers accept in terms of bleeding edge features. I've never found it an issue to keep within a subset that works everywhere; we're not talking about cases where you need to support VS6, obviously. And there are always compatibility shims in boost for many things.
"How are you going to avoid breaking things if you can't cross-compile before committing ?"
Depends on the workflow. If you cannot afford to break builds, you need to push changes through a staging layer, which will then (in large scale setups like that) also run tests etc. If it's just a few people, your build server will catch it. If it's just me, who cares that it breaks on another platform - I'll have to fix it myself anyway. As long as you do somewhat regular integration, obviously.
There is no silver bullet. But when it comes to giving up the great efficiency gains that come from a great IDE like Visual Studio, or having to fumble with the toolchain a bit to integrate better - it's an easy choice for me. Plus having a project that compiles with multiple compilers keeps you honest about standards conformance and portability.
This is my second IDE after Dev-C++ [1] when I was taking basic programming course in my university. I prefer Code Blocks to Dev-C++ because it have good features, like code completion and syntax highlighter. The source code is easier to view in Code Blocks.
I don't know why others upvote, but I did this out of nostalgia. Back in my high school when I just started programming in C++, C::B was the IDE I used.
This is a very well maintained and mature open source project. But allow me to say that I absolutely loathe Code::Blocks.
I am still at university and they make us use this for C++ editing. I have made it a point to not use it and instead have been doing all my university C++ lab work on gedit because I find it much less frustrating than Code::Blocks and also because I don't have the rights to install Emacs.
The debugger is a pain to use, autocomplete is dumb, and the interface is simply difficult to use. I remember I had a hard time making it not use XTerm as a terminal when I initially tried to fight with it. I simply gave up. I even found NetBeans C++ mode to be an improvement simply because the debugger was better integrated.
On the flip side the interface, however unintuitive, does look consistent across platforms and there are a load of tutorials about C++ on the web which use Code::Blocks because of its popularity.
Its good to see an open source project going strong, and it might be great for newbies at universities when somebody else sets stuff up for you, but for my editor needs, I would look elsewhere.
You don't have to be an admin to run emacs on Windows:
To install Emacs, simply unpack the binary package into a directory
of your choice. To complete the installation process, you can
optionally run the program addpm.exe in the bin subdirectory.
...
For instance, you can now run Emacs
directly from a CD or USB flash drive without copying or installing
anything on the machine itself.
I used Code::Blocks maybe 6 years ago. I agree with your assessment. It was so bad, it was the main reason I ditched Windows and switched to GNU/Linux + emacs. After Code::Blocks I thought that IDEs were best avoided. (Edit: For what it's worth, I didn't like Visual Studio any better, I should have used emacs + a Makefile all along.) More importantly, I found compiling OSS Unix software on Windows was just too painful. On any decent GNU/Linux distro everything is set up for you!
Installing Emacs is not the problem. Although I am on Ubuntu in my University, I can build from source. Its is setting everything up to my liking for a computer that I will only use a total of a dozen times that I don't want to do. Maybe I am too lazy :)
Hmm, not sure why I assumed Windows. Probably because at the time I switched away from Windows to the liberation of the Unix commandline I never even thought of checking whether Code::Blocks or Dev-C++ ran under GNU/Linux.
I have a custom .emacs file (predicated to work on Windows/Linux/Mac and several emacs versions and including a function to install all the custom packages I need) and other config files like .bashrc in a git repo fr quick setup. Having to compile emacs yourself would be hugely frustrating though. I've never gone that far. I use TRAMP instead :)
If you are using Linux, you can install emacs in your home folder using the --prefix=$HOME/EMACS option. If the system does not have the necessary headers/libs for the GUI version, you can build a terminal version using the --without-x option.
> I am just too lazy to do it as they erase everything after each semester.
Write a script that does your reinstall. There's lazy-lazy and active lazy. As a programmer, it pays off to be actively lazy.
Or, you can make a Git archive of your home directory. So long as your university has good bandwidth, this means you often won't even have to reinstall.
Including just sticking gedit like what he's doing now.. If his assessment is that he doesn't stand to gain enough to bother then who are we to question that? I'm all for emacs any day, but let the guy make his own decisions.
I don't use an IDE for coding in general (unless forced to), but I must admit that Code::Blocks is pretty good. Not has effective as VS or QTCreator, but it still does the job.
I just installed it from my linux distro's package manager.
I started it from the command line, as I like to do with a new program. I was surprised to see not one windowing error, just administrative messages associated with the first run, and general setup. Sad to say that's unusual.
Code::Blocks was definitely better than horrendously buggy Dev-C++, but since Qt Creator I never looked back (ok, I do use vim very often, but it's a different thing). To be fair I haven't checked Code::Blocks for years (8 years at least), so maybe nowadays it gives more than notepad+syntax-highlight+tabs feeling.
BTW Everyone, please write "Qt Creator" with space between "Qt" and "Creator". I don't know how spaceless variant got so widespread.
47 comments
[ 2.3 ms ] story [ 113 ms ] thread"We disagree with some of the previous monetization strategies from an industry and business perspective, and have immediate plans to discontinue programs inconsistent with our being a trusted and reliable resource for the entire open source community."
Sourceforge has nice features if you get away from the malware.
Otherwise solid little IDE though. Works always out of the box. On almost any system you throw at it. And where there is complaints there is at least usage.
However there is an Atom-like code editor called Visual Studio Code that is multi-platform running on Windows, OS X and Linux. I believe VSCode is built on the same platform (Electron?) as Atom although I might be wrong.
Some people/projects prefer to use MinGW-W64 builds with an IDE such as Code::Blocks, CodeLite, QtCreator, etc.
With VS Community coming out last year it has given more people/projects access to a full Visual Studio environment which is very nice IMHO. I have not seen many FOSS projects switch to using Visual Studio and MSVC (the short name for the Visual C++ Compiler) over MinGW-W64 though. I suspect this is just down to "if it ain't broke" though more than anything.
(I have used RedHat 4 back when it was new and fresh and have been using Vim for 15+ years; I have written vim scripts of 100 lines and more. Just to say, I'm not some greenhorn who's never known anything but an IDE. I still think developing C++ using Visual Studio is an order of magnitude better than any alternative.)
If the Visual Studio compiler was able to run on many platforms and target those platforms, it could definitely be a choice, as it compiles fast and generates fast code. However, for the moment, g++ allows me to ensure that my project properly builds for all desktop platforms, without having to setup compilation-dedicated virtual machines or worse, a jenkins build server ...
How are you going to avoid breaking things if you can't cross-compile before committing ?
"How are you going to avoid breaking things if you can't cross-compile before committing ?"
Depends on the workflow. If you cannot afford to break builds, you need to push changes through a staging layer, which will then (in large scale setups like that) also run tests etc. If it's just a few people, your build server will catch it. If it's just me, who cares that it breaks on another platform - I'll have to fix it myself anyway. As long as you do somewhat regular integration, obviously.
There is no silver bullet. But when it comes to giving up the great efficiency gains that come from a great IDE like Visual Studio, or having to fumble with the toolchain a bit to integrate better - it's an easy choice for me. Plus having a project that compiles with multiple compilers keeps you honest about standards conformance and portability.
[1]: http://www.bloodshed.net/devcpp.html
<--- former Dev-C++ contributor
I am still at university and they make us use this for C++ editing. I have made it a point to not use it and instead have been doing all my university C++ lab work on gedit because I find it much less frustrating than Code::Blocks and also because I don't have the rights to install Emacs.
The debugger is a pain to use, autocomplete is dumb, and the interface is simply difficult to use. I remember I had a hard time making it not use XTerm as a terminal when I initially tried to fight with it. I simply gave up. I even found NetBeans C++ mode to be an improvement simply because the debugger was better integrated.
On the flip side the interface, however unintuitive, does look consistent across platforms and there are a load of tutorials about C++ on the web which use Code::Blocks because of its popularity.
Its good to see an open source project going strong, and it might be great for newbies at universities when somebody else sets stuff up for you, but for my editor needs, I would look elsewhere.
I have a custom .emacs file (predicated to work on Windows/Linux/Mac and several emacs versions and including a function to install all the custom packages I need) and other config files like .bashrc in a git repo fr quick setup. Having to compile emacs yourself would be hugely frustrating though. I've never gone that far. I use TRAMP instead :)
Write a script that does your reinstall. There's lazy-lazy and active lazy. As a programmer, it pays off to be actively lazy.
Or, you can make a Git archive of your home directory. So long as your university has good bandwidth, this means you often won't even have to reinstall.
Really, there's tons of things you can do.
Including just sticking gedit like what he's doing now.. If his assessment is that he doesn't stand to gain enough to bother then who are we to question that? I'm all for emacs any day, but let the guy make his own decisions.
I started it from the command line, as I like to do with a new program. I was surprised to see not one windowing error, just administrative messages associated with the first run, and general setup. Sad to say that's unusual.
BTW Everyone, please write "Qt Creator" with space between "Qt" and "Creator". I don't know how spaceless variant got so widespread.