Alright, so for the most part attributes are just like variables but better. The features they have are similar to almost the exact same, imo they’re easier to edit/create while scripting since you don’t have to reference an actual variable. By the way, I’m assuming by what you mean by normal variables are object variables such as a numbervalue, stringvalue, etc.
They’re also more clean and organized. A good community tutorial would be this one.
If you are speaking about variables, as in a local variable that you make in a script, the difference is like night and day between them.