“Code” refers to the height of the rail thousandeths of an inch. Code 100 rail is .1" high. code 83 is .083" high. Rail is available in sizes ranging from Code 40 to Code 125. (And larger may be available.)
In HO, Code 100 rail is about the same size as prototype 152 lbs./yard rail, very heavy duty and very rare. If memory serves me, only certain high traffic lines on the Pennsylvania Railroad used this, and after World War II, steel mills stopped producing it.
In HO, Code 83 rail is close to the same size as 132 lbs./yard rail, which is typical of most mainlines in the US.
For sake of appearance, some HO modelers will use Code 83 for mainlines and smaller sizes for sidings and branchlines. I have heard of modelers using heavier rail where its strenght and wear characterisitcs might be helpful, or in hidden areas where the rail’s size won’t detract from appearance. I have also heard of some using lighter rail for complex turnout arrangements where clearances are tight. But appearance is usually the major factor.
Historically, Atlas made its HO sectional and flex track with code 100 rail, but in response to competition and market demand, they began making code 83 sectional track. (In N scale, Atlas made used code 83, but recently introduced code 55.)
Kato And Bachmann introduced track with a molded roadbed.
Personally, I like the Kato track for a temporary layout. If I were building a permanent layout, I would prefer to use code 55 flextrack and cork roadbed, with the track tacked into place and secured with crushed stone ballast, glued down with diluted white glue. (Please note I am in N scale; if I were in HO, I would use code 83.)
One word of caution: if you have non-US made, plastic, locomotives made before 1980 or so, the flanges on the wheels may be too deep for any track smaller than code 100. Replacing or modifying this equipment can be a bit of an undertaking. So if you intend to run some of this older