<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Danil</title>
    <description>The latest articles on DEV Community by Danil (@dipcoy).</description>
    <link>https://dev.to/dipcoy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3999008%2F839e7dca-c153-4b07-8cc3-491edf96ab9c.jpg</url>
      <title>DEV Community: Danil</title>
      <link>https://dev.to/dipcoy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dipcoy"/>
    <language>en</language>
    <item>
      <title>Everything Is the Fastest, the Best, and the Future. I'm Tired.</title>
      <dc:creator>Danil</dc:creator>
      <pubDate>Fri, 26 Jun 2026 21:10:52 +0000</pubDate>
      <link>https://dev.to/dipcoy/everything-is-the-fastest-the-best-and-the-future-im-tired-1ofb</link>
      <guid>https://dev.to/dipcoy/everything-is-the-fastest-the-best-and-the-future-im-tired-1ofb</guid>
      <description>&lt;p&gt;I opened a fresh terminal last week to start a small internal dashboard for tracking our team's deploys. Nothing huge. A couple of tables, a chart, a status light per service. Before I typed a single line of real code, I had four browser tabs open arguing about which runtime to use, two about the "right" package manager in 2026, and one very confident blog post explaining why the database I was about to pick was already obsolete.&lt;/p&gt;

&lt;p&gt;I closed the laptop and made tea.&lt;/p&gt;

&lt;h2&gt;
  
  
  The promise is always the same
&lt;/h2&gt;

&lt;p&gt;Almost every serious tool is fine. Most of them are genuinely good. That is the problem. When everything is good, marketing can't say "this is good," so it reaches for the superlative. Fastest. Most loved. The future of the stack.&lt;/p&gt;

&lt;p&gt;It is the sheer volume of it, all at once, in every category, that wears me down. Here is my week.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript runtimes: pick a lane, any lane
&lt;/h2&gt;

&lt;p&gt;I wanted to run some JavaScript. Used to be a one-line decision. Now there are three serious answers and each one has a personality.&lt;/p&gt;

&lt;p&gt;Node is the boring grown-up that runs most of the internet and supports basically every package on npm. Deno shows up with native TypeScript, a strict permissions model, and a built-in formatter, linter, and test runner, so you stop gluing twelve tools together. Bun bundles the runtime, package manager, bundler, and test runner into one binary and tells you it is dramatically faster at almost everything.&lt;/p&gt;

&lt;p&gt;And it can be. In an Express-style HTTP test Bun sustained roughly 52,000 requests per second where Node plateaued around 13,000, about four times faster (&lt;a href="https://strapi.io/blog/bun-vs-nodejs-performance-comparison-guide" rel="noopener noreferrer"&gt;Strapi&lt;/a&gt;). Impressive number. Then you read the same writeup's more realistic test, with routing, validation, and an actual database in the loop, and the gap collapses to about 12,400 versus 12,000 requests per second. Less than three percent.&lt;/p&gt;

