NO

Author Topic: Pelles C versus Code::Blocks  (Read 28324 times)

Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: Pelles C versus Code::Blocks
« Reply #15 on: October 19, 2012, 05:22:16 AM »
I am currently running four operating systems GNU/Linux (Debian), Win7, WinXP, and win2k. I'm primarily on the win7 and win2k system all day. I dual boot Win2k and Debian on the same system.

I enjoy working in windows and have for many years. My goal is to 'eventually' to be able to program in both GNU/Linux and Windows using a cross-platform IDE although using separate IDE's or compilers for both OS's is always an option. That is why I originally considered Code::Blocks which to my understanding is cross platform.
Well, yes, in theory. In practice, it isn't always that easy as this seems however.
I am working on a cross-platform project myself (with targets being Windows (XP/7/8), Linux and Mac OS X) and can tell from experience that there is no such thing as easy cross-platform development. Having the advantage of wxWidgets (fka wxWindows) can level a lot of the GUI part, but then you might run into a lot of more low-level issues like string encoding (the lovely Unicode/UTF/blablabla fun stuff) and basic file/folder conventions. That's where the real fun (or not) begins...  ;)
Quote
I am just learning the interface 'GNOME' on Debian and slowly learning how to maneuver around in this new environment. The programming tools for Linux are amazing from what I've read.
Well, start using them and then re-assess that statement...  :P
Quote
I understand that to learn some aspects of structure coding is required. However, beginning the process by following a hello-world tutorial is certainly a wonderful beginning but I would also like to learn the the tool itself (what files need to be created for a project, what the files are used for and why they are needed, what is a Bitmap, a string table, a table editor and libraries etc. etc.). I have searched google and found answers to some of my questions.
Well, that comes down to what I referred to in different threads in this (and other) forum(s) before. IMHO, People need to learn programming basics before the start dabbling in any specific language.
Quote
QUESTION #1 please:
Would you recommend learning Visual Basic first prior to learning the 'C' programming language? Or do you recommend starting with the 'C' programming language immediately? I'm certainly not a complete newbie to programming but I have run across this topic from time to time.
Neither nor. Start learning by programming Pascal. Real programmers DO program in Pascal... <BFEG>  ;D
Quote
I have also been studying Linux for the past couple of months and have finally installed my first Linux OS (distro). I am very happy to have succeeded at this. During my studies I have become fairly familiar with GNU, GCC, emacs, MinGW, wsWidgets, GTK+, etc..
:o emacs? I hope you washed your eyes and hands properly after that...  ???
Quote
However as one dreams to program on a cross-platform basis, and utilize the tools that work in both environments (Linux and windows), the setup time, configuration, familiarity of the interfaces as well as the learning curve can be quite an uphill climb.
And that's just the beginning. But again, if you are familiar with the basics, building on that can easy all those little steps...
Quote
QUESTION #2 please:
At this point, I simply prefer to 'back-up a bit' and start learning how to program in windows. That is the level I am most fluent.
 and familiar with. After all, I've been using windows since 1993. It's just where I'm at now. Also the language of 'C' doesn't change if applied to Linux or Windows. 'C' is 'C' no matter where deployed? Is this correct?
Well, that's what some people are trying to tell you. In reallity, this simply is not the case as I mentioned before. There are a lot of low-level tripwires that you will stumble upon, and that can be an issue regardless which programming language you are using...
Quote
Then there's the question of "what programming architecture".  Is it Win32, .NET, wxWidgets, GTK+ on and on. It becomes daunting to someone just entering the programming field. And then there's Linux!
If you are serious about cross-platform and using C, anything that is using wxWidgets is probably your best bet. It levels a lot of of teh GUI stuff, but as mentioned, it also still leaves a lot of low-level stuff to consider to "get it right"...
Quote
QUESTION #3 please:Eventually as I become familiar with Linux and coding in both Windows and Linux, I can simultaneously work with a cross-platform IDE and learn to install GNU tools and begin to experiment. Or as I mentioned earlier, utilize separate IDE's or compilers and text editors that are geared for a specific OS and design architecture. Correct?

