Well, it's been disputed once that people should split their big source files into smaller bits of monolithic modules to then include for the compile. But how efficient is it in a development of say a complex multi-linked intertwined system?
It's more a debate really that I wish to throw at some people here, as a lot of people will go on and rant about how inefficient it is to code large scale source modules. How exhausting it must be to scroll around the code and to actually find the places that need some tweaking, or to know where to insert new functions and link them inside the network of calls and schedulings.
Personally, I found it really well worth the try. I don't think there should be a general rule about big modules. I'm not the person that aims at making big monolythic modules, but sometimes it helps in the development cycle. For example, in the tabs where you've got your global variables, or your types, function names; they are all there, while you are developping. You know, when you are in this module, you don't need to look anywhere else, as everything is there. So, in that regards, performing massive searches or changes is much easier. All that is needed is to focus on that big singular module. debugging is simple, as most bug can be easily traced within the module. Development is straight forward, no juggling around source files to figure out where to add the functions. Re-structuring parts of the code gets relatively easy with a bunch of cut/copy/paste here and there. No biggie renaming variables/types/functions. Versionning of that module is just as easy, no questions asked.
Finally, integrating the BMS (Big Monolythic Sourcefile) into your game or project and testing updates is much easier, when you use say for example for your sprite engine. I'm all for monolythic modules for various engines or things like post process effect system, procedural texture builder, etc... I don't think it has anything to do with 3rd generation language coding, object oriented or what. Some people like to have lots of tabs in their sources, or large intro texts, many blank lines across the code, etc... I like monolythic efficient, tight modules.
It's more a debate really that I wish to throw at some people here, as a lot of people will go on and rant about how inefficient it is to code large scale source modules. How exhausting it must be to scroll around the code and to actually find the places that need some tweaking, or to know where to insert new functions and link them inside the network of calls and schedulings.
Personally, I found it really well worth the try. I don't think there should be a general rule about big modules. I'm not the person that aims at making big monolythic modules, but sometimes it helps in the development cycle. For example, in the tabs where you've got your global variables, or your types, function names; they are all there, while you are developping. You know, when you are in this module, you don't need to look anywhere else, as everything is there. So, in that regards, performing massive searches or changes is much easier. All that is needed is to focus on that big singular module. debugging is simple, as most bug can be easily traced within the module. Development is straight forward, no juggling around source files to figure out where to add the functions. Re-structuring parts of the code gets relatively easy with a bunch of cut/copy/paste here and there. No biggie renaming variables/types/functions. Versionning of that module is just as easy, no questions asked.
Finally, integrating the BMS (Big Monolythic Sourcefile) into your game or project and testing updates is much easier, when you use say for example for your sprite engine. I'm all for monolythic modules for various engines or things like post process effect system, procedural texture builder, etc... I don't think it has anything to do with 3rd generation language coding, object oriented or what. Some people like to have lots of tabs in their sources, or large intro texts, many blank lines across the code, etc... I like monolythic efficient, tight modules.