
﻿ Chris Anderson : We 're having a debate . The debate is over the proposition " What the world needs now is nuclear energy " -- true or false ? And before we have the debate , I 'd like to actually take a show of hands -- on balance , right now , are you for or against this ? So those who are " yes , " raise your hand . " For . " Okay , hands down . Those who are " against , " raise your hands . Okay , I 'm reading that at about 75-25 in favor at the start . Which means we 're going to take a vote at the end and see how that shifts , if at all . So here 's the format : They 're going to have six minutes each , and then after one little , quick exchange between them , I want two people on each side of this debate in the audience to have 30 seconds to make one short , crisp , pungent , powerful point . So , in favor of the proposition , possibly shockingly , is one of , truly , the founders of the environmental movement , a long-standing TEDster , the founder of the Whole Earth Catalog , someone we all know and love , Stewart Brand . Stewart Brand : Whoa . ( Applause ) The saying is that with climate , those who know the most are the most worried . With nuclear , those who know the most are the least worried . A classic example is James Hansen , a NASA climatologist pushing for 350 parts per million carbon dioxide in the atmosphere . He came out with a wonderful book recently called " Storms of My Grandchildren . " And Hansen is hard over for nuclear power , as are most climatologists who are engaging this issue seriously . This is the design situation : a planet that is facing climate change and is now half urban . Look at the client base for this . Five out of six of us live in the developing world . We are moving to cities . We are moving up in the world . And we are educating our kids , having fewer kids , basically good news all around . But we move to cities , toward the bright lights , and one of the things that is there that we want , besides jobs , is electricity . And if it is n't easily gotten , we 'll go ahead and steal it . This is one of the most desired things by poor people all over the world , in the cities and in the countryside . Electricity for cities , at its best , is what 's called baseload electricity . That 's where it is on all the time . And so far there are only three major sources of that -- coal and gas , hydro-electric , which in most places is maxed-out -- and nuclear . I would love to have something in the fourth place here , but in terms of constant , clean , scalable energy , [ solar ] and wind and the other renewables are n't there yet because they 're inconstant . Nuclear is and has been for 40 years . Now , from an environmental standpoint , the main thing you want to look at is what happens to the waste from nuclear and from coal , the two major sources of electricity . If all of your electricity in your lifetime came from nuclear , the waste from that lifetime of electricity would go in a Coke can -- a pretty heavy Coke can , about two pounds . But one day of coal adds up to one hell of a lot of carbon dioxide in a normal one-gigawatt coal-fired plant . Then what happens to the waste ? The nuclear waste typically goes into a dry cask storage out back of the parking lot at the reactor site because most places do n't have underground storage yet . It 's just as well , because it can stay where it is . While the carbon dioxide , vast quantities of it , gigatons , goes into the atmosphere where we ca n't get it back , yet , and where it is causing the problems that we 're most concerned about . So when you add up the greenhouse gases in the lifetime of these various energy sources , nuclear is down there with wind and hydro , below solar and way below , obviously , all the fossil fuels . Wind is wonderful ; I love wind . I love being around these big wind generators . But one of the things we 're discovering is that wind , like solar , is an actually relatively dilute source of energy . And so it takes a very large footprint on the land , a very large footprint in terms of materials , five to 10 times what you 'd use for nuclear , and typically to get one gigawatt of electricity is on the order of 250 sq . mi . of wind farm . In places like Denmark and Germany , they 've maxed out on wind already . They 've run out of good sites . The power lines are getting overloaded . And you peak out . Likewise , with solar , especially here in California , we 're discovering that the 80 solar farm schemes that are going forward want to basically bulldoze 1,000 sq . mi . of southern California desert . Well , as an environmentalist , we would rather that did n't happen . It 's okay on frapped-out agricultural land . Solar 's wonderful on rooftops . But out in the landscape , one gigawatt is on the order of 50 sq . mi . of bulldozed desert . When you add all these things up -- Saul Griffith did the numbers and figured out what it would take to get 13 clean terawatts of energy from wind , solar and biofuels , and that area would be roughly the size the United States , an area he refers to as " Renewistan . " A guy who 's added all this up very well is David Mackay , a physicist in England , and in his wonderful book , " Sustainable Energy , " among other things , he says , " I 'm not trying to be pro-nuclear . I 'm just pro-arithmetic . " ( Laughter ) In terms of weapons , the best disarmament tool so far is nuclear energy . We have been taking down the Russian warheads , turning it into electricity . 10 percent of American electricity comes from decommissioned warheads . We have n't even started the American stockpile . I think of most interest to a TED audience would be the new generation of reactors that are very small , down around 10 to 125 megawatts . This is one from Toshiba . Here 's one that the Russians are already building that floats on a barge . And that would be very interesting in the developing world . Typically , these things are put in the ground . They 're referred to as nuclear batteries . They 're incredibly safe , weapons proliferation-proof and all the rest of it . Here is a commercial version from New Mexico called the Hyperion , and another one from Oregon called NuScale . Babcock & Wilcox that make nuclear reactors ... here 's an integral fast reactor . Thorium reactor that Nathan Myhrvold 's involved in . The governments of the world are going to have to decide that coal needs to be made expensive , and these will go ahead . And here 's the future . ( Applause ) CA : Okay . Okay . ( Applause ) So arguing against , a man who 's been at the nitty , gritty heart of the energy debate and the climate change debate for years . In 2000 , he discovered that soot was probably the second leading cause of global warming , after CO2 . His team have been making detailed calculations of the relative impacts of different energy sources . His first time at TED , possibly a disadvantage -- we shall see -- from Stanford , Professor Mark Jacobson . Good luck . Mark Jacobson : Thank you . ( Applause ) So my premise here is that nuclear energy puts out more carbon dioxide , puts out more air pollutants , enhances mortality more and takes longer to put up than real renewable energy systems , namely wind , solar , geothermal power , hydro-tidal wave power . And it also enhances nuclear weapons proliferation . So let 's just start by looking at the CO2 emissions from the life cycle . CO2e emissions are equivalent emissions of all the greenhouse gases and particles that cause warming , and converted to CO2 . And if you look , wind and concentrated solar have the lowest CO2 emissions , if you look at the graph . Nuclear -- there are two bars here . One is a low estimate , and one is a high estimate . The low estimate is the nuclear energy industry estimate of nuclear . The high is the average of 103 scientific , peer-reviewed studies . And this is just the CO2 from the life cycle . If we look at the delays , it takes between 10 and 19 years to put up a nuclear power plant from planning to operation . This includes about three and a half to six years for a site permit . and another two and a half to four years for a construction permit and issue , and then four to nine years for actual construction . And in China , right now , they 're putting up five gigawatts of nuclear . And the average , just for the construction time of these , is 7.1 years on top of any planning times . While you 're waiting around for your nuclear , you have to run the regular electric power grid , which is mostly coal in the United States and around the world . And the chart here shows the difference between the emissions from the regular grid , resulting if you use nuclear , or anything else , versus wind , CSP or photovoltaics . Wind takes about two to five years on average , same as concentrated solar and photovoltaics . So the difference is the opportunity cost of using nuclear versus wind , or something else . So if you add these two together , alone , you can see a separation that nuclear puts out at least nine to 17 times more CO2 equivalent emissions than wind energy . And this does n't even account for the footprint on the ground . If you look at the air pollution health effects , this is the number of deaths per year in 2020 just from vehicle exhaust . Let 's say we converted all the vehicles in the United States to battery electric vehicles , hydrogen fuel cell vehicles or flex fuel vehicles run on E85 . Well , right now in the United States , 50 to 100,000 people die per year from air pollution , and vehicles are about 25,000 of those . In 2020 , the number will go down to 15,000 due to improvements . And so , on the right , you see gasoline emissions , the death rates of 2020. If you go to corn or cellulosic ethanol , you 'd actually increase the death rate slightly . If you go to nuclear , you do get a big reduction , but it 's not as much as with wind and/or concentrated solar . Now if you consider the fact that nuclear weapons proliferation is associated with nuclear energy proliferation , because we know for example , India and Pakistan developed nuclear weapons secretly by enriching uranium in nuclear energy facilities . North Korea did that to some extent . Iran is doing that right now . And Venezuela would be doing it if they started with their nuclear energy facilities . If you do a large scale expansion of nuclear energy across the world , and as a result there was just one nuclear bomb created that was used to destroy a city such as Mumbai or some other big city , megacity , the additional death rates due to this averaged over 30 years and scaled to the population of the U. S. would be this . So , do we need this ? The next thing is : What about the footprint ? Stewart mentioned the footprint . Actually , the footprint on the ground for wind is by far the smallest of any energy source in the world . That , because the footprint , as you can see , is just the pole touching the ground . And you can power the entire U. S. vehicle fleet with 73,000 to 145,000 five-megawatt wind turbines . That would take between one and three sq . km . of footprint on the ground , entirely . The spacing is something else . That 's the footprint that 's always being confused . People confuse footprint with spacing . As you can see from these pictures , the spacing between can be used for multiple purposes including agricultural land , range land or open space . Over the ocean , it 's not even land . Now if we look at nuclear -- ( Laughter ) With nuclear , what do we have ? We have facilities around there . You also have a buffer zone that 's 17 sq . km . And you have the uranium mining that you have to deal with . Now if we go to the area , lots is worse than nuclear or wind . For example , cellulosic ethanol , to power the entire U. S. vehicle fleet , this is how much land you would need . That 's cellulosic , second generation biofuels from prairie grass . Here 's corn ethanol . It 's smaller . This is based on ranges from data , but if you look at nuclear , it would be the size of Rhode Island to power the U. S. vehicle fleet . For wind , there 's a larger area , but much smaller footprint . And of course , with wind , you could put it all over the east coast , offshore theoretically , or you can split it up . And now , if you go back to looking at geothermal , it 's even smaller than both , and solar is slightly larger than the nuclear spacing , but it 's still pretty small . And this is to power the entire U. S. vehicle fleet . To power the entire world with 50 percent wind , you would need about one percent of world land . Matching the reliability , base load is actually irrelevant . We want to match the hour-by-hour power supply . You can do that by combining renewables . This is from real data in California , looking at wind data and solar data . And it considers just using existing hydro to match the hour-by-hour power demand . Here are the world wind resources . There 's 5 to 10 times more wind available worldwide than we need for all the world . So then the finally ranking . And one last slide I just want to show : this is the choice . You can either have wind or nuclear . If you use wind , you guarantee ice will last . Nuclear , the time lag alone will allow the Arctic to melt and other places to melt more . And we can guarantee a clean , blue sky or an uncertain future with nuclear power . ( Applause ) CA : All right . So while they 're having their comebacks on each other -- and yours is slightly short because you slightly overran -- I need two people from either side . So if you 're for this , if you 're for nuclear power , put up two hands . If you 're against , put up one . And I want two of each for the mics . Now then , you guys have -- you have a minute comeback on him to pick up a point he said , challenge it , whatever . SB : I think a point of difference we 're having , Mark , has to do with weapons and energy . These diagrams that show that nuclear is somehow putting out a lot of greenhouse gases -- a lot of those studies will include , " Well of course war will be inevitable and therefore we 'll have cities burning and stuff like that , " which is kind of finessing it a little bit , I think . The reality is that there 's , what , 21 nations that have nuclear power ? Of those , seven have nuclear weapons . In every case , they got the weapons before they got the nuclear power . There are two nations , North Korea and Israel , that have nuclear weapons and do n't have nuclear power at all . The places that we would most like to have really clean energy occur are China , India , Europe , North America , all of which have sorted out their situation in relation to nuclear weapons . So that leaves a couple of places like Iran , maybe Venezuela , that you would like to have very close surveillance of anything that goes on with fissile stuff . Pushing ahead with nuclear power will mean we really know where all of the fissile material is , and we can move toward zero weapons left , once we know all that . CA : Mark , 30 seconds , either on that or on anything Stewart said . MJ : Well we know India and Pakistan had nuclear energy first , and then they developed nuclear weapons secretly in the factories . So the other thing is , we do n't need nuclear energy . There 's plenty of solar and wind . You can make it reliable , as I showed with that diagram . That 's from real data . And this is an ongoing research . This is not rocket science . Solving the world 's problems can be done , if you 're really put your mind to it and use clean , renewable energy . There 's absolutely no need for nuclear power . ( Applause ) CA : We need someone for . Rod Beckstrom : Thank you Chris . I 'm Rod Beckstrom , CEO of ICANN . I 've been involved in global warming policy since 1994 , when I joined the board of Environmental Defense Fund that was one of the crafters of the Kyoto Protocol . And I want to support Stewart Brand 's position . I 've come around in the last 10 years . I used to be against nuclear power . I 'm now supporting Stewart 's position , softly , from a risk-management standpoint , agreeing that the risks of overheating the planet outweigh the risk of nuclear incident , which certainly is possible and is a very real problem . However , I think there may be a win-win solution here where both parties can win this debate , and that is , we face a situation where it 's carbon caps on this planet or die . And in the United States Senate , we need bipartisan support -- only one or two votes are needed -- to move global warming through the Senate , and this room can help . So if we get that through , then Mark will solve these problems . Thanks Chris . CA : Thank you Rod Beckstrom . Against . David Fanton : Hi , I 'm David Fanton . I just want to say a couple quick things . The first is : be aware of the propaganda . The propaganda from the industry has been very , very strong . And we have not had the other side of the argument fully aired so that people can draw their own conclusions . Be very aware of the propaganda . Secondly , think about this . If we build all these nuclear power plants , all that waste is going to be on hundreds , if not thousands , of trucks and trains , moving through this country every day . Tell me they 're not going to have accidents . Tell me that those accidents are n't going to put material into the environment that is poisonous for hundreds of thousands of years And then tell me that each and every one of those trucks and trains is n't a potential terrorist target . CA : Thank you . For . Anyone else for ? Go . Alex : Hi , I 'm Alex . I just wanted to say , I 'm , first of all , renewable energy 's biggest fan . I 've got solar PV on my roof . I 've got a hydro conversion at a watermill that I own . And I 'm , you know , very much " pro " that kind of stuff . However , there 's a basic arithmetic problem here . The capability of the sun shining , the wind blowing and the rain falling , simply is n't enough to add up . So if we want to keep the lights on , we actually need a solution which is going to keep generating all of the time . I campaigned against nuclear weapons in the 80s , and I continue to do so now . But we 've got an opportunity to recycle them into something more useful that enables us to get energy all of the time . And , ultimately , the arithmetic problem is n't going to go away . We 're not going to get enough energy from renewables alone . We need a solution that generates all of the time . If we 're going to keep the lights on , nuclear is that solution . CA : Thank you . Anyone else against ? Man : The last person who was in favor made the premise that we do n't have enough alternative renewable resources . And our " against " proponent up here made it clear that we actually do . And so the fallacy that we need this resource and we can actually make it in a time frame that is meaningful is not possible . I will also add one other thing . Ray Kurzweil and all the other talks -- we know that the stick is going up exponentially . So you ca n't look at state-of-the-art technologies in renewables and say , " That 's all we have . " Because five years from now , it will blow you away what we 'll actually have as alternatives to this horrible , disastrous nuclear power . CA : Point well made . Thank you . ( Applause ) So each of you has really just a couple sentences -- 30 seconds each to sum up . Your final pitch , Stewart . SB : I loved your " It all balances out " chart that you had there . It was a sunny day and a windy night . And just now in England they had a cold spell . All of the wind in the entire country shut down for a week . None of those things were stirring . And as usual , they had to buy nuclear power from France . Two gigawatts comes through the Chunnel . This keeps happening . I used to worry about the 10,000 year factor . And the fact is , we 're going to use the nuclear waste we have for fuel in the fourth generation of reactors that are coming along . And especially the small reactors need to go forward . I heard from Nathan Myhrvold -- and I think here 's the action point -- it 'll take an act of Congress to make the Nuclear Regulatory Commission start moving quickly on these small reactors , which we need very much , here and in the world . ( Applause ) MJ : So we 've analyzed the hour-by-hour power demand and supply , looking at solar , wind , using data for California . And you can match that demand , hour-by-hour , for the whole year almost . Now , with regard to the resources , we 've developed the first wind map of the world , from data alone , at 80 meters . We know what the resources are . You can cover 15 percent . 15 percent of the entire U. S. has wind at fast-enough speeds to be cost-competitive . And there 's much more solar than there is wind . There 's plenty of resource . You can make it reliable . CA : Okay . So , thank you , Mark . ( Applause ) So if you were in Palm Springs ... ( Laughter ) ( Applause ) Shameless . Shameless . Shameless . ( Applause ) So , people of the TED community , I put it to you that what the world needs now is nuclear energy . All those in favor , raise your hands . ( Shouts ) And all those against . Ooooh . Now that is -- my take on that ... Just put up ... Hands up , people who changed their minds during the debate , who voted differently . Those of you who changed your mind in favor of " for " put your hands up . Okay . So here 's the read on it . Both people won supporters , but on my count , the mood of the TED community shifted from about 75-25 to about 65-35 in favor , in favor . You both won . I congratulate both of you . Thank you for that . ( Applause ) 