The major difference between "black box switch" and "white box switch" is first one can't be programmed but the later one can be programmed. With white box switches a service can be programmed using switch controller like ONOS while black box switch provides very limited features as well as every time when you need to update anything you have to login to switches and then change the rules.
There are so many vendors in this domain who provides both black box and white box switches. Now users/operators want very dynamic kind of environment where they can introduce or modify the service quickly along with keeping lower CAPEX/OPEX.
So many operators have already started migration from old to new technology.
Having white box switches do not bound so have products from same vendor. This reduces vendor dependencies also.