Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

iWill

macrumors member
Original poster
Nov 24, 2006
35
0
Sorry Guys about this but as a 15 year old kid i am completely perplex as to how people learn on how to program...
First of all, living in London i decided this year to take courses or private lessons to learn C++, but no such courses or lessons existed for my age at least...
So now i am learning with this great book ("C++ a Beginner's Guide" by Herbert Schildt) but as I am gaining more and more knowledge I am now in the need of learning on how to program with a GUI.
But how? Also, should i consider learning Cocoa or another language?
P.S. Do any Londonners have any advice as to where i can attend courses about C++ or other languages?
 
If you want to code applications that will only run on a Mac, then you want to use Cocoa. But, this will require learning and using Objective-C. Since you are learning C++, you might want to consider some cross-platform C++ GUIs, such as Qt (don't confuse this with QuickTime), wxWidgets, or GTK+. Personally, I think Cocoa with Interface Builder is a pretty friendly way to get into GUI programming, but it's not really well-supported with C++.
 
Sorry Guys about this but as a 15 year old kid i am completely perplex as to how people learn on how to program...
First of all, living in London i decided this year to take courses or private lessons to learn C++, but no such courses or lessons existed for my age at least...
So now i am learning with this great book ("C++ a Beginner's Guide" by Herbert Schildt) but as I am gaining more and more knowledge I am now in the need of learning on how to program with a GUI.
But how? Also, should i consider learning Cocoa or another language?
P.S. Do any Londonners have any advice as to where i can attend courses about C++ or other languages?
We sound very similar. I am also your age, and I learned my core knowledge of C++ from that book (which I found to be a great book, by the way ;)). For GUI, I would learn OpenGL. Though it's more geared toward 3D game developers, it's not only used for that purpose. Also, SDL is another cross-platform graphic library. SDL is mainly for 2D library, but can be paired with OpenGL for 3D games. As far as graphic-wise goes, there endless amount of libraries, engines, and APIs to choose from. Cocoa is the best API to use if you want Mac only applications. That too can be used with OpenGL or SDL(I'm unsure about SDL). My advice, go with OpenGL as it's the most widely used. If you were to say you are willing to learn Objective-c(which won't be too hard if you know C/C++) and are only looking to make apps only for a Mac, then i would say go with cocoa most definitely (and use OpenGL for any 3 dimensional needs you have).

You may want too look here: http://onesadcookie.com/CreatingMacGames/CreatingMacGames.xhtml
It mostly about all the ways to setup a window.

Hope that helps:)
 
So now i am learning with this great book ("C++ a Beginner's Guide" by Herbert Schildt) but as I am gaining more and more knowledge I am now in the need of learning on how to program with a GUI.

Please do yourself a favor and buy another book. Herbert schildt is the most useless writer for programming topics ever. He may be in the ANSI/ISO comitee, but that doesn't make hima a writer.

Don't believe me? Check here He has the worst reviews ever.

I know this for a fact because I bought his book "Learn C++ from the ground up" and I thought I had a gem in my hands. Later, I bought "The C++ Programming Language Special Edition" and I saw what I was missing. Schildt will not even learn you tha basics, and will introduce bad programming habits. He is known for the bad quality of his books.
 
Thanks for the replies everybody. I have to admit though that I am slightly confused thinking that starting C++ might have been a mistake. I guess for a windows GUI i will now need to learn .NET and for mac Cocoa...right?
 
Thanks for the replies everybody. I have to admit though that I am slightly confused thinking that starting C++ might have been a mistake. I guess for a windows GUI i will now need to learn .NET and for mac Cocoa...right?

No, you made a good choice, C++ is an advantage, albeit difficult to learn it - once it is your core language it is easier to migrate to other languages eg. Obj C, C, .Net, JAVA etc. C++ will take you a long way as there is still need for good quality programmers in that field
 
Yes, though many say it's a terrible languauge, that only because of the raw power it has. Unlike Java and C# with gargage collecting, you must be a lot more careful about what you do.

And no, for a GUI in windows there a lot of alternatives. .NET is primarily used for C#, not C++. Though if you wish to learn C# for both Mac OS X and Windows you can use Mono: http://www.mono-project.com/Main_Page
Mono is a free implementation of .NET for all platforms. Though it's not "complete", it's very close to the actual .NET.
 
Yes, though many say it's a terrible languauge, that only because of the raw power it has.

No, it's also because many people disagree with its focus. It has a triad of goals: type-safety (any error that can be caught at compile time should be), speed (anything slower than C should be optional), and flexibility (it should be able to be used for any problem [see iokit for an example of a subset of C++ in a niche problem domain]). It trades expressiveness and simplicity for these. Some people like that, some people don't.

Personally, I like the approach of having an easy to write/maintain language with the ability to mix in C (and/or ASM) when needed in a few performance critical inner loops. So I mostly use ObjC :)
 
