BigBenAussie wrote:
Look, guys.. I think its great to learn C and all, but doesn't it really depend on what kind of project you want to work on? [...] However, I would imagine that creating AmigaOS apps using a standard C++ class library would be easier than a bunch of C routines with a zillion parameters.
It was about a learning to code-group. That's not the same as a creating AmigaOS apps-group, which requires much more insight into what can be done and how to do it. And aren't you slightly exxagerating the 'zillions' of parameters? I've rarely used more than 4 parameters to a function; if I need more, the function is too complex and must be split up.
C++ can actually be simpler to learn than C if one sticks to the simpler aspects. C++ can be a higher level language, and thus easier to learn, than C.
For example a C++ string object with overloaded operators makes text manipulation a zillion times easier than in C. Changing properties and running methods to manipulate a control of some kind, is, I am sure, easier to do utilising OOP than lower level C calls.
Don't forget you can abstract a helluvalot in C as well using a simple link library. Good C-code already implements a lot of the OO-methodology, with C++ offering more advanced and standardised features. Besides, do you really want to explain operator overloading and the confusing and arcane type promotion rules of C++ to a newbie? Otherwise he will blow both feet and parts of his legs away in the time it takes you to blink.
I would not expect Newbies to build class hierarchies and the like themselves but having them in existence in some sort of toolbox would shortcut development time and lower the threshold for programming in AmigaOS. Everything should be abstracted for the newbies.
Then they're better off with an interpreted scripting language such as Python or Ruby. They don't crash your machine, are very forgiving, and come with tons of 'glue' to link to toolkits, networking libraries, graphics subsystems, and so on. Even C++ looks very primitive and arcane compared to coding setups like these. It is also perfect for rapid prototyping, which can then later on be redone in C++ for speed.
Remember the whole nature of the new OS rewrite was to keep away from the metal so the rationale for writing in C or assembler and directly hitting the hardware is no longer there.
I'm afraid you got that quite wrong. There was never any need to hit the bare metal. People were just not used to program a multitasking environment and therefore made quite illegal assumptions about how the computer allocated its resources. They also thought that the OS would 'hinder' them in what they wanted done. They saw the Amiga as a C64 on steroids, not as a simple but fully functional Unix-machine. Even in the case of the Pegasos and the AmigaOne, I could hit the hardware if I wanted. Of course the OS doesn't (easily) let me, and quite frankly I have no idea what registers and stuff I need to fiddle with, but...
The rationale about the rewrite is to remove the hardware dependencies of the old AmigaOS, both in terms of the CPU as the old custom hardware. Also lots of bugs will be fixed, as well as implementation of much-needed extensions on a fundamental level, rather than tacking them onto the OS in the form of unstandardised user libraries.
I think ease of development so that new titles can be written for the platform is far more important that writing a 3d routine that runs milliseconds faster than before. WE NEED NEW SOFTWARE.
And that is very, very true.