Actualy most NA/Euro developers have moved on to C++. C development is becomming rare with a few exceptions. Hell I was even writing GBA games in C++.
heh. well it is pretty fun ^^ but if you just design dialogs and add as resources it's a bit simpler at least
GBA games in C++? what kind of impact did that overhead have on the GBA? ;-) I know for fact the for GBA development, RAREware required the coders to be fluent in assembly and C. Working on lower level on weaker hardware lets you cram more power out of it - but then again , rareware are not your average studio when it comes to technical work. You have to be a proven scientist to work for them xD Factor5 and their GC titles are also rich in asm and C
well I and some friends made a platformer for the gba as a school project using lots of OOP and it worked perfectly. We had the plan to release the engine as opensource to the gba community as soon as we had fixed a bug, but the code was lost and now all I have is the rom. :-(
Hey I've downloaded the free Express editions of VB (both Windows and Web) as well as C++. I see what you mean about VB being easier to start with. In the end I want the program that's going to give me the most amount of freedom to create, or the most amount of options. Should I start at the bottom of C++ and work my way up or hit the ground a little faster with VB? It looks like I'm going to have to crack open a book or two on VB so I was wondering if the time is better spent on C++ if that's where I'm going to end up. Arigats.
you should look at it in terms of an investment. VB is ok for a quick-bang, but in the long-run C and moreso C++ will pay off and make you a better programmer.
Honestly, if you want something flexible and able to effective do anything that you want, then you want C++ plain and simple. Since it sounds like you have little to no programming experience, then you might as well start with (arguably) the best. Having some experience teaching programming in C++ and Java, here is my advice to you. First, while you can certainly learn to program from online tutorials and example code, I would highly recommend a programming course worthy textbook. Of course, if you learn better by example, then don't waste the money. The thing is, most people cannot learn proper programming without structure. Here are a couple of introductory texts that I have used and would recommend: "Programming and Problem Solving with C++" - Dale "C++: How to Program" - Deitel & Deitel Be warned, you will not do any sophisticated GUI's with either of these texts. They will, however, teach you the fundamentals of structured and object-oriented programming. You NEED to know how these concepts work in order to do more than a simple one screen program. Both books are well organized and start with simple introductions ("Hello World") and progressively build on the concepts until you are working with templates, pointers and other advanced topics. The key with these books is that the fundamentals can apply to almost any programming language. Why not C: C is definitely a flexible language, but it lacks the object oriented capabilities of C++. The two languages are very similar in style, with only some differences in snytax and structure. If you are going to learn either, it would be more prudent to learn C++. (Yes, I know there are more differences and subtleties, but I am trying to keep this simple) Why not Java: One of the local universities here recently changed their introductory programming course (i.e. the first course any computer science student would take) from C++ to Java. At the end of the first semester of that course, they saw over a 40% increase in the dropout rate. Why? The majority of students apparently could not grasp object oriented programming concepts quickly enough. Java is almost as flexible as C++, but it comes at the cost of being forcibly object oriented. Now, I do not think that this is a bad thing, but having learned Java after C++, I would say that it is much easier to pick it up when you have at least a good grasp of classes, inheritence and polymorphism. The same could be said for C#. Any questions? :lol:
yea, stay away from Microsoft's J++ too forever mairsil, what's your opinion on Object Oriented C? it's a very 'thin' layer at apparently no extra cost for the experienced C coder, what are the draw-backs except for code portability and popularity ? Any difference in overhead ? Are the compilers as efficient?
Do you mean Objective C? ("The Mac language") A good programmer can examine object code and use profiling tools to determine for themselves how to write good code in any language with whatever design paradigms they know for any platform. Honestly to really "understand" programming, you also also need to understand hardware. To become a good programmer IMO the bare minimum you need to know: digital - understand boolean/combinatorial logic, latches and flipflops, basic arithmetic like two's complement, sequential logic/state machines, binary/hex <-> dec number system computers - understand assembly with the few RISC type instructions (load/store, arithmetic, branch), addressing modes (relative and indirect especially) From there anyone can understand how C is like easy assembly and won't have a problem understanding concepts such as pointers (which are very important!)
implimenting stacks in asm can be a pain in the ass, even for simple FIFO. I still love asm though xD
But you do not need to understand programming to effectively program. Obviously the more you have the better, but you can never substitute good old experience with knowledge. What's far, far more important to understand than any of the above, is the idea behind the code. How often will you code something for yourself for a living? Rarely, if ever. You're always someone's bitch, so getting in their head is something not to be overlooked.
Stacks are LIFOs. Does your target processor not have indexed AM? heh edited to reflect Intel: push: mov [stack_ptr], register sub stack_ptr, wordsize return void pop: mov register, [stack_ptr] add stack_ptr, wordsize return with register to do a FIFO: pushing would inc, popping would dec. Very true, but if you aren't coding for yourself then good programming is rarely an issue.
I don't think that the OO extensions to C, aside from C++, are really worthwhile. Sure, you get to use C-like syntax with them as opposed to C++ syntax, but the differences are minor. I also don't think that the compilers will ever mature enough to make comparable to C++. The reason for this being that there is little to no competition for the compiler writers to improve. C++ has several high profile writers trying to capture the programming audience. For an "introduction" to programming, you do not need to learn the intricacies of the underlying architecture, though digital/discrete logic is a must. I certainly will not say that learning hardware design issues, such as Amdahl's Law or the performance characteristics of different hardware branching schemes, will not make you a better programmer. However, you don't need those when you are just starting out. It's ok if your first "Hello World" program uses 50 MB of RAM, even if that is laughable to a long time programmer.
Borland.....useful..Sorry mate not here in the Bay Area, San Francisco region CA USA that is. Maybe there is a different overseas but I know from my experience the only time i have used borland was in school. after that it was all Microsoft or a gcc compiler for C/C++ apps. On C++ If you are planning on learning it I would recommend a class on pointers and references. It is one of the concepts most people get very confused on.
oops Sorry. my bad. Borland is a nice enviroment but unfortuently no business in my neck of the woods even uses it.
Is that to say all professional programmers are good? I would beg to differ if that's the case. There are PLENTY of shitty programmers getting paid good dough.