Why are classful subnet masks of a fixed length wasteful?
Because when you want to subnet your network,
you are constrained by doing it in powers of 2.
That is either 2,4,8,16,32,64,128 etc.
This is one of the reasons for changing to a classless addressing scheme, this means your subnet mask can be a variable length.
Which means your can subnet your network precisely to the required number of required subnetworks.