Photo: Ron Phillips/(c) 2012 Warner Bros. Entertainment Inc. and Legendary Pictures Funding, LLC
Critic’s Note:This review was written before the horrendous shooting in Colorado at the midnight screening of The Dark Knight Rises. Already I’ve read musings on the wisdom of midnight shows, which seems to me a ridiculous issue, and the wisdom of easy access to weapons, an issue that couldn’t be less ridiculous. Some wonder whether the suspect, reportedly dressed in black and wearing a gas mask, was modeling himself on the film’s villain Bane or even Batman. It is irresponsible to tie the act of a sociopath to The Dark Knight Rises. But it would be irresponsible not to say that one of the most disturbing aspects of the prevailing vigilantism and vengeance motifs in modern action cinema is that anyone can style himself a vigilante revenger.
With The Dark Knight Rises, Christopher Nolan brings to a close the most ambitious cycle of superhero films ever made. Here, as in Batman Begins and The Dark Knight, he explores both the consequences of doing nothing in a lawless world and the consequences of doing the right thing (fighting crime) for the wrong reason (personal revenge). He muses on the mask as a source of power over others — and a source of havoc on one’s own identity. Implicitly, he asks whether justice can be attained in a society that strives to balance the desire for order with the rights of the individual. Whatever else The Dark Knight Rises is or isn’t, it’s big — very big.
It’s also very long, closing in on three hours with not a lot of Batman to show for it but plenty of Christian Bale’s Bruce Wayne dragging his broken body around and looking sad while people make speeches at him. The Dark Knight rises — for maybe fifteen minutes, then gets knocked on his ass again. Of course, it’s not as if Nolan fans (Nolanoids) have anywhere else to go. They’ll resent having to give up their seats.
The movie opens with Wayne a bearded recluse, still in mourning for the woman he thought loved him (he’ll soon find out she loved another), his superhero persona dormant. The dark knight is a fugitive now. Eight years earlier, he became a martyr in the cause of justice, taking the blame for the murder of district attorney turned mad avenger Harvey “Two Face” Dent to protect Dent’s law-and-order reputation. That seems to have worked like, well, gangbusters. Under the “Dent Act,” thousands of gangland types rot behind bars while at least one segment of Gotham City — the one percent— lives high on the hog.
Beneath them, however, in the sewers, apocalyptic forces amass, led by the masked muscleman Bane (Tom Hardy), who wears a sort of black-mandibled breathing apparatus that makes him sound like a cross between Darth Vader, Andy Kaufman’s Foreign Man, and someone trying to sing “Nessun Dorma” while choking to death on a mouthful of muesli.
In the prologue, Bane impressively commandeers a plane, kills several CIA agents, and kidnaps a man for reasons I almost but didn’t quite catch. (It would help to be able to read his lips, but he has none.) Then Bane pretends to be a modern French Revolutionary type, smashing up the Stock Exchange and exhorting the people of Gotham City (once he has effectively imprisoned them) to seize the assets of the wealthy and redistribute them. Master thief Selina Kyle, a.k.a. the Catwoman (Anne Hathaway), makes a lot of class-warfare noises, too. (“There’s a storm coming, Mr. Wayne. You and your friends better batten down the hatches, ‘cause when it hits, you’re all gonna wonder how you ever thought you could live so large and leave so little for the rest of us.”) Given that Selina seems a decent sort — another in a line of witty, long-limbed female warriors that movies have recently given us — we wait for her to throw in her lot with the law-and-order types.
Are Nolan’s politics moving in an elitist direction? Batman was always, as comics writer Grant Morrison puts it in his trenchant analysis/memoir Supergods, “the ultimate capitalist hero … a millionaire who vented his childlike fury on the criminal classes of the lower orders” and “the defender of privilege and hierarchy.” But given the timing, The Dark Knight Rises effectively portrays Occupy Wall Street as an engine of supervillains to enlist a lot of envious dupes. (Nolan and his cameras poked around lower Manhattan at the height of the protests.) You come away with the notion that the ruling class might have its peccadilloes (fraud, systemic racism, etc.) but, as the Times’ David Brooks might say, it does put a premium on citizenship.
If you think this is too much emphasis on politics and philosophy when Batman is, after all, a comic-book superhero, you’re not crediting Nolan’s seriousness. God, he’s serious — it’s a wonder the Dark Knight rises at all under the weight of its themes. He’s capable of startling images, not the least of which is Batman in a black so deep and lush it looks like the next stage in the evolution of plastic. But his vision could use more pop. Where Tim Burton’s messed-up but thrillingly operatic Batman could suggest by its framing and Michael Keaton’s tentative movements that its hero was a nut — so damaged by the murder of his parents he could never move past the tragedy, as if Batman were the real man and millionaire Bruce Wayne the disguise — Nolan has a young policeman, John Blake (Joseph Gordon-Levitt), deliver an impassioned speech to the effect that he knows Wayne is Batman because he recognizes that Wayne is wearing a mask.
Bane gets to hold forth on the subject of his mask, too. As Alfred the butler, poor Michael Caine — nasal to start with, now barely keeping the lid on his mucous membranes — tells him to ditch the mask he can’t wear anymore. Caine gets the speech that used to be reserved for wives or girlfriends in Westerns: “I’ve sewn you up, I’ve set your bones, but I won’t watch you die.” Despite the looming annihilation of Gotham City, Yenta Alfred urges Master Wayne to start a family — the most likely prospect being Marion Cotillard as a millionaire businesswoman who has risen to the heights of Wayne Enterprises.
I won’t spoil anything, but most fans know by now that Bane has ties to the late Ra’s al Ghul, Liam Neeson’s mastermind from Batman Begins who trained and then alienated Bruce with plans to decimate humanity in the name of environmental balance. So the villain in The Dark Knight Rises has the same motives and the same sort of scheme — which sent me back in time to my disappointment at Return of the Jedi when all the Empire had up its sleeve was … a bigger Death Star. (We want … another shrubbery!) Actually, the climax of Batman Begins (“I won’t kill you … but I don’t have to save you”) was less labored and more surprising. The last we see of Bane is a letdown, and the chase that features a truck with a giant bomb, screeching police cruisers, and the Batplane suffers from Nolan’s usual spatial incoherence. There isn’t a lot of suspense if you can’t tell who’s going where and in which direction. The big finale made me think fondly of Adam West’s frustrated dash amid nuns and baby ducks in his big-screen Batman: “Some days you just can’t get rid of a bomb!” The coda is unforgivable — to be discussed.
It’s too bad Nolan doesn’t go with his strengths. The setup is gorgeous for the assault on a football stadium in which a boy soprano sings the “Star-Spangled Banner” and Bane says, tenderly, before all hell breaks loose, “What a lovely voice.” Bale’s Batman in his swan song is even more eloquent, his delivery wry but with a hint of nostalgia — he knows this is his last hurrah. (I finally figured out whose twisted mouth and cadences he’s channeling — it’s Cliff Robertson back from the grave.) Cillian Murphy returns in a marvelous cameo, his Scarecrow now a Jacobin judge-jury-and-executioner out of Simon Schama’s nightmares, perched high atop a desk framed by twin unraveled reams of meaningless paperwork.
It’s Anne Hathaway’s movie. Along with everyone else, I feared she’d be no match for Michelle Pfeiffer’s campy, vampy nutsoid Catwoman in Batman Returns, but Nolan wisely takes the role in the opposite direction — to the point where she’s not really a comic-book supervillain anymore. No matter. Hathaway has become a delicious comedian and makes Selina one, too, a con artist who uses her lithe body teasingly and knows you know she aims to hoodwink you — just not precisely when. Is Selina a lesbian? Nolan gives her a bedraggled little blonde thing to whom she’s mighty attentive. But Batman, like James Bond in Goldfinger when he turned Pussy Galore, knows how to get under a girl’s catsuit.
Having inspired thousands of abusive posts and e-mails from young Nolanoids barely past puberty after the first bad review of The Dark Knight — which, at the time, dealt a blow to all hopes for a score of 100 on the Tomatometer — I feel duty-bound to say that while I miss the supernatural fury of Heath Ledger’s Joker, I found The Dark Knight Rises reasonably compelling. But if the Nolanoids had any integrity, they’d admit that their hero’s wrap-up wraps up few of the threads in the first two films, and that the climactic cliff-hangers are nothing special (as well as flabbily edited). But given the fickleness of the Comic-Con generation, I’m sure they’re already thinking, When’s the reboot? This story appeared in the July 30, 2012 issue ofNew YorkMagazine.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]