Not perfect, (the fact that it continues restrictions on Iran's right to develop a nuclear energy program is pretty disturbing) but it's better than nothing. Ideally the U.S. would end all of its sanctions against Iran without requiring Iran to do anything, but unfortunately that's not politically feasible.
That's crazy. Iran could have had a nuclear energy program if they swore off nuclear weapons. Yet, they chose to tank their economy because they wanted nuclear weapons that badly. This was never about Iran having a peaceful nuclear energy program. If you believe that, you're extremely gullible.
Iran actually is a dangerous country. They're an aggressive, authoritarian theocracy. They have used WMDs. And, they extensively use terrorism to threaten their neighbors. They're a rogue state and they're the enemy of America.
The reason that this is a good deal is that it stops Iranian progress towards nuclear weapons.