Many people on the Linux side are just as helpful as you have been on this thread. Complete professionals with a knack for quality advice and support.
It really depends on what your goals are and how comfortable you are/how easy it is for you to learn. The overall task that you seem to have in mind is not a small one, so you can't expect wonders...
Quote
QUESTION #4 please:
Any opinion please on the above statements? Does it affect me at my level of experience (as in just starting to learn 'C' programming)?
IMHO, get somewhat proficient in C first, independent from any OS. It doesn't help you programming in any GUI stuff, be it Windows, Linux or any other OS, if you do not know your way around the basics of the language, like pointers, pointers to arrays/strings, string handling, etc,....
Quote
Yes I do already own, "Teach Yourself C Programming in 21 days" but it is the 1995 'premier edition'. Not the current 6th edition. Not sure if this is a huge difference but it is a bit hard to follow but a very thick book full of info. Just not sure if it is C-99. I don't believe so as it is dated 1995.
Doesn't really matter IMHO. The basics of C are still the same. K&R is a bit dated as it precedes ANSI C (as in C89/C90) and can lead to some bad habits that pretty much all newer (post K&R) compilers by default might not take that lightly...
Quote
I have also heard about, Kernahan and Richie's "The C Programming language" as well as Petzold's book on programming in windows. Thank you.
As mentioned, K&R is a bit dated. Programming for Windows on the other hand is not directly related to programming in C, though it uses it a lot for it's examples IIRC....
Quote
I've read much about which language is the best to start with and I was convinced (actually educated) by some articles and links that suggested 'C' is the place to start. , I have also known for years that languages written closer to machine language such as 'C' language (besides Assembly Language)  can be more powerful and stable (if correctly coded).
Well, any language, if correctly coded can be powerful and stable. I personally still use Pascal (in one form or another) for all my own everyday programming tasks...  ;)
Quote
He also promotes 'Lisp' as a language to consider as well but I don't want to get over indulged in choices. It becomes too overwhelming. To my understanding every other language -at some point- branches off 'C'.
Well, not by a longshot. And please, don't program with a lisp...  ;D
Quote
QUESTION #7 please:
My understanding is the compiler in Pelles C is based on Lcc albeit in a much upgraded capacity. Is Lcc-win32 still a popular program used by programmers?
I had once a look at it, but did not see any reason to get involved with it. When I was looking for a specific project a few years back for a freely available C compiler, that's when I stumbled upon Pelle's C and think for plain C programming in Windows, it's simply the best choice...
Quote
QUSTION #8 please:
The reason for C++ (I thought), was to create GUI programs.  Apparently GUI programs can be constructed using 'C'  but at a more difficult level ?
C++ directly has nothing to do with GUI program. It was just a development by Stroustrup to bring object oriented program to a more or less vaguely C like programming language. Some things like basic stream input/output are completely different (and I personally despise that <</>> syntax).
What made C++ (beside at that time "en vogue") appealing to GUI programmers is that it by design supports threads, which in a multi-tasking/threading environment like most GUIs is a main feature to deal with. This is where plain C needs to use some crutches IMHO to achieve the same functionality. But that doesn't make it impossible either....
Quote
Ok, thank you. Is there any advantage to knowing 'C' prior to learning C++? I read opposing views on this.
Yes and no. As mentioned somethings are completely different, specially if you properly use OOP techniques in your programming. IMHO this is also the point where a lot of people completely fail in their attempts to do simply "over do it" with a completely impenetrable maze of classes/methods/etc...
Quote
> Throughout this keep in mind that Programming is about 70% research and planning, 10%
> writing code and 20% fixing your own mistakes.

Now that's an eye-opener!
But oh so true. A lot of people, specially in Open Source projects, make the mistake to just sit down and hack along. It really shows and makes it a lot of time unnecessary hard for outside people to follow what was done for what reason. And just  don't get me started on that stupid "the documentation is in the code" mentality....  >:(

Ralf

CommonTater

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #16 on: October 19, 2012, 06:21:12 AM »
Slow uptake or not, IMHO, as I mentioned in a previous thread regarding this issue, I don't really consider anything in C99 or C11 a real worthwhile improvement over older "ANSI C" (aka as ANSI X3.159-1989/ISO/IEC 9899:1990, aka C89/C90).
A bit tighter typing maybe and the use of "//" style comments...

