The biggest limitation of the smart contract is the isolation of the Ethereum Virtual Machine (you don't have direct access to the Internet, hard drives, etc). Second limitation - your budget. You can do a lot with smart contracts, but you should pay for every calculation, so be careful with your spendings!