There are much better solutions for smart contracts than ETH. I know and I've created many smart contracts in my career as a developer. What I hate the most is working with Ether's solidity. NEO has the most pleasant working experience and in my mind is the best smart contract platform to date.
I'm curious, why do you think Solidity is a shitty language? I've read several different discussions about advantages and disadvantages of using custom languages, but since I'm not a programmer I can't evaluate this myself. That said, I do find Solidity source code extremely easy to read and follow.
I'm a big fan of NEO as well. Nevertheless it's worth pointing out that DBFT consensus algorithm or any DPOS algorithm for that matter is by its very nature more centralized than standard PoW or PoS consensus algorithms. Moreover, NEO seems to be much more regulatory complaint and much less privacy focused than Ethereum. But I agree with your main point: I don't think you should do a hardfork every time someone loses some money. Even more so, when people lose money due to a bug in some third party dapp as oppose to bug in a protocol itself. Even more so, when said dapp is celebrated as "smart contract" or "dao" - something that can replace entire legal system. If code is a law, then it has to be a law regardless of consequences.
Solidity is easily understandable but it's in my mind just not enough. Also it's a custom language. So lets say you finish something related to computers and you know a few languages like C, C++, Java etc. Now I must say Solidity is simple enough to learn in short time if you have programming knowledge but wouldn't you prefer to work with something that you are familiar with for years ? When I write a production code in Java/C I feel confident in my code because I have years of working experience with Java/C. Now Solidity is simple but I just don't have the same confidence when writing a smart contract with it. That is just my personal preference, I don't think everyone will share my opinion. Also if you have a problem there are tons of material for a widely used language, and in case of Solidity you are reliant on Ethereum's Developer documentation and a few guys that spent their time posting content online in order to help out beginners.
If code is a law, then it has to be a law regardless of consequences.
Exactly my point.