ADVERTISEMENT

Cousins adrift: A review of 'A Real Pain'

Published Jan 26, 2025 03:09 pm

At A Glance

  • More often than not, this would be shot by the father, or designated "budding filmmaker," assigned to capture particular moments of the family - whether on holiday or during special occasions.
image0.jpeg
A scene from 'A Real Pain'

Before the advent of social media and the phenomenon of everyone being their content creator, there was such a thing as "home movies." More often than not, this would be shot by the father, or designated ‘budding filmmaker,’ assigned to capture particular moments of the family - whether on holiday or during special occasions. I was reminded of home movies as I watched A Real Pain, as essentially it’s a chronicling of a trip to Poland by two cousins from the US East Coast. It’s a trip made to honor their late grandmother, who was a World War II concentration camp survivor before emigrating to America. 

The film opens in cinemas this Jan. 29 and arrives with something of a buzz, as co-star Kieran Culkin was picked by the Golden Globes Best Supporting Actor statuette for his performance here. And by all accounts, he is now an odds-on favorite to romp away with more trophies in the coming film awards season. Let’s study why this is so later in the review. 

image1.jpeg

David Kaplan (Jesse Eisenberg, who also directs and wrote this film) and cousin Benji (Kieran Culkin) meet at a New York airport to join a tour group in Poland and to visit their grandmother’s hometown. From the start, we see how these cousins are severely mismatched; they were very close as young boys and grew up together, but their personalities are on opposite ends of the spectrum.

They’re both neurotic but in markedly different ways. David is super-efficient and anal, painfully shy around people, and a constant worrier. Meanwhile, Benji seems more outgoing and gregarious on the surface, easy with people, and acts like an inquisitive open book. But it’s more a front than anything else, as he was much closer to the grandmother and has issues with depression and bouts of self-harm. It’s two sides of the same neurotic calling card, and they’re utterly hopeless together. 

When they get to Poland, they join a group led by James (Will Sharp). Those into movie trivia will love to note that in the group is a single mature woman, Marcia (Jennifer Grey). Jennifer Grey was the other lead star in Dirty Dancing, playing opposite Patrick Swayze. 

image2.jpeg

The film is wonderfully written, funny, compassionate, sad, moving, and wise. While it could be said that both David and Benji are characters we’d be very impatient with in real life, it’s fascinating to watch the two, as they’re both so real, and we are bound to have friends who share some of the attributes of the two. 

As for Kieran and the Best Supporting Actor race, it’s a Hollywood love match, a sidebar story that’s quite irresistible. He’s not Macaulay, so Kieran was labeled the other brother and often overlooked. He’s had a sporadic Hollywood career but picked up impressive notices for his recent work in television, the Succession series. Like with Demi Moore, this will be seen as something of a comeback, a resilience narrative, and Hollywood loves to welcome back these individuals. Plus, it is a wonderful portrayal! Watch this film and appreciate why this very simple film works so well. 

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.