Why delegateCall is created in the first place?

Many of times we dont require delegateCall for intercommunication between contracts.
even in proxy apart from using the delegatecall in fallback function which is also in assembly code.
It is also advisable to dont use the delegateCall inside a upgradeable contract as it is harmful.

My question is why solidity developers thought delegateCall is usefull feature?

1 Like

delegatecall is only harmful or dangerous when it is used by someone who doesn’t understand how to use it properly.

This article is useful in understanding and using delegatecall safely: Understanding delegatecall And How to Use It Safely

Can we even say "Solidity fully supports delegateCall"? Since it looks totally sane on opcodes level, and quickly gets quite clumsy when we’re abstracting things to Solidity level. Is there real examples when developer doesn’t need to use assembly code block?

+mudgen, thanks for your text! Really liked how you finished with “Systems that Use Delegatecall”. Would also happy to see there some projects in the wild employed Diamonds EIP that you’re proposing.