Originally Posted by copse
Wouldn't it be the ultimate boost to a young kid who was working with this initiative, if they dug into the source code and fixed something that was really annoying to their peers. That's the kind of thing which builds a great programmer. To not open source in this case, seems a loss.
Well, given your next paragraph - how many bugs did you go fixing in the BBC ROM? Open source in that instance wouldn't have helped a great deal
I agree that it is an enormous boost to your confidence if you go into someone else's code and fix stuff - that's what happened to most of us that dabbled in type-in code in the 80s, as it appeared to me at the time. Take some code, modify it and make changes, learning as you go.
I grew up learning on BBC Model B's. We all had to learn how to write basic programs. Of course, who really learnt anything at that age? In this day and age you can get a toolstack that costs nothing and is open source as it needs to be and write an app that you can upload and sell.. it's so easy. That seems like a tremendously more useful learning opportunity.
I grew up learning to code in Sinclair BASIC (hence my current project above) and I learnt a lot about how a CPU works, even in BASIC - line numbers enforced the sequential nature of execution, GOTO/GOSUB are an almost perfect mapping for JP/CALL, variables map nicely to LD etc. Moving to machine code after BASIC was a breeze.
I do worry that all that has been lost with currently popular languages such as C/C++ in that the underlying method that the CPU uses is abstracted away under layers of OOP and nonsensical execution sequences, with confusion arising from header and include files...
But equally, the idea that the kinds of programs that people would like to write nowadays are so fantastically complex that there really isn't any other way without spending weeks and weeks on drudge code that is necessary to get even the smallest of task done.
When was the last time you started up a language and didn't have to spend more than a hundred lines of code setting up a graphical surface and a message loop? That sort of thing is fine for the experienced coder, but to an absolute beginner it's some sort of magic and not easy or logical at all.
But anyway, this is a little off-topic now