Agreed.  Some of the extra library functions are nice but there's not much we couldn't concoct on our own.  One of the nice parts about working this close to the metal is that we can easily create almost anything we need.

Offline AlexN

  • Global Moderator
  • Member
  • *****
  • Posts: 394
    • Alex's Link Sammlung
Re: Pelles C versus Code::Blocks
« Reply #17 on: October 19, 2012, 07:54:56 AM »
If you read the forum of Code::Blocks you will see, that Code::Blocks is only an IDE. There are downloads boundled with the GNU-GCC compilers and debugger but it is only an IDE.
Pelles C is complete package with IDE, debugger, compiler, resource editor and ...

Hi Alex,

That is good to know. Thank you.

Question please:
I guess my first clarification is to further understand what components are included in a software developers tool kit that would classify this toolkit as an IDE or simply as separate tools?

Or rather, how does a 'feature rich' IDE compare to a 'no-frills' IDE and then comparing both to utilizing separate tools such as a separate text editor (i.e. notepad++) and a separate compiler. This is the most confusing part when beginning the process of learning how to program (when initially searching for tools or a pkg. that contains a combination of tools).

I did read this and found it very helpful:
http://en.wikipedia.org/wiki/Integrated_development_environment

Thank you Alex

I work with both.
When I want to create a little program, I use Pelles C. It has an editor, a resource editor, a compiler, a debugger, libraries and header files - all what you need. :)

Code::Blocks is a great editor (and I use it, when I must use a compiler without an IDE), which can integrate a compiler (with libraries and headers) and a debugger. If you want resources you need an extra resource editor or you use the wxWidget-plugin but then you must use C++ (and I don't like C++). So you have a great IDE and many components which are more or less well integrated and if you have questions you must look for the right forum.  :-\
best regards
 Alex ;)

czerny

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #18 on: October 19, 2012, 10:20:33 AM »
Hi wallep,

I got the intension that you, as a beginner, want to do (learn) too many things at once!
Try to reduce that considerably. Try NOT to learn a little bit in every corner, try to learn something good, in the very detail. Try to learn ONE programming language at first, and learn it good. Focus on ONE operating system.

Question #9 please:
Ok, thank you. Is there any advantage to knowing 'C' prior to learning C++? I read opposing views on this.

You can't learn C along the way. Try to find out, if C OR C++ is YOUR language. It is a matter of personality!
A C programmer likes to know what is going on in every detail. He is not happy to have some essential things happening behind the scenes, hidden in some objects or sort of 'helpfull' frameworks, etc? An alternative to C is only assembly language, not C++.

QUSTION #8 please:
The reason for C++ (I thought), was to create GUI programs.  Apparently GUI programs can be constructed using 'C'  but at a more difficult level ?

Gui programming is not more difficult in C than in C++. It is an other way to do it, and there are fewer examples in the web, how to do it.
What is more difficult is to work with COM-objects. Here is, in my opinion, a real difficulty with pelles C. A idl-compiler is not available. But it is doable.

Hope you can reduce your wishes. Fewer is sometimes more.

CommonTater

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #19 on: October 19, 2012, 03:58:16 PM »
Hi czerny ... good post...
 
Wallep,
czerny makes a very good point here. 
 
There's an old saying you may have run across: "Jack of all trades : master of none."
 
It laments the slow death of true craftsmanship in our world. Over the last half century we have slowly moved from a skills based economy to a consumer based one in which very few people hold true skills anymore and technology, advanced as it may be, is slowly becomming an appliance trade wherein almost everyone is using tools (and toys) they understand at only the most superficial levels.
 
Couple this with the growing ease of access to information and you have a new mindset that is now beginning to emerge. Today's craftsman is not a true craftsman in the old sense. They don't spend the time or make the effort to be especially good at any one thing. Instead they are trying to jump directly from "layman" to "engineer" without completing the intermediate steps. Most are all over the board trying to play multiple games at once and most often they are considerably less skilled at any one thing than their predicessors.
 
