Author Topic: CodeBlocks a boost for c++  (Read 5985 times)

Offline JGM

  • Lives here!
  • ****
  • Posts: 518
  • Got to practice :)
CodeBlocks a boost for c++
« on: January 10, 2008, 05:42:58 am »
I was reading this old article, http://www.extremetech.com/article2/0%2C1697%2C1657948%2C00.asp and many others and it says so many true things. Languages like visual basic and c# with programming tools for RAD for GUI and a rich framework are becoming more popular everyday. Java appears to be the #1 on the http://www.tiobe.com/tpci.htm thanks to its RAD framework, GUI designers, and database tools. As for the recent .Net that has so many useful libraries that facilitate and accelerate programming jobs. But the most important thing is that IDE's that integrate all this functionality exist for the mentioned languages.

Seeing c++ going down to position #5 on the Tiobe website made me sad :(. Then I thought that what codeblocks is doing could bring more live into c++. Code::Blocks is sponsoring (it's the correct term?) a great framework, wxWidgets, that would attract more users to develop on c++ as it attracted me. Thanks to wxSmith plugin, RAD is possible inside the IDE as crossplataform (like Java does) what accelerate the development very much.

Then in my mind popped up that many newbies (like me) are visiting this forum, looking for easiness, since codeblocks makes so many things easy! Plugging on the IDE tools available on other programming plataforms as java and .net will help the IDE and c++ become even more popular, and make people understand that c++ can be used for RAD too! :D

What Groms says here http://forums.codeblocks.org/index.php/topic,7572.msg57406.html#msg57406 is true, maybe adding support for a database as open as wxWidgets. I would propose firebird that could be shipped with an installation of codeblocks thanks to its license, and a c++ library as ibpp. Powerful Libraries like TinyXml should also have part with tools that facilitate adapting them on the code (not to say GUI that make the task easier). Even adding a garbage collector library for those who like that. Also not forgetting boost. I had to make so many research to find, wxWidgets, firebird and other libraries that are free for use, so many users will appreciate having all this at the tip of their fingers, what makes c++ more powerful. Including all these on the IDE would kick anything else, since the c++ standard doesn't bring libraries for many things that java and c# does for RAD! Every person value very much free things, another point in favor.

