1.Why does smart contract development require a different mindset than regular programming?
SC dev is fairly new. So there shd be constant changes, since new bugs and security risks will emerge.
Cost of failure and change is difficult, which make it more like hardware programming and financial services programming than web dev.
2.Argue with your own words why clarity in your code is more important than performance.
If the code is complex, it increases the likelihood of error. Therefore it’s important that the logic of code is simple, and removes unnecessary code fragments.
3.As the article says, all data and functions are public in a smart contract. What false beliefs might someone have around private data and private functions in a smart contract that could have dangerous consequences?
People may think that no one can view the private data and private functions, which may imply they think that private functions are less vulnerable to get hacked. However, private data and functions are also viewable by everyone.
4.Why do you think all the fundamental principles mentioned in the article comes down to tradeoffs?
You have to sacrifice one for another.