And it shows!
 
What each of us is suggesting, in our own ways, is that you must not fall into this trap; and it is a trap.  We call these guys "Skript Kiddies".  Typically they will produce astonishing amounts of mediocre code that is almost entirely made up of snippets of code taken from other sources (the web, other pojects, other programmers, etc). Often they work with code they don't understand, simply using it and hoping it works as expected, racing to find other snippets when it doesn't. While this sounds like a great way to produce a ton of code, there's the jaws of the trap... these guys are so scattered, so invested in borrowed code, they are unable to debug or improve their own products because they don't actually understand how they work!
 
Instead, we are suggesting that you settle down, pick one focus... "I want to ______" and get yourself really good at it.  In the days of true craftsmanship you would have bought a table from Fred because Fred makes excellent tables, but you would have gotten the chairs from Dave because Dave's chairs are the best. This is not because Fred doesn't know how to make chairs... it's because Dave spent the time to learn how to make a really good chair... something nobody does anymore.
 
Sales pitch aside... the suggestion is that you pick one language, select the best tools for the job, and become a master of the skill before you even think about moving on to something else. Trust me on this, the ability to honestly write "Expert in C programming with Windows API" will be a far bigger selling point than " Programming experience in Basic, C, Fortran, Pascal C++ and Forth". 
 
It's your choice, of course but I would always prefer craftsmanship over the facade of productivity.
 

Offline DMac

  • Member
  • *
  • Posts: 272
Re: Pelles C versus Code::Blocks
« Reply #20 on: October 19, 2012, 07:58:10 PM »
I guess I'll throw my hat in the ring.

My first serious attempt at programming something began with a need.  Without that I would not have sojourned in the programming field these 10 years.  I was an electrical draftsman and I wanted to program AutoCad to model twisted strands of wire harness in an assembly.  The first language I seriously attempted to learn was AutoLisp.  I learned it because that was the tool furnished by AutoCad to do what I needed to do.

I didn't read a book; I didn't have an IDE.  What I did find were online archives with thousands of AutoLisp snippets written over the years from the early 80's to the late 90's.  I searched out code that did something similar to what I wanted to do (modeling chain for instance) opened them in notepad and spent a day or two reading and trying to understand how they worked.  I remember having an ah-ha moment and then I began to write a routine copy pasted from many different examples and then refactored it until everything worked the way I wanted.  ("Refactor" was not in my vocabulary in those days but that is what I did.)

My next serious attempt at programming something began with a need.  Without that I would not have continued to program these 10 years.  I was an electronics bench technician primarily occupied with design verification test activities.  We had a lot of programmable equipment in the lab and eventually we wanted to automate data collection.

I had at my disposal Visual Studio and a vendor provided framework in VB.NET that simplified instrumentation communications.  I took a 1 semester night school class at the university to learn VB.NET and then dove into the project.  The course taught me how to work Visual Studio and to recognize VB.NET syntax, a year of working it everyday under deadlines launched my career.

Now the vendor provided framework didn't do all of the things I needed it to do.  Code samples and snippets that I found to work around the limitations were written, sometimes in vb6, sometimes in C#, and sometimes in C.  Often the language depended on the year something was written and the sub-discipline of programming.  Thus, low level parallel port interactions - C, dot NET graphics - C#, general instrumentation - Standard Commands for Programmable Instruments (SCPI or Skippy) in vb6, 5, 4 & etc...  I learned to read and translate from these languages as the need arose, Google was my friend.

Eventually I wanted to know what was going on under the hood.  VB.NET was floating on an abstraction layer above windows.  I had found BCX, the Basic to C Translator, helpful to understand what was going on inside of standard basic (and by extension Visual Basic) to wit, commands, structs, pointers, memory allocations, message operations... C - the language of the operating system, the pavement upon which all the rest stood.  At this time I found Pelles C to be the best tool to do Windows API coding.  For windows and C, Pelles beats even Visual Studio.

