{"id":47151,"date":"2025-03-21T16:17:32","date_gmt":"2025-03-21T20:17:32","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=47151"},"modified":"2025-07-14T11:11:50","modified_gmt":"2025-07-14T15:11:50","slug":"vibe-coding","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2025\/03\/21\/vibe-coding\/","title":{"rendered":"Vibe Coding"},"content":{"rendered":"<p><a href=\"https:\/\/x.com\/karpathy\/status\/1886192184808149383\">Andrej Karpathy<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/karpathy\/status\/1886192184808149383\"><p>There&rsquo;s a new kind of coding I call &ldquo;vibe coding&rdquo;, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It&rsquo;s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like &ldquo;decrease the padding on the sidebar by half&rdquo; because I&rsquo;m too lazy to find it. I &ldquo;Accept All&rdquo; always, I don&rsquo;t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I&rsquo;d have to really read through it for a while. Sometimes the LLMs can&rsquo;t fix a bug so I just work around it or ask for random changes until it goes away. It&rsquo;s not too bad for throwaway weekend projects, but still quite amusing. I&rsquo;m building a project or webapp, but it&rsquo;s not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.<\/p><\/blockquote>\n\n<p>Via <a href=\"https:\/\/simonwillison.net\/2025\/Mar\/19\/vibe-coding\/\">Simon Willison<\/a>:<\/p>\n<blockquote cite=\"https:\/\/simonwillison.net\/2025\/Mar\/19\/vibe-coding\/\">\n<p>I&rsquo;m concerned that the definition is already escaping its original intent. I&rsquo;m seeing people apply the term &ldquo;vibe coding&rdquo; to all forms of code written with the assistance of AI. I think that both dilutes the term and gives a false impression of what&rsquo;s possible with responsible <a href=\"https:\/\/simonwillison.net\/tags\/ai-assisted-programming\/\">AI-assisted programming<\/a>.<\/p>\n<p>Vibe coding is <em>not<\/em> the same thing as writing code with the help of LLMs!<\/p>\n<p>[&#8230;]<\/p>\n<p>Andrej is an extremely talented and experienced programmer&mdash;he has no need for AI assistance at all. He&rsquo;s using LLMs like this because it&rsquo;s fun to try out wild new ideas, and the speed at which an LLM can produce code is an order of magnitude faster than even the most skilled human programmers. For low stakes projects and prototypes why not just <em>let it rip<\/em>?<\/p>\n<p>When I talk about vibe coding I mean <strong>building software with an LLM without reviewing the code it writes<\/strong>.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/x.com\/iamdevloper\/status\/1902628884278894941\">I Am Devloper<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/iamdevloper\/status\/1902628884278894941\">\n<p>vibe coding, where 2 engineers can now create the tech debt of at least 50 engineers<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/cdevroe.com\/2025\/03\/20\/the-vibe-coding-litmus-test\/\">Colin Devroe<\/a> (<a href=\"https:\/\/mastodon.social\/@cdevroe\/114195662040757497\">Mastodon<\/a>):<\/p>\n<blockquote cite=\"https:\/\/cdevroe.com\/2025\/03\/20\/the-vibe-coding-litmus-test\/\"><p>But I just want to quickly recommend; do not hire anyone (a person or an agency) that thinks vibe coding is a good idea for production level products.<\/p><p>Experimenting? Playing? Thinking through ideas rapidly? Absolutely.<\/p><p>Think I&rsquo;m crazy? Look at this email I just received from &ldquo;Ian Foster&rdquo; of Grayphite &#x2013; a supposed &ldquo;Cutting-Edge Software &amp; AI solutions&rdquo; business.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2025\/03\/12\/whither-swift-assist\/\">Whither Swift Assist?<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2025\/03\/12\/chatgpt-now-integrates-directly-with-xcode\/\">ChatGPT Now Integrates Directly With Xcode<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/10\/31\/github-copilot-for-xcode\/\">GitHub Copilot for Xcode<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/05\/12\/llm-coding-tools-in-xcode\/\">LLM Coding Tools in Xcode<\/a><\/li>\n<\/ul>\n\n<p id=\"vibe-coding-update-2025-03-25\">Update (2025-03-25): <a href=\"https:\/\/x.com\/karpathy\/status\/1903671737780498883\">Andrej Karpathy<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/karpathy\/status\/1903671737780498883\"><p>I just vibe coded a whole iOS app in Swift (without having programmed in Swift before, though I learned some in the process) and now ~1 hour later it&rsquo;s actually running on my physical phone. It was so ez&#8230; I had my hand held through the entire process. Very cool.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/sourcegraph.com\/blog\/revenge-of-the-junior-developer\">Steve Yegge<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=43446695\">Hacker News<\/a>, <a href=\"https:\/\/sourceforge.net\/articles\/the-evolution-and-future-of-ai-coding-sourcegraph-sourceforge-podcast-episode-24\/\">interview<\/a>, <a href=\"https:\/\/developers.slashdot.org\/story\/24\/11\/07\/1926221\/interview-with-programmer-steve-yegge-on-the-future-of-ai-coding\">Slashdot<\/a>):<\/p>\n<blockquote cite=\"https:\/\/sourcegraph.com\/blog\/revenge-of-the-junior-developer\"><p>In this post, I assume that <strong>vibe coding will grow up<\/strong> and people will use it for real engineering, with the &ldquo;turn your brain off&rdquo; version of it sticking around just for prototyping and fun projects. For me, vibe coding just means letting the AI do the work. How closely you choose to <em>pay attention<\/em> to the AI&rsquo;s work depends solely on the problem at hand. For production, you pay attention; for prototypes, you chill. Either way, it&rsquo;s vibe coding if you didn&rsquo;t write it by hand.<\/p><p>[&#8230;]<\/p><p>Vibe coding is currently going batshit viral, growing like crazy on a dramatic exponential curve, hitting major media outlets like the NYT, flooding social media, celebrated by some, decried by others. A bunch of companies were busy banishing it just as <a href=\"https:\/\/www.searchenginejournal.com\/why-google-may-adopt-vibe-coding-for-search-algorithms\/541641\/\">Google was unofficially adopting it<\/a>. Everyone&rsquo;s still arguing about what &ldquo;vibe coding&rdquo; even means. But a ton of people, more every day, think it&rsquo;s the future right now.<\/p><p>[&#8230;]<\/p><p>The chart in Figure 1 depicts six overlapping waves of programming: traditional (2022), completions-based (2023), chat-based (2024), coding agents (2025 H1), agent clusters (2025 H2), and agent fleets (2026). <\/p><p>In the figure, traditional and completions-based coding &#x2013; the two manual modalities &#x2013; are on the decline, and the others are rising exponentially. Beginning with chat, each new wave rises much faster than previous waves. Finally the figure depicts vibe coding as also increasing exponentially, but on a dotted line alongside the others, because as we&rsquo;ll see in a bit, vibe coding is not a modality.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/cendyne.dev\/posts\/2025-03-19-vibe-coding-vs-reality.html\">Cendyne<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=43448432\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/cendyne.dev\/posts\/2025-03-19-vibe-coding-vs-reality.html\">\n<p>The execution of agents today is over-hyped and does not hold up to the needs of any functioning businesses which need experts to develop and maintain their technical capabilities instead of single points of failure on the internet.<\/p>\n<p>These models are trained on average sloppy code, wrong answers on Stack Overflow, and the junk that ends up on Quora. Despite the power and capability Claude 3.7 Sonnet has in small contexts, when faced with even a small codebase it makes constant silly mistakes that no normal developer would repeat and continue to repeat every hour of its operation.<\/p>\n<p>[&#8230;]<\/p>\n<p>Without expert intervention, the best these tools can do today is produce a somewhat functional mockup, where every future change beyond that risks destroying existing functionality.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/martinfowler.com\/articles\/exploring-gen-ai.html#memo-13\">Birgitta B&ouml;ckeler<\/a>:<\/p>\n<blockquote cite=\"https:\/\/martinfowler.com\/articles\/exploring-gen-ai.html#memo-13\">\n<p>In the past few months, I have regularly used the agentic modes in <a href=\"https:\/\/www.cursor.com\/\">Cursor<\/a>, <a href=\"https:\/\/codeium.com\/windsurf\">Windsurf<\/a> and <a href=\"https:\/\/cline.bot\/\">Cline<\/a>, almost exclusively for changing existing codebases (as opposed to creating Tic Tac Toe from scratch). I am overall very impressed by the recent progress in IDE integration and how those integrations massively boost the way in which the tools can assist me.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2025\/03\/24\/tim-dont-kill-my-vibe\/\">Tim, Don&rsquo;t Kill My Vibe<\/a><\/li>\n<\/ul>\n\n<p id=\"vibe-coding-update-2025-05-07\">Update (<a href=\"#vibe-coding-update-2025-05-07\">2025-05-07<\/a>): <a href=\"https:\/\/dylanbeattie.net\/2025\/04\/11\/the-problem-with-vibe-coding.html\">Dylan Beattie<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=43687767\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/dylanbeattie.net\/2025\/04\/11\/the-problem-with-vibe-coding.html\">\n<p>Probably the single most important lesson I&rsquo;ve learned in my career, the thing that I would argue is the hallmark of &ldquo;experience&rdquo;, is understanding just how much work it takes to turn a working <em>program<\/em> into a viable <em>product<\/em>. It&rsquo;s why developer estimates are so notoriously optimistic - and why experienced developers are so notoriously cynical. Let&rsquo;s say you crank out a bit of code that&rsquo;ll take responses from a web form and add them in an Excel spreadsheet. That&rsquo;s not that hard&#8230; yay! we just built a Typeform competitor in one afternoon! Except, no, you didn&rsquo;t. You made one thing work one time on one computer.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=43688721\">commandersaki<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=43688721\"><p>I&rsquo;ve changed my outlook on vibe coding after seeing the results of <a href=\"https:\/\/www.youtube.com\/watch?v=4pJUXocn7aE\">this wholesome vibe coding<\/a>.\nThis guy didn&rsquo;t just make a small program, he made a product that is attuned to some very stringent requirements.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Andrej Karpathy: There&rsquo;s a new kind of coding I call &ldquo;vibe coding&rdquo;, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It&rsquo;s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2025-03-21T20:17:35Z","apple_news_api_id":"4af10e72-bddb-472b-90c2-27733fc380a3","apple_news_api_modified_at":"2025-05-07T15:16:52Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABQ==","apple_news_api_share_url":"https:\/\/apple.news\/ASvEOcr3bRyuQwidzP8OAow","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[1351,2777,75,71],"class_list":["post-47151","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-artificial-intelligence","tag-cursor","tag-developertool","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/47151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=47151"}],"version-history":[{"count":7,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/47151\/revisions"}],"predecessor-version":[{"id":47638,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/47151\/revisions\/47638"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=47151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=47151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=47151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}