Here's the short review before I get to the lj-cut spoiler section.
Watch Terminator 4 if you want solid special effects, explosions, and a decent action film.
Avoid Terminator 4 if you don't like movies with incredibly disjointed and pointless scripts with one of the lamest endings in movie history on this planet and all planets with intelligent life.
You need to know one thing about me and movies. I'm very forgiving when it comes to movies. All I ask is that they make sense in their own setting and have what I consider to be at least decent acting. Decent acting is not really quantifiable, but making sense is easy. Give me a line or two of dialog to explain the impossible scenario and I'm cool with it.
Case in point, in Thank You For Smoking (excellent film BTW), there is a scene with Rob Lowe and Aaron Eckhart where they discus smoking in a pure oxygen environment. Aaron says that the ship would explode and Rob Lowe suggests solving it with one line of dialog, "Thank God We Invented the... You Know... Whatever Device"
Magic, high technology, super heroes, no problem. That's the setting and in those worlds you can have magic, high technology, and/or super heroes.
See? It's simple.
On to Terminator 4.
Sam Worthington did a fantastic job of playing Marcus. I enjoyed Anton Yelchin's portrayal of Kyle Reese except for the fact that Reese isn't Russian and didn't have a Russian accent. I'll deal though because I enjoyed the character.
Christian Bale went raspy Batman once again. I'm starting to wonder if he had a tracheotomy in the recent past and that's just his normal voice. Not only that but he outacts everyone else in the script, with the exception of Marcus, to the point where you start to wonder why he's so wound up when everyone else is like, "Eh, whatever."
They actually gave Michael Ironside a part in the film. Talk about bad casting. In the grand scheme, he's one step behind Jeremy Irons on the Kiss of Death scale.
Every other character in the film was utterly useless and could have been removed with little to no impact to the film. Michael Ironside was in the film.
Script flaw #1: For some reason never explained the resistance's super-secret submarine which is out in the ocean somewhere starts to broadcast the "shut down Skynet's machines" signal. Um. Why? They already said the signal was only good for like 200 meters and... THEY'RE IN THE OCEAN! There aren't any machines there. Skynet tracks the signal (it doesn't really work anyway) and blows up the submarine.
Script flaw #2: Marcus's heart is exposed to the air. We know this because when Marcus is held prisoner by the resistance, John Connor says that he can see his heart. So, like, how is Marcus not immediately dead after walking through the desert, swimming in a dirty ass lake, and, I almost forget, getting punched in the heart by a T-800?
Script flaw #3: John Connor gets a heart transplant in an open air tent in the desert. As lame as this blatant deus ex machine happens to be, if you're going to do something like this, at least have some secret resistance hospital surgery room full of medical equipment. I don't care what year it is, you're not doing a heart transplant in a tent without walls in the desert. Ever.
Script flaw #4: About 15 minutes in, Connor survives a nuclear explosion even though he's like barely 1 mile away. In a helicoptor. That crashes.
Script flaw #5: Skynet's base has a room with a chair, video screens, keyboards, and other things that it wouldn't need. Skynet is software. It controls its robots using radio signals. Who does it expect is going to need to sit down and start typing away on a keyboard?
Script flaw #6: Skynet identifies Kyle Reese and captures him. Skynet knows that killing Kyle will prevent John Connor's birth which would give it ultimate victory. Instead, it lets Kyle live. The hell? At a minimum it will demoralize the shit out of Connor, and at best if the Back to the Future theory of time travel is correct, it will instantly win the war for Skynet.