Each serious attempt at programming something begins with a need.  And the need will dictate that you learn something new.  The language and the tools are dictated by the need.  Therefore determine what you want or need to do, pick the simplest tool to get you started and just do it.  If there's a deadline behind the need, all the better, you'll persevere, not even giving place to the desire to quit, lest you be trampled by the bulls.
No one cares how much you know,
until they know how much you care.

wallep

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #21 on: October 19, 2012, 08:56:06 PM »
To All,

I am very humbled. What amazing posts!! I have never been so informed and/or advised on any other forum. Especially at this level of professionalism.

All I can say at this point is "Thank you All so very much". Just incredible advice. I needed to hear the recommended suggestions. Hopefully I will soon find the time to kindly respond to each post and obtain some further details in my quest for knowledge.

Yes for now, I would like to simply take your advice, stay focused and learn 'C' using windows API or win32. In the meantime, I can certainly learn to navigate around the world of Linux using my newly installed Debian operating system and begin to become familiar with this new OS while simultaneously applying all my programming studies in a windows environment (as a start).

I am a musician and life-long student of music theory, musicology and tuning theory. I am also a veteran of the stock-market and have been a stockbroker and investment adviser for approximately 23 years. I left the industry after the 2008 world-wide mortgage debacle and I am now searching for a different 'more stable' path.

I have gained much knowledge in the financial investment markets and in music theory and would like to begin the process of learning to "code" small programs that accomplish small tasks in those mentioned areas of interest.

The "need" that initially caused my desire to want to pursue the path of programming was born the day I downloaded a program called, 'Tune Smithy'. The program was created by an inventor, software developer and musician named Robert Walker. All his programs are written in 'C' for windows. To see the power of programs written in C for windows, check out the links below.

See:
http://robertinventor.com/software/main/index.htm

I am amazed at his fine work and what the programs can accomplish. I share the same interest as this inventor and software developer. We both enjoy music theory (why and how music works) as well as tuning theory (why a piano, flute, guitar or any instrument is tuned a particular way and why these instruments utilize the notes they so choose in their scales among the infinite choices available).

Please see my inspiration here: All programs are written in 'C' for windows:

http://robertinventor.com/software/tunesmithy/music.htm
http://www.bouncemetronome.com/
http://robertinventor.com/

If any 'Pelles C' forum member has an inspiration story, I'd like to hear about it and/or check out the recommended links (if any).

Be Well and Thank you         p.s.  now onto reading the Pelles C 'Help File'.
« Last Edit: October 21, 2012, 05:50:09 PM by wallep »

inobor

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #22 on: November 08, 2012, 10:26:59 AM »
Hi wallep,

Before you start learning C and then C++ you have to realise: C++ is very difficult and big
language. To feel its taste and make your weapon you'll spent 10 times more of your time
and energy than plain C. Its much faster to learn/play/exercise C than C++.

But if C++ is ultimate goal, you better forget about C entirely and start straight from C++.
Why? Because C++ is object oriented language, C is not. If you start with C, it will
"handicap" your learning of C++.

My personal view: it is better to hold and know the knife, than holding and NOT knowing
the kalashnikov

CommonTater

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #23 on: November 08, 2012, 10:49:30 AM »
Ummmm.... you do realize that most C++ compilers will also compile C programs, don't you?
For Example: The Mingw that ships with CodeBlocks will do either with equal ease as will VC++ from Microsoft.  Frankly you might be amazed to know how many people have learned C on C++ compilers....

Yes C++ in objective mode is more difficult and it definately just keeps on coming... but at the root of all programming are a core set of principles that hold true no matter where you go.  Programming isn't "if this then that" or "while fred do jane"... it's a set of operations on data.  The means any given language uses is irrelevent (so long as you understand it) what matters is two very crucial points: 1) That the needed manipulations are *accurate* and 2) That operators find the work we produce to be both easy and convenient to use. 

As programmers our main job is to make incomprehensibly difficult tasks easy for the end user to perform. 

Take a look at a typical data operation... word processing... On it's surface it's typing, backspacing, inserting, replacing etc.... at the programming level it's a series of surprisingly complex operations on a data set... adding new characters to a data buffer, removing characters and moving everything forward, inserting new characters after moving everything back, maintaining memory, drawing in appropriate fonts and on and on and on... Our job is to take all that and make it easy for the end user.