(I don't think that any other IDE has recollected so many info and integrated inside of it to help programmers accelerate the process of development on c++, creating a RAD c++.  Many programmers and companies are seeking for ready to use tools that accelerate all the process, thats the new style of living, accelerated, turbo, hehehe  :lol:)

When i was on college, first I started with visual basic 6, i thought it was great, and make very nice programs, as a voice internet peer to peer chat using text to speech, very fast (one month)! Then I took object oriented programming using c++, and damn my first impression was that c++ was an old garbage, it doesn't let me make windows, oh! MFC was so complicated (what an ignorant I was). It came out later .net and the wonderful c#. And without money to buy Visual Studio .Net discovered SharpDevelop, what a great IDE it let me design windows, and for free!

Started making my practice before graduating and I made an application on c# for a school, to keep track of student grades, personal info, classes and everything related. The garbage collector of C# started giving me problems, the memory consumed was going up to 64MB and there was little I can do to solve it, only minimizing and restoring the application was cycling the garbage collector, so it started to suck, the application was finished and slow!

Finally graduated and with a Job (thanks to God) I needed to make an application that make heavy use of database and windows. Well I started reading and reading and found the powerful language that c++ is, then decided to make the change. Started studying C++ from the ground up, with some books that I had to buy on college, and bought some of ANSI C additionally. There is where I discovered codeblocks, men it was heaven, learned a lot of wxWidgets, wxSmith was a glory. Started developing the application and “tada!” I use CodeBlocks as my main development tool at my job since it is a non profit they let me choose the tools, and if free, better!

The point is, I discovered on codeblocks a better c++. And it took me some time to learn some basic things of c++, so switching to another language would suck since c++ is so powerful, native code, no runtime jit compilers, manage the memory as I like and many other things. I have seen so many better jobs that ask for c# experience or java on my country, where c++ is a shadow. But I insist on using c++ and keep learning it, instead of switching to another language that I don't like!

I don't know if I'm dreaming but for me codeblocks is a door to let the world know that c++ is as capable as java and c# for RAD. Just wanted to show my preoccupation of c++ and a marketing strategy (doesn't even know it this long post is a silly thing that will fade).

Offline EnterTheNameHere

  • Multiple posting newcomer
  • *
  • Posts: 19
Re: CodeBlocks a boost for c++
« Reply #1 on: January 10, 2008, 07:10:06 am »
How would You integrate that libraries into the C::B IDE? I don't like idea of getting IDE with some unwanted integrated stuff inside(tm).

Otherway, for newbies, getting all the includes, compiling source codes, linking libraries IS really confusing. Let's say to support some packaging system like Dev-C++, where You can download and easy integrate libraries and other stuff to IDE. Well that shound't be really hard, if You maintain the include/libs automatically. C::B has the plugin system to support extended functionality too. ( like the wxSmith )
But this will need a good update system too..( but emm, at actual nightbuild system distribution, I don't think that is a good idea. Maybe with a regular version of Code::Blocks )

But my opinion is, that even with this all good integrated stuff inside, there is a HUGE disadvantage now -> CodeCompletion
Even if You have a good Documentation for these libraries, at the coding time, it is like writing in a notepad. I don't have so good memory as others, so I too much often have to look to Documentation on particular objects, functions, looking for parent classes etc. Really boring..
From a point of view of newbie -> hell I don't want to program in C++ if there are IDE's like Microsoft Visual Studio, where I'm not lost at coding level, if I'm working with things that I don't use so often..
It would be great, if I can get all object methods.. Even better idea to See The Code

Thats just my idea on the promoting C++

Offline codeur

  • Multiple posting newcomer
  • *
  • Posts: 113
    • Code::Blocks EDU-Portable
Re: CodeBlocks a boost for c++
« Reply #2 on: January 10, 2008, 07:52:08 am »
I don't think it can be said that CB is bringing RAD to C++ software development.

C++ has been very prominent (in fact dominant) in software development using RAD under Windows, and that long before CB came along. Recently Microsoft (as part of its crusade against Java) is encouraging migration from C++ to C#. This accounts mostly for the decline in use of C++ in commercial development.

Outside the Microsoft world, and in particular in the open-source movement C++ is alive and well. RAD tools exist for all major C++ GUI APIs. Code::Blocks comes with wxSmith as it uses and supports the portable wxWindows API. The lighter and faster portable FLTK GUI library comes with the Fluid RAD tool. Whichever one you use (and there are others) depends on your preferences and requirements (it's speed and lightness -FLTK- against bells and whistles -wxWindows-)... horses for courses.

I appreciate your enthusiasm for C++. I also like that language. You should keep on using it when appropriate. It is a language that allows programming as close to the machine as one wants, hence its efficiency. It is also however a language that relies absolutely on the programmer having absorbed a huge amount of knowledge and having the discipline to do the "right thing" at every moment to maintain application reliability. The result is that applications using virtual machine languages (e.g. Java or C#) cost a lot less to produce in a commercial environment and are quicker to develop and maintain in these languages. They are however frequently less efficient, even when pre-compiled for a particular platform.

Another advantage (and paradoxically also a drawback) of C++ is that the language does not come with a set of ready made libraries to do everything, from GUI (with RAD tools) to databases, to networking, etc... as Java or C# do. Instead you have a huge gamut of third party libraries to choose from. Having the choice is great, but can also be overwhelming and can slow down commercial application development. A bad initial choice of library may be costly.

Once again, horses for courses.

I have an opposite perspective:
Code::B is my top choice for a free, portable IDE. I wish however that it did not come with wxSmith integrated, as it is making a choice of GUI for my applications and it is not its role. wxSmith should really be a plugin.
« Last Edit: January 10, 2008, 08:13:00 am by codeur »

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9528
Re: CodeBlocks a boost for c++
« Reply #3 on: January 10, 2008, 08:19:45 am »
wxSmith should really be a plugin.
You are joking, right?! wxSmith *is* a plugin. Feel free to disable/unistall it. It's no problem at all with C::B.
But BTW: Show me another IDE where you can disable the RAD part... ;-)
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline codeur

  • Multiple posting newcomer
  • *
  • Posts: 113
    • Code::Blocks EDU-Portable
Re: CodeBlocks a boost for c++
« Reply #4 on: January 10, 2008, 09:53:20 am »
My apologies. Of course wxSmith can be disabled or uninstalled. This is great, and of course this also is not something available on proprietary IDEs.

I was not joking, but I used awkward language. I mean wxSmith should be an add-on, installed and probably also downloaded separately.

As it is, there is that wxSmith drop-down menu entry in the nightly builds menu that by default gives pride of place to a RAD tool for wxWindows. Potential users who use other GUIs or who do not use RAD tools may not like this, in particular as I believe it is a sizable piece of software that adds its weight to the hefty download.

I understand wxSmith is a major job and the developers deserve to be proud of it. Perhaps another way than installing it up front by default could be found to make it figure prominently in the distribution... say by presenting it up-front on the download page.

This is not an important issue really with the nightlies, but it could become one whenever a stable release is made. Are you going to maintain wxSmith's special place by default in the RC3 binary releases? This could give the wrong impression to many potential users that Code::Blocks is an IDE "for wxWindows programming".

« Last Edit: January 10, 2008, 09:55:42 am by codeur »

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9528
Re: CodeBlocks a boost for c++
« Reply #5 on: January 10, 2008, 02:25:27 pm »
I was not joking, but I used awkward language. I mean wxSmith should be an add-on, installed and probably also downloaded separately.
Don't take nightly builds as reference. Nightly buillds have no installer... when it comes to a release you can choose in the setup what plugin (addon) to install. I can also think of configuration sets then like "full install", "w/o RAD"...
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline JGM

  • Lives here!
  • ****
  • Posts: 518
  • Got to practice :)
Re: CodeBlocks a boost for c++
« Reply #6 on: January 10, 2008, 05:38:41 pm »
Let's say to support some packaging system like Dev-C++, where You can download and easy integrate libraries and other stuff to IDE.

Exactly! But codeblocks already provide a plugin for that, but the last time I tested it, it wasn't working really well.

C++ has been very prominent (in fact dominant) in software development using RAD under Windows

Well on windows, but on linux or unix Java was already dominating with it's juicy framework as C# is introducing it self with the mono project. This is where wxWidgets comes to the rescue  :)

Outside the Microsoft world, and in particular in the open-source movement C++ is alive and well. RAD tools exist for all major C++ GUI APIs. Code::Blocks comes with wxSmith as it uses and supports the portable wxWindows API. The lighter and faster portable FLTK GUI library comes with the Fluid RAD tool. Whichever one you use (and there are others) depends on your preferences and requirements (it's speed and lightness -FLTK- against bells and whistles -wxWindows-)... horses for courses.

True! but for a newbie or company, having so much choicest is not always a great choice, also that's what have made Java and .Net so popular. Having all what you need to accomplish the work in one package, thats todays style of thinking. A great example: Walmart hehe :)

You should keep on using it when appropriate. It is a language that allows programming as close to the machine as one wants, hence its efficiency. It is also however a language that relies absolutely on the programmer having absorbed a huge amount of knowledge and having the discipline to do the "right thing" at every moment to maintain application reliability. The result is that applications using virtual machine languages (e.g. Java or C#) cost a lot less to produce in a commercial environment and are quicker to develop and maintain in these languages.

Thats what make me think that people is misunderstanding the concept of RAD. With c++ everyone is able to pick a programming style and get the job done, we don't have to know all the details of the language (like me for experience), except for pointers and manual memory management, but it's not so hard! Languages like Java and c# has borrowed the easy parts of c++ to make itself easy eliminating hard things, what could be manually done on c++, if you want to start programing templates is your choice as OO or procedural.

Another advantage (and paradoxically also a drawback) of C++ is that the language does not come with a set of ready made libraries to do everything, from GUI (with RAD tools) to databases, to networking, etc... as Java or C# do. Instead you have a huge gamut of third party libraries to choose from. Having the choice is great, but can also be overwhelming and can slow down commercial application development. A bad initial choice of library may be costly.

Thats exactly what I'm trying to say, you have got the point of what RAD is. With c++ if you want to use xml you would need to desing your own library while Java and c# bring this already, this is were tinyxml brings the shiny stuff, as wxWidgets with it's rich framework. Many companies don't give a heck if the libraries they are using are heavy or light while the job is kept up to speed, only professional programmers know these details.Thats why we keep seen the grow of jobs on java and now .Net.

I have an opposite perspective:
Code::B is my top choice for a free, portable IDE. I wish however that it did not come with wxSmith integrated, as it is making a choice of GUI for my applications and it is not its role. wxSmith should really be a plugin.

Well, codeblocks bring the flexibility that professional programmers need while the facilities that many newbies need. Like a professional developer (or yor matter of taste) you may find wxSmith unusable but for a newbie is something to keep an eye on, really usable, as for a company that wants everything in one package and done!. I'm not talking about professionalism, but about usability. Also part of the description of codeblocks says it is a pluginable architecture.

There have to be a way of uniting c++ not dividing it in to so many choices, thats a vulnerability when it comes the market.

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: CodeBlocks a boost for c++
« Reply #7 on: January 10, 2008, 06:07:34 pm »
Quote
Thats why we keep seen the grow of jobs on java and now .Net.
No, the real reason is that there are more stupid people than intelligent ones, and there are more uneducated people than educated ones (and... more stupid, unducated ones...).

This implies two things:
1. There are also more stupid people in management. These will buy expensive software that does not work, and upgrades to software that does not work, which don't work either. They'll spend 100 million dollars on a database system that needs 5 times the hardware resources as an open source product. Also, they will tell their engineers to use technology that makes it necessary to buy more expensive hardware. You wonder why they do it? Simple: some marketing campaign tells them, and they don't know any better (and as long as they earn 800k annual, they don't really care, either).
2. If 20 uneducated people in a development country who will work for 1/50 your salary and who don't ask for holiday or social security take a 2 week Java crash course and another 20 uneducated people do the telephone support to keep your customers busy, it is still cheaper than having you do it properly in C++, so your company's overall revenue is better.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline JGM

  • Lives here!
  • ****
  • Posts: 518
  • Got to practice :)
Re: CodeBlocks a boost for c++
« Reply #8 on: January 10, 2008, 07:00:08 pm »
the real reason is that there are more stupid people than intelligent ones, and there are more uneducated people than educated ones (and... more stupid, unducated ones...).

Then a definition for stupid in this case could be - a person out of knowledge, also a person that doesn't know how to use google properly.

There are so many Open Source choices that people prefer to pay inflated prices for slower tools that are an all in one solution. I could think that this is because indeed many people still doesn't know what open source is, and where to find the adequate software for the job. I have confronted many people that doesn't even know that free open source software existed, it is to technical for some small brains.

Quote
some marketing campaign tells them, and they don't know any better (and as long as they earn 800k annual, they don't really care, either).

This is really true, the marketing of privative software is heavy, while the open source one is for you to discover. So making this software more available to stupid people (see definition above) would help make the difference.

Quote
If 20 uneducated people in a development country who will work for 1/50 your salary and who don't ask for holiday or social security take a 2 week Java crash course and another 20 uneducated people do the telephone support to keep your customers busy, it is still cheaper than having you do it properly in C++, so your company's overall revenue is better.

Then a strategy like all the tools you need for free, just pay the handwork could work.

Is really annoying to know that this also a reality.