&lt;p&gt;So which one is fastest? All of them, depending on which benchmark you were shown. The pattern most teams quietly land on is unglamorous: existing services stay on Node, brand-new services try Bun, and security-sensitive work leans Deno (&lt;a href="https://daily.dev/blog/javascript-runtimes-bun-vs-node-js-vs-deno-comparison/" rel="noopener noreferrer"&gt;daily.dev&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fubpzn5jm0zzpp9mmk6l9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fubpzn5jm0zzpp9mmk6l9.png" alt="A satirical bar chart where every product's bar is labeled the fastest, with a tiny disclaimer footnote." width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Package managers: an 18x number that means almost nothing
&lt;/h2&gt;

&lt;p&gt;Fine. I picked a runtime. Now how do I install dependencies? There are four contenders and they will all tell you the others are slow.&lt;/p&gt;

&lt;p&gt;The numbers are real and they are genuinely big. On a typical React and TypeScript project, a cold install clocks in at roughly 0.8 seconds with Bun, about 5 seconds with pnpm, and a leisurely 14 seconds with npm, which works out to Bun being around 18x faster than npm (&lt;a href="https://www.deployhq.com/blog/choosing-the-right-package-manager-npm-vs-yarn-vs-pnpm-vs-bun" rel="noopener noreferrer"&gt;DeployHQ&lt;/a&gt;). Bun is written in Zig and makes a fraction of the system calls npm does, about 165,000 against nearly a million on the same install (&lt;a href="https://bun.com/blog/behind-the-scenes-of-bun-install" rel="noopener noreferrer"&gt;Bun&lt;/a&gt;). That is a legitimately clever engineering story, and pnpm's own benchmarks back up that it crushes npm on most graphs (&lt;a href="https://pnpm.io/benchmarks" rel="noopener noreferrer"&gt;pnpm&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Here is my tired confession. I install dependencies maybe a few times a day. The difference between one second and fourteen, summed over a normal day, is not what is slowing me down. What slows me down is reading three "showdown" posts to feel allowed to pick one.&lt;/p&gt;

&lt;p&gt;The speed crown also moves. A year ago the install-speed story was pnpm's. Then Bun shipped a binary lockfile and a native installer and took the headline. Whatever you standardized on last quarter is now, by some post's reckoning, the slow one. I spent a weekend moving forty-odd internal services off Yarn onto pnpm, and then a few months later half of them onto Bun, chasing exactly this. The only things that actually changed were the lockfile format and my mood. I will not be doing it a third time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;The pitch you'll hear&lt;/th&gt;
&lt;th&gt;What's usually true&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JS runtime&lt;/td&gt;
&lt;td&gt;"Blazing fast, all-in-one"&lt;/td&gt;
&lt;td&gt;Real wins in micro-benchmarks, small gap under real load&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Package manager&lt;/td&gt;
&lt;td&gt;"Up to 18x faster installs"&lt;/td&gt;
&lt;td&gt;True on cold installs, rarely your bottleneck&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OLAP database&lt;/td&gt;
&lt;td&gt;"Fastest analytics engine"&lt;/td&gt;
&lt;td&gt;Depends entirely on data size and query shape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI model&lt;/td&gt;
&lt;td&gt;"New state of the art"&lt;/td&gt;
&lt;td&gt;True for a few weeks, on specific benchmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;...and the next category&lt;/td&gt;
&lt;td&gt;"...also the fastest and the future"&lt;/td&gt;
&lt;td&gt;"...and the one after that, and the one after that"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Databases: the fastest, according to whose benchmark?
&lt;/h2&gt;

&lt;p&gt;This is where it gets funny, because the superlatives start colliding with each other.&lt;/p&gt;

&lt;p&gt;ClickHouse will tell you, with receipts, that it is the strongest general-purpose real-time analytics database, winning or tying 32 of 43 queries on ClickBench with a median hot-cache latency around 148 milliseconds (&lt;a href="https://clickhouse.com/resources/engineering/fastest-olap-databases" rel="noopener noreferrer"&gt;ClickHouse&lt;/a&gt;). DuckDB will tell you it is the SQLite of analytics, runs in-process, and is plenty fast for the data that actually fits on one machine. Both are correct. ClickBench is also, as one analytics vendor pointed out a little dryly, created by ClickHouse, so it is fair to assume it favors ClickHouse's engine (&lt;a href="https://www.tinybird.co/blog/fastest-database-for-analytics" rel="noopener noreferrer"&gt;Tinybird&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;That is not a scandal. Every vendor benchmarks on the workload that flatters them. It just means "fastest database" is a sentence with an invisible footnote attached.&lt;/p&gt;

&lt;p&gt;Then there is the vector database category, which spent two years insisting you needed a dedicated, purpose-built, blazing-fast vector store for your AI app. Meanwhile pgvector quietly let people store embeddings right next to their relational data and run similarity search in under 20 milliseconds even at a million vectors (&lt;a href="https://encore.dev/blog/you-probably-dont-need-a-vector-database" rel="noopener noreferrer"&gt;Encore&lt;/a&gt;). The counter-movement now has its own slogan, "you probably don't need a vector database," which is, of course, also a marketing position. Even the backlash to the hype is hype.&lt;/p&gt;

&lt;p&gt;I find this strangely comforting. If "just use Postgres" can become a movement, then boring and reliable still gets a turn now and then.&lt;/p&gt;

&lt;h2&gt;
  
  
  Observability: same play, different category
&lt;/h2&gt;

&lt;p&gt;Logs and metrics fell into the same pattern while I wasn't looking. Every storage backend and pipeline in this space promises lower cost, higher ingest, and faster queries than whatever you are running today. One project pitches column-oriented storage that makes your old setup look wasteful. Another pitches a unified store so you stop running three systems for logs, metrics, and traces. A third pitches an agent that is somehow lighter than the lightweight agent you already deemed lightweight.&lt;/p&gt;

&lt;p&gt;I do not doubt the numbers. I doubt my ability to act on them. By the time I have evaluated one observability stack, the team behind a competing one has published a benchmark showing it ingests more events per second on a cheaper instance. The category never settles long enough for me to feel finished, so I have mostly stopped trying to feel finished.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI models: state of the art, valid until next Thursday
&lt;/h2&gt;

&lt;p&gt;You knew this one was coming.&lt;/p&gt;

&lt;p&gt;Skim any leaderboard and a fresh "new SOTA" announcement lands before you have finished reading the last one (&lt;a href="https://www.vellum.ai/llm-leaderboard" rel="noopener noreferrer"&gt;Vellum&lt;/a&gt;, &lt;a href="https://llm-stats.com/" rel="noopener noreferrer"&gt;llm-stats&lt;/a&gt;). One model tops SWE-bench, another tops reasoning, a third wins competitive coding, and last month's leaderboard is already a museum piece.&lt;/p&gt;

&lt;p&gt;I genuinely like a lot of these tools. But the cadence has broken my brain a little. I will spend an afternoon getting a workflow tuned around one model, feel good about it, and the next morning a thread informs me that choice is now embarrassing because something launched overnight that scores two points higher on a benchmark I will never personally run. The fear of missing the better tool has quietly replaced the joy of using a good one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscfgz2bmqb37optikksi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscfgz2bmqb37optikksi.png" alt="A tired developer running on a treadmill chasing a dangling carrot labeled " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why everyone shouts at once
&lt;/h2&gt;

&lt;p&gt;Most categories are crowded with good options, so a real, defensible edge on one benchmark is the only honest hook left. Launch posts and comparison content are how projects get attention, so the loudest, most quantified claim wins the feed. And I reward it. I clicked the "18x faster" headline, then rewrote half a build pipeline around the tool behind it, then watched it save me about nine seconds a day. I am exactly the reader this all works on.&lt;/p&gt;

&lt;p&gt;The benchmarks are not lies. They are narrow truths presented at full volume. "Fastest on this query, on this hardware, with a warm cache" becomes "fastest," because the qualifier does not fit on the banner and would dull the punch anyway.&lt;/p&gt;

&lt;p&gt;There is also a timing trap in here. A launch is a single moment, but a tool lives in your codebase for years. Marketing optimizes for the moment, when attention is cheap and the demo is rehearsed. You optimize for the years, when the docs have to be searchable, the error messages have to make sense, and someone new has to read the code. The loudest tool on launch day is not reliably the one you are happiest with eighteen months later.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I actually pick now (the only useful part)
&lt;/h2&gt;

&lt;p&gt;I promised this rant would earn its keep, so here is what I do now, mostly out of self-defense.&lt;/p&gt;

&lt;p&gt;I start from the boring default and make the shiny thing argue its way in. Node, Postgres, npm, the model already wired up. The well-worn option has Stack Overflow answers from 2019 that still work, and I will take that over a leaderboard win most days. I only go shopping when something is actually, measurably slowing me down. Not "a blog post says I could be faster." Real pain I have felt. If installs are not my bottleneck, I genuinely do not care that another installer is quicker.&lt;/p&gt;

&lt;p&gt;When I do read a benchmark, I read the workload before the number. If I cannot tell what was measured, I assume it was measured to win, because it usually was. And I try to pick for the unglamorous middle of a project rather than the demo: the migrations, the 2am debugging, the new hire who has to understand the code. Launch day is the least important week of a tool's life with me.&lt;/p&gt;

&lt;p&gt;The thing that actually saves my sanity is just stopping. When a choice is good enough, I commit and close the tabs. I have shipped with the slightly slower option plenty of times and never once sat there at 2am wishing I had picked the faster one. It just never comes up.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, honest question
&lt;/h2&gt;

&lt;p&gt;I want to know how you do it, because I am clearly still figuring it out.&lt;/p&gt;

&lt;p&gt;When you start something new and every option in the category swears it is the fastest and the future, how do you actually choose? Do you default to boring on purpose? Trust one person's taste over benchmarks? Pick the thing with the best docs and never look back? Or do you, like me, occasionally close the laptop and make tea?&lt;/p&gt;

&lt;p&gt;Tell me in the comments. Bonus points for the most over-the-top "we're the best" tagline you've seen lately. I collect them now. It's a coping mechanism.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>discuss</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>React vs Angular vs Vue: A Beginner's Guide to Actually Picking One</title>
      <dc:creator>Danil</dc:creator>
      <pubDate>Thu, 25 Jun 2026 15:29:46 +0000</pubDate>
      <link>https://dev.to/krabarena/react-vs-angular-vs-vue-a-beginners-guide-to-actually-picking-one-30m7</link>
      <guid>https://dev.to/krabarena/react-vs-angular-vs-vue-a-beginners-guide-to-actually-picking-one-30m7</guid>
      <description>&lt;p&gt;If you are new to frontend development, the React vs Angular vs Vue question feels like a trap. Every blog post seems to crown a different winner, and the comment sections turn into small wars. So here is the calm version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; All three are good. For most apps the framework you pick matters far less than people pretend, and that gap shrinks even more once the workload gets heavy. Pick based on your team, your job market, and how the framework feels to you. Then learn it properly. Below I explain what each one actually is, where they really differ, and a simple way to make choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, what are these three things?
&lt;/h2&gt;

&lt;p&gt;They all help you build interactive websites without manually poking at the page every time the data changes. But they are not the same kind of tool.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; is a &lt;em&gt;library&lt;/em&gt;, made by Meta (Facebook). It only handles the UI (the "view"). You add the other pieces yourself: routing, data fetching, forms. Think of it as a really good engine that you build the rest of the car around.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Angular&lt;/strong&gt; is a &lt;em&gt;full framework&lt;/em&gt;, made by Google. It comes with almost everything in the box: routing, forms, HTTP, testing. It is the whole car, and it has opinions about how you drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vue&lt;/strong&gt; is a &lt;em&gt;progressive framework&lt;/em&gt;, community-run, with no big tech giant behind it. It sits in the middle: a friendly core you can grow into something bigger when you need to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A quick word on jargon. A &lt;strong&gt;component&lt;/strong&gt; is a reusable chunk of UI, like a button or a whole sidebar. &lt;strong&gt;Reactivity&lt;/strong&gt; just means "when the data changes, the screen updates by itself." You don't redraw it by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one difference you'll feel on day one: syntax
&lt;/h2&gt;

&lt;p&gt;This is the thing that actually decides whether you enjoy a framework.&lt;/p&gt;

&lt;p&gt;React uses &lt;strong&gt;JSX&lt;/strong&gt;, which mixes HTML-like markup straight into JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Clicked &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; times&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vue uses &lt;strong&gt;templates&lt;/strong&gt; that look a lot more like plain HTML, with the logic kept separate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ref&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;vue&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click=&lt;/span&gt;&lt;span class="s"&gt;"count++"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Clicked &lt;span class="si"&gt;{{&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="si"&gt;}}&lt;/span&gt; times&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Angular also uses templates, but it expects &lt;strong&gt;TypeScript&lt;/strong&gt; (a typed version of JavaScript) and a class-based structure from the very start. More ceremony up front, more guard rails later.&lt;/p&gt;

&lt;p&gt;Most people find Vue the gentlest to read and React the most flexible once it "clicks." Angular is the most structured, which beginners often experience as the steepest.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about speed and bundle size?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bundle size&lt;/strong&gt; is how much JavaScript the browser has to download before your page works. Smaller is generally faster to load. Here are rough current numbers for the core (gzipped):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Core bundle (gzip)&lt;/th&gt;
&lt;th&gt;Reputation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vue 3.5&lt;/td&gt;
&lt;td&gt;~18 to 22 KB&lt;/td&gt;
&lt;td&gt;Smallest, fast initial load&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React 19&lt;/td&gt;
&lt;td&gt;~32 to 40 KB&lt;/td&gt;
&lt;td&gt;Small core, but you add libraries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Angular 20&lt;/td&gt;
&lt;td&gt;~110 to 130 KB&lt;/td&gt;
&lt;td&gt;Largest, includes everything&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One fair warning: React's tiny core is a little misleading. A real React app pulls in extra libraries for routing and state, which closes the gap. Angular's number looks scary, but it ships a lot of features you would otherwise wire up by hand.&lt;/p&gt;

&lt;p&gt;On raw rendering, modern benchmarks like the well-known &lt;a href="https://krausest.github.io/js-framework-benchmark/current.html" rel="noopener noreferrer"&gt;js-framework-benchmark&lt;/a&gt; tend to show Vue edging out React on update-heavy work, because its compiler tracks exactly what changed. But here is the honest part: for most real apps, that difference is a few milliseconds your users will never feel.&lt;/p&gt;

&lt;h2&gt;
  
  
  The surprising part: under heavy load, they converge
&lt;/h2&gt;

&lt;p&gt;This is where a beginner comparison usually stops. I want to go one step further, because it changes how you should think about the whole debate.&lt;/p&gt;

&lt;p&gt;There is a community benchmark that puts the three head-to-head on a &lt;strong&gt;dashboard-heavy frontend&lt;/strong&gt;, the kind with a 10,000-row data grid that really stresses a framework. The results were a useful reality check. Vue did come out ahead overall, and it consistently shipped the smallest bundle. But on the &lt;em&gt;heaviest&lt;/em&gt; operation, rebuilding the entire grid, all three finished within about &lt;strong&gt;4% of each other&lt;/strong&gt;. Vue's clearest win was on sorting, where it was roughly 18% faster than React, not on the brute-force rebuild.&lt;/p&gt;

&lt;p&gt;Don't take my word for any of it. Go read the individual claims, look at the numbers behind each one, and verify or push back on them yourself in this &lt;a href="https://krabarena.com/battles/react-vs-angular-vs-vue-for-dashboard-heavy-frontends" rel="noopener noreferrer"&gt;React vs Angular vs Vue dashboard battle&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The lesson is simple. When the work is genuinely hard, the framework stops being the bottleneck. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you do matters more than which logo sits in your &lt;code&gt;package.json&lt;/code&gt;!&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The biggest single trick is &lt;strong&gt;virtualization&lt;/strong&gt;: only rendering the rows currently on screen instead of all 10,000. A naive React grid and a naive Vue grid will both crawl. A virtualized one in either will fly.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to actually choose (a 60-second guide)
&lt;/h2&gt;

&lt;p&gt;Forget "which is best." Ask these instead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;What does your team or local job market use?&lt;/strong&gt; This is the biggest factor by far. React has the most jobs, with tens of thousands of US openings versus a few thousand for Vue. If a paycheck is the goal, that's a thumb on the scale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How much structure do you want handed to you?&lt;/strong&gt; Want batteries included and strong conventions? Angular. Want freedom to assemble your own stack? React. Want a gentle middle path? Vue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Which one is fun to read?&lt;/strong&gt; Open the docs for each and write a counter. The one whose code makes you go "oh, that's nice" is the one you'll stick with, and sticking with it is what makes you good.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A simple default for a brand-new developer: start with Vue to learn the concepts fast, then learn React for the job market.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo0weuqfv55doasr680z7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo0weuqfv55doasr680z7.png" alt="Decision flow for choosing React, Angular, or Vue" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;The three frameworks keep getting more alike. Angular added signals, Vue refined its fine-grained reactivity, and React shipped a compiler. They are all trying to do less unnecessary work, so the "war" matters a little less every year. Learn the fundamentals, meaning components, state, reactivity, and when to reach for virtualization, and you can move between all three without much pain.&lt;/p&gt;

&lt;p&gt;Did you pick your first framework for a solid technical reason, because of the job listings, or just a tutorial you happened to find? Tell your story in the comments.&lt;/p&gt;




&lt;h3&gt;
  
  
  References &amp;amp; further reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.logrocket.com/angular-vs-react-vs-vue-js-performance/" rel="noopener noreferrer"&gt;Angular vs. React vs. Vue.js: A performance guide for 2026 (LogRocket)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://zerotomastery.io/blog/angular-vs-react-vs-vue/" rel="noopener noreferrer"&gt;Angular vs React vs Vue (Zero To Mastery)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://krausest.github.io/js-framework-benchmark/current.html" rel="noopener noreferrer"&gt;js-framework-benchmark (Stefan Krause)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tanstack.com/virtual/latest" rel="noopener noreferrer"&gt;Virtualization for large lists (TanStack Virtual)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://krabarena.com/battles/react-vs-angular-vs-vue-for-dashboard-heavy-frontends" rel="noopener noreferrer"&gt;React vs Angular vs Vue dashboard battle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>vue</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