There are only so many things you can do with data ... you can add, copy, delete, revise, sort, etc. ... these are the programming fundimentals that we can take from one language to the next.  We don't have to forget everything, we just have to adapt to the new environment.



« Last Edit: November 08, 2012, 10:55:11 AM by CommonTater »

CommonTater

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #24 on: November 08, 2012, 07:21:07 PM »
My first serious attempt at programming something began with a need. 

Hi DMac...
Hope you don't mind a late response.  I was planning to toss in my own story but got sidetracked by some family stuff.  Today's a quiet day, so here goes...
 
I came to programming out of curiosity, mostly.  I was seeing the various micro-computers coming onto the market, written up in my electronics magazines and decided to give it a try.  The first one came as a KIT (yikes!) that took me most of 3 months to assemble and get working and then the joy of binary coding... actually entering my first program from the front panel switches.  I learned a lot from that machine, and eventually turned it into a service career.
 
Then it was on to a new home computer that gave me my first exposure to actual programming languages, Basic and Assembler. I had a ton of fun learning everything about this machine and then writing a couple of "patches" for the IOS (no operating system, per se) that saw some general use in my immediate area, passed from dealer to dealer.
 
About then I got hooked into one of the first personal computers for business use and I ended up training technicians and looking after the machine's service in Canada, until they went under (on strength of their own stupidity, I might add). I got into compiled languages with this machine, learning GWBASIC and BASCOM as I wrote diagnostics and intra-corporate applications for it.
 
From there the whole thing took on a life of it's own... The PC was out, Pascal was the hot ticket and I went right for it.  Developing a series of Point of Sale and Inventory programs for electronic parts suppliers and hardware stores.  Unlike yourself, I'd say this was the first time "need" entered the picture... I needed money and my bosses were bankrupt!
 
I managed to keep free-lancing for a long time. I got real lucky and was never more than a couple of weeks without a project on the go.
 
The rest has pretty much happened here... When Borland introduced Delphi and abandoned Pascal, I was left hunting for a new programming language... Pelles C... I translated my Inventory package to Pelles, wrote a couple of other applications, did a lot of "too small for the big guys" projects and stayed with it until this summer, when I sold the whole shebang to a very bright programmer who was looking for a start...
 
Quite a haul ... and now I'm back, full circle, to doing this stuff out of curiosity and as part of other projects (EG. Remote control of Headless PCs, as part of a Home Theatre project...)
 
 

migf1

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #25 on: November 25, 2012, 12:00:13 PM »
Hello,

I'm with inobor at this one. If your basic aim is C++, then in my opinion you'll be benefit the most if you start right away with C++. They are 2 different languages, and for some time now C has stopped being a complete subset of C++... so no, not all C programs will compile and/or work correctly under a C++ compiler.

On another note, since you mention you are really interested in cross-platform development, then neither Pelles-C nor Visual Studio can provide you that. Ideally you should install Cygwin, which is essentially a Unix layer on top of the Win32 API, but using native Windows executables (that means it is not a virtual machine, and it also means that you can develop *almost* native Win32 API application... almost, because you need to distrbute a cygwin dll along with your programs, for them to run under Windows, in the case the user does not have Cygwin installed on his/her machine ).

If you are not up-to it, then MinGW is the 2nd best alternative for developing x-platform programs without moving to a different OS (than Windows I mean)... actually MinGW is a minimalistic fork of Cygwin, paying more attention in Windows development (it also uses the Microsoft runtime by default). In other words, it makes it easier to develop native WIndows apps and harder to develop cross-platform apps.

Both compilers are up-to-date as far as the C99 standard is concerned, while they already provide some C11 support too (GNU has announced their plans to support the vast majority of C11 features in the upcoming release, 4.8 I think.. Pelles C already does that, Pelles C is considered - and it is - among the best C compilers available for Windows programming, and certainly the best free one for that purpose).

