I'm coming from COD myself. For those unfamiliar, in COD, most of the game code exists in script-form in text files in pk3 files (essentially zip files). A mod is run not by being explicitly called but by including the right pk3 files in the right directory which over-ride the old rules. (everything is 'compiled' automatically when the game starts)
The advantages to this is that it makes small changes (like giving weapons different settings) really easy and efficient.
The disadvantages are:
1. a huge mess is created, and things conflict easily (users often get kicked from servers for having different versions of the same .pk3 file)
2. the scripting language and its basic 'functions' and structure are not well documented; with hl1/2, anyone can read one or two good 500-page books on c++ and be GUARANTEED to understand a lot of what's going on (...unless they didn't understand the books); in COD, I myself, a novice programmer (who hasn't done much more than read 2 good book on c++), still haven't made heads or tails of what's going on.
So my questions now are, 'can you make small changes to, say HL2 dm, like adding a new weapon, or changing the ammount of damage, etc., WITHOUT creting a whole new mod?' My concern is not that creators have to compile for each change, my concern is that, for instance, HL2 dm players can't load up hl2 dm and join different servers with different modifications directly from the hl2 server browser?
The impression I get so far is that, the tiniest change means its a whole new game with a whole new name, right? This seems clumsy. I realize the server browser inside a steam app can look at all steam games, but this doesn't seem conducive to getting small mods out there. The system seems weighted towards total conversion mods.
(oh, if a user clicks on a server playing a mod he doesn't have, can that mod be autodownloaded? Would the files be large and could the switch from the current steamapp to the new one happen quickly?).