I have a question that has troubled me for a long time. Since Solana contract instructions can be called using TypeScript and there are SDKs available for them (such as spl-token, Metaplex core and bubblegum...), why do we still need to write contracts in Rust? Wouldn't it be more convenient to just use TypeScript to call instructions and write the logic?
Since I can use TypeScript to implement the logic of the contract, I think It might not need to develop a Solana program ?. Ultimately, the Solana program we write is just an instruction provided for the frontend to call.
Looking forward to your response.