Personally, I like the approach of having an easy to write/maintain language with the ability to mix in C (and/or ASM) when needed in a few performance critical inner loops. So I mostly use ObjC :)
How does ObjC or Cocoa compare with C++?
 
Sorry Guys about this but as a 15 year old kid i am completely perplex as to how people learn on how to program...
First of all, living in London i decided this year to take courses or private lessons to learn C++, but no such courses or lessons existed for my age at least...
So now i am learning with this great book ("C++ a Beginner's Guide" by Herbert Schildt) but as I am gaining more and more knowledge I am now in the need of learning on how to program with a GUI.
But how? Also, should i consider learning Cocoa or another language?
P.S. Do any Londonners have any advice as to where i can attend courses about C++ or other languages?

Just a word of advice: You may think that you've got a good book, but Mr. Schildt is usually better known under the name "Bullschildt" for good reason. Don't trust anything he says. Never, ever believe that anything is true because Mr. Schildt says so; when in doubt, assume he is wrong.
 
Just a word of advice: You may think that you've got a good book, but Mr. Schildt is usually better known under the name "Bullschildt" for good reason. Don't trust anything he says. Never, ever believe that anything is true because Mr. Schildt says so; when in doubt, assume he is wrong.
Then what should I buy?I based my purchase on what the amazon comments were and this book had excellent reviews...:confused:
 
thank you for the heads up on this guy. I will remember his name due to the little play on his name and bull****.

Thanks and gl iwill with your learning process.
 
Cocoa is an API, not a language.Objective-C is ANSI C with OOP added. If your going from C++ to Objective-C you may find it akward at first, but really it's a simple language.
O ok thanks
So since Bullschildt :D books aren't so good, what is a must for learning C++?
Also, when buying a book for Cocoa, does it mean that I have to buy one for ObjC and Cocoa or just one?Which one(s)?
 
No, it's also because many people disagree with its focus. It has a triad of goals: type-safety (any error that can be caught at compile time should be), speed (anything slower than C should be optional), and flexibility (it should be able to be used for any problem [see iokit for an example of a subset of C++ in a niche problem domain]). It trades expressiveness and simplicity for these. Some people like that, some people don't.

Well said!

You might be interested in "D" :) http://www.digitalmars.com/d

IMHO it is a nice improvement to C / C++. There is a Mac port available.
 
Hi iWill

You can stick with C++ and STL for the major part of your project and just mix in Objective C when you need to interface with Cocoa, eg writing handlers for the user interface elements etc. At least that's what I do.


I guess it's a personal preference but I don't like the reference counting stuff in Objective C and much prefer the memory management in C++. Also I find NSString a pain to use and the calling convention [ … ] for methods confusing and long winded to use. I have no doubt that Cocoa is a very powerful API but when I write programs for the Mac I always end up using the minimum amount of Cocoa and Objective C that I can get away with and use my old favourites C++ and STL for the rest. Anyway the Core stuff in OS X is written in plain C.

Sticking with C++ and STL or similar will have advantages in the long run if you wan tot make a career out of programming.

If you are interested in programming 3D then you could learn to program using Glut and OpenGL. This will let you write 3D applications in C or C++ without having to learn any Cocoa or Objective C. As an added bonus if you are careful your programs will compile and run on Windows and Linux with little if any modification.

Hope this helps

b e n
 
Thanks for the replies guys...so much more responsive than on the Apple forums.

Question, does GUI programming require knowledge on classic console programming?...I mean I'm currently learning C++ and I know that terms such as " cout << " aren't going to be very useful later on.
I know I'm really clueless when it comes to GUI programming but i fear that all my knowledge won't really be used in the future.
Right or Wrong?:confused:
 
The things you're learning now will always be useful. Even when you start programming applications with a GUI, you're going to need to know how to print to the console for debugging purposes.

If you want to get into GUI programming on the Mac, you'll probably want to use Cocoa. That means that you're going to have to learn Objective-C at some point. Don't think you've been wasting your time on C++ though, once you've grasped the concepts involved in programming, learning a new language is actually quite easy. Objective-C is a particularly easy language to learn if you already know a C-based language.

I'd recommend this book for Objective-C:
http://www.amazon.com/Programming-Objective-C-Stephen-Kochan/dp/0672325861

This book may frustrate you a bit because I can tell you're eager to get started on GUI programming, but I would urge you to work through it (or something similar) before you start on Cocoa. Trying to learn Cocoa without a solid grasp of Objective-C first will make your life much harder than it has to be.
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.