As I said before, I went back to QtCrator.
I am also just giving feedback from a standpoint of a new CodeBlocks user wit little to no experience with this IDE.
C::B does a whole lot more than "nothing" with source files. As an IDE it invokes a compiler with a whole lot of configurable options to make object files, and seeing on the command line output that the compiler / options are nowhere near what's in my makefile does not generate a warm fuzy feeling in my belly.
From your point of view I can understand that makefiles do not have a high priority. I myself actually quite dislike makefiles with a horrible syntax which should have been obsolete long ago, but makefiles are still an important part of code development.
I think that there is quite a group of people with a working makefile based project, which have become curious to try out C::B and want to compile an existing project and for that group it is not a nice and easy exprerience.
C::B has been around for years and there is obviously a lot of good in it and a tremendous development effort.
But still, when I try to use C::B, I find a lot of rough edges which make me suspect that the UI is trying to hide a lot of uglyness which should not have been there in the first place. I assume that you are lacking the manpower to make this product as good as you wish.
As an unsuspecting user back in 2015 I lost a few days worth of work because of the "symbolic link" issue (Which is now apparently fixed in the latest version).
But when I read this:
Once you have used a makefile, attempts to compile anything without a makefile result in a number of warnings. The only way I have found of solving this is to reinstall CB. If you need both perhaps it is possible to install 2 versions of CB.
then my first reacton is: WTF kind of crappy @#$%^& is this?
When evaluating a new product there are a few things I look out for.
First of course the functionality. C:B has an enourmous amount of functionality. No complaint whatsovever in that direction.
Then there is the absence of very big or annoying bugs. The score here is very low for me. It caused me to abandon C::B for another IDE back in 2015, and after finding the same annoyances in 2018 made me switch back to QtC and gave me the motivation to give this feedback.
Platformio uses scons, and it has quite an intriguing mix of capabilites.
With Platformio I was able to pull some compilers from the internet (AVR, Espressiv, STM32), compile some source code ( "arduino" and "mbed" platforms) and put the binaries into a uC without even trying hard or putting a real effort in it. It all "just works". I was very impressed by that. Unfortunately I do not very much like the "arduino" nor the "mbed" fameworks so I'm in dubio wether to proceed with platformio, but it left a pleasant feeling in my gut. C::B did not do that, it mostly surfaced old forgotton irritations.
I think C::B wil be a lot smoother experience (especically to beginners) if you can spare some development time for smoothing out the wrinkles for beginners who use it for the first time. This is mostly probably small stuff such as the project name selection, making makefiles "just work" and updating documentation (pdf from version 10
).
Texts like: [quoteLast Updated on Wednesday, 26 August 2015 15:28 ][/quote] on
http://www.codeblocks.org/ (in 2018-03-26) also seem an indicatation for a serious lack of manpower from the developer / maintenance side.
C::B has plenty to offer for experienced developers, and once you are experienced with C::B you probably are familiar with it's quircks (Every IDE has them), but I think these quircks scare away a lot of niewbies, and among lots of newbies you can possibly find a few new developers vor C::B itself.
Another thing I noticed is that C::B loads a lot of different "build systems" for different compilers at startup. Long startup times (especially on old computer) are a big trun off for IDE's such as Eclipse & Netbeans. Startup times can be much improved for C::B if it only loads what is needed and when it is needed.
If C::B could startup in < 1s to edit a simple text file I would be very tempted to use it for simple text editing and from there it is more tempting to also use it for code editing.
If C::B needs a few extra seconds for configuration purposes for the first compile / link cycle after startup that is not such a big deal. This probably is quite a lot of work for developers to implement but quite attractive for anyone seeking a responsive IDE.