91³Ô¹ÏÍø

Watch CBS News

Norman Lear credits "love and laughter" for his longevity on 100th birthday

On his 100th birthday, Emmy award-winning television producer Norman Lear said the secret to his long life has been laughter.

On Wednesday, CBS News chief medical correspondent Dr. Jonathan LaPook, his son-in-law, posted a video of Lear to , in which the TV legend shared his secrets to remaining healthy and alert at 100. 

"To look like me and sound like me is to have all the gifts of the culture, the gods, the fates, and the people I've loved, and loved me in return," Lear said on his milestone birthday. "I couldn't emphasize that more. I have been cared for, and I have cared, and I think it's mattered a lot."

Lear, who has written and produced over 100 shows — including the classic 1970s sitcoms "All in the Family", "The Jeffersons" and "Good Times" — also spoke about the importance laughter has played in his longevity. 

"I think love and laughter are it! Laughter is the gift of the gods, and there are people in this world that I have worked with and viewed and so forth who have made me laugh in places in my body I would not otherwise have known existed," the 100-year-old said. 

On Wednesday Lear also published an in the New York Times titled: "On My 100th Birthday, Reflections on Archie Bunker and Donald Trump," where he joked that at the century mark, he may be faring a little better than the United States these days. 

"To be honest, I'm a bit worried that I may be in better shape than our democracy is," Lear wrote. 

Lear said he was "deeply troubled" by the Jan. 6 Capitol riot and former President Donald Trump's attempts to overturn the election results. 

Lear, who joined the Army following the attack on Pearl Harbor, said he does not take the threat of authoritarianism lightly. 

"I am a flag-waving believer in truth, justice and the American way, and I don't understand how so many people who call themselves patriots can support efforts to undermine our democracy and our Constitution. It is alarming," he wrote. 

But the TV pioneer wrote that despite the current state of the union, he remains optimistic. 

"I often feel disheartened by the direction that our politics, courts and culture are taking," Lear wrote. "But I do not lose faith in our country or its future. I remind myself how far we have come." 

"This is our century, dear reader, yours and mine," Lear closed his op-ed. "Let us encourage one another with visions of a shared future. And let us bring all the grit and openheartedness and creative spirit we can muster to gather together and build that future."

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });