Solidity programming is actually not a simple task. I mean it is certainly not complicated to use the language itself, however to develop programs on an industrial scale, including both performance and hacking resistance is certainly an issue. An approach might be in certain situations not to use the whole language, only a certain set of it or certain abstractions as building blocks.
On idea might be to use something similar to the model specific languages of hyperledger to develop a so called consortium blockchain network. In such examples not everything is programmed from scratch, instead high level concepts are defined like participants, assets and transactions. They function as building blocks to deliver a lot of different possible applications. If we suppose that the building blocks have a high quality, than the whole application will have a good general quality and the whole development process will be less risky.
Certainly, it is an open question if the same or similar conceptional model that is working in a consortium blockchain context can be useful in a public blockchain use-case.