Regarding IDEs, Code::Blocks is an excellent IDE. It's not mandatory to download it with MingW, there's a separate download if you want that. The main download is just the IDE, which you can then configure to use whichever compiler you already have installed on your system. If my memory serves me well, you can even configure different compilers for C and for C++ (but I may be wrong, since it's been a long time since the last time I used Code::Blocks). You will have the same interface no matter the platform you work on.

CodeLite and Orwell Dev-C++ are also two attractive options, however a bit inferior to Code::Blocks if you ask me (although I have made the Greek translation of Owrell Dev-C++, along with Pelle's C 6.50 and 7 ;) )

In any case, it is counter productive to start with an IDE for learning C and then switch to another IDE for learning C++. The above mentioned IDEs save you that hassle... although, as I pointed it out above, imho it's also counter productive NOT to start immediately with C++, if that's the language you are aiming to.

That being said, if you are interested solely in Windows programming, then the best options are Pelles-C for C and Visual Studio for C++ (Microsoft has abandoned their C compiler to the C89/C90 standard + some C99/C11 features that are common between C99 and C++11).

Another option is the .net framework (pure or usnig its Posix port called Mono). C# is currently the hottest language in that area among professionals, with VB.net being used more widely among the rest.

If you go this way, then for the Windows platform Visual Studio is the top option. But since it comes with a high price and its free version (Express) lacks some really interesting features of the full-blown version, you may take a look at the open-source SharpDevelop (also spelled #develop).
For x-platform .net development, there's just one option I am aware of: MonoDevelop. But keep in mind, that Mono cannot keep up with .net's updates so it may take it a while before the Mono guys ports them. Also, the Windows version of MonoDevelop does NOT seem to be that stable under Windows.

Best regards.
« Last Edit: November 25, 2012, 12:09:58 PM by migf1 »

Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: Pelles C versus Code::Blocks
« Reply #26 on: November 25, 2012, 06:55:09 PM »
Hello,

I'm with inobor at this one. If your basic aim is C++, then in my opinion you'll be benefit the most if you start right away with C++. They are 2 different languages, and for some time now C has stopped being a complete subset of C++... so no, not all C programs will compile and/or work correctly under a C++ compiler.
I am pretty sure that every C++ compiler out there is able to compile C89/C90 programs.

If C++ compilers have problems with compiling C programs that's is very likely that those are programs that use C99/C11 features. One more reason why I don't use really any of those features, you can do quite well without them IMHO...

Ralf

migf1

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #27 on: November 25, 2012, 09:51:17 PM »
I am pretty sure that every C++ compiler out there is able to compile C89/C90 programs.

If C++ compilers have problems with compiling C programs that's is very likely that those are programs that use C99/C11 features. One more reason why I don't use really any of those features, you can do quite well without them IMHO...

Ralf

That's perfectly fine by me, but not everyone is happy to be forced to write legacy C code even 12 years after C99 debut.

Languages usually evolve for good reasons, and although it's fully understandable to stick with ancient history for some time, say because you must maintain tons of already written legacy code, I'm quite confident that sticking to C89 simply because you prefer to compile your code with C++ compilers instead of C compilers, it's not a very solid argument. Neither a productive, nor a safe one I would add ;)

C and C++ are 2 quite different languages, a fact that gets more and more apparent after every new standard is established for either one of them.

As I have already mentioned, C++ is NOT a complete super-set of C for quite some time now. By saying C, in a 2012 context, the point of reference is most certainly not the 22 years old ANSI C89/ISO 90, but at the very least the ISO C99 version.
« Last Edit: November 25, 2012, 10:42:30 PM by migf1 »

CommonTater

  • Guest
Re: Pelles C versus Code::Blocks
« Reply #28 on: November 25, 2012, 10:20:10 PM »
Ralf, ah loves ya man... but I'm seriously starting to think you're stuck in some kind of time warp...

Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: Pelles C versus Code::Blocks
« Reply #29 on: November 26, 2012, 08:34:57 AM »
Ralf, ah loves ya man... but I'm seriously starting to think you're stuck in some kind of time warp...
Why, because I just don't follow all the new "shiny, shiny" and rather stick to stuff that's tested and proven?  :-\

Has served me very well for the last 36 years and I am sure it will serve me well for many years to come...  8)

Ralf