I am new to Ehterum and Blockcain. I am using ehtereum smart contracts api web3.js for my front-end interaction. I am using solidity for writing contract using truffle. I want to automate the transaction on baisis of some condition such as time interval. I have posted this question on other forums such as gitter community and got answer that I can use Oraclize or Reality keys to achieve this? So I was wondering why It is called smart-contract if it is not smart enough to even execute an automated transaction? Can someone please explain that is it true that we cannot write such automated contract in ethereum or maybe I have wrong understanding of things?
Saying smart contracts aren't smart because they can't schedule a function to run is like saying your smartphone isn't smart because it can't phone a person you don't know the number for.
Yes, it's true you can't schedule something out of the box, when we were "promised" contracts that are smart enough to check conditions and enforce certain actions without depending on humans. When you get into it you realize it is not as straightforward as you thought and there's a lot of coding involved and things we are used to in other languages do not exist in Solidity yet, you feel like you went back in time at least 20 years. You just have to understand the shortcomings and rethink the logic of your code.
Enough rant, yeah you can't schedule a function to run at a later time. You could use Oraclize or Ethereum Alarm Clock to do it. Or, as I said, rethink your logic so there's no need to schedule the function call.