Smarthings Smart Apps programming paradigm vs. IFTTT


I want to summarize the difference between IFTTT and smartThings programming paradigm. IFTTT is trigger-action programming but it is very restrictive. It does not let me program apps with the same features as a smartthings apps. Can someone help me pinpoint what is the term used for this difference?