DEV Community

loading...
Ryan Carniato profile picture

Ryan Carniato

Frontend performance enthusiast and Fine-Grained Reactivity super fan. Author of the SolidJS UI library and MarkoJS Core Team Member.

Location San Jose, California Joined Joined on  github website twitter website

Education

Computer Engineering B.A.Sc, University of British Columbia

Work

Software Engineer MTS, eBay

Last 250 comments

Introducing the Marko Tags API Preview

It does mean that. But it also makes sense. The effect makes ...

Taking Marko's Tags API for a Test Drive

Admittedly the store example is probably where this is the mo...

JavaScript vs JavaScript. Fight!

The thing with Next and most SPAs is that they are fast after...

JavaScript vs JavaScript: Round 2. Fight!

Hah.. It's only been a couple days.. need a few more things t...

JavaScript vs JavaScript: Round 2. Fight!

The closest I've seen is Prism. It isn't completely runtime-l...

Building a Reactive Library from Scratch

The observer pattern is inherently leaky. Signals don't need ...

Taking Marko's Tags API for a Test Drive

Yeah mostly that since we are streamlining composability we a...

2021 JavaScript framework

Yeah Solid doesn't even have an isObservable. All we do is wr...

JavaScript vs JavaScript. Fight!

They have client state they just put it in the HTML, keep on ...

JavaScript vs JavaScript. Fight!

The difference is that Qwik isn't saying everything needs to ...

Building JavaScript Frameworks to Conquer eCommerce

Yeah that's pretty much what I've seen. A good summary. I'm a...

Building JavaScript Frameworks to Conquer eCommerce

It would be hard. I'm looking at this with Solid to a degree....

Building JavaScript Frameworks to Conquer eCommerce

I meant bring forth. I suppose if you were already using thos...

2021 JavaScript framework

Yeah the counter with the c => c + 1 was just a style choi...

2021 JavaScript framework

Want the opposite argument? I will play sort of Devil's advoc...

2021 JavaScript framework

SolidJS author here. I wasn't really going to say anything as...

JavaScript vs JavaScript. Fight!

Have you seen my library SolidJS? It's what I'm hinting at in...

Introducing the Marko Tags API Preview

That's the nice thing here since you just add them as needed....

Why Writing is Important for Software Developers

Great advice. I've found this to be my experience. Everything...

Building JavaScript Frameworks to Conquer eCommerce

Yeah I didn't realize this had a name. This is an example of ...

Building JavaScript Frameworks to Conquer eCommerce

Hard to speculate when they get access to the DOM API if they...

Building JavaScript Frameworks to Conquer eCommerce

WASM has a lot of potential. But in terms of shipping less co...

Introducing the Marko Tags API Preview

Yes. They can be nested. You more or less can develop a chil...

Introducing the Marko Tags API Preview

Yeah while Marko and Solid have a shared understanding of the...

Building JavaScript Frameworks to Conquer eCommerce

Yeah there are a few different ways to attack this. SPAs can ...

Building JavaScript Frameworks to Conquer eCommerce

I mean a SPA could be built on any page hence we see SPA in M...

Building JavaScript Frameworks to Conquer eCommerce

I have a few ideas on how to achieve that. But nothing exists...

Building JavaScript Frameworks to Conquer eCommerce

Yeah I'd contend though if I were looking at realworld cases....

Is 0kb of JavaScript in your Future?

It's a matter of moving the boundaries. No one wants to write...

Building JavaScript Frameworks to Conquer eCommerce

I haven't seen that. To be fair there is a difference between...

Building JavaScript Frameworks to Conquer eCommerce

Well there are platform required tools. It's a matter of not ...

Building JavaScript Frameworks to Conquer eCommerce

Yeah my experience was opposite. I worked almost exclusively ...

JavaScript Frameworks and Metagaming

Thanks, Emily. Naming is hard. I went the lazy way the same w...

Building a Reactive Library from Scratch

Yes that too. That's probably the more foundational answer. T...

Building a Reactive Library from Scratch

In the code above effect's dependencies are being added but ...

Building a Reactive Library from Scratch

You wouldn't want to cleanup yet. Like picture it is a DOM wi...

Building a Reactive Library from Scratch

If you try to subscribe after the inner effect it doesn't tra...

Building a Reactive Library from Scratch

Nested reactivity. Generally you can nest effects or derivati...

Introducing the SolidJS UI Library

Yeah it's a hold out from the old days. KnockoutJS used to do...

JavaScript Frameworks and Metagaming

HMR is quite possibly the most difficult problem Ive come acr...

JavaScript Frameworks and Metagaming

Maybe.. but unclear what the hooks are. It's possible with th...

A few reasons why I love Solid.js

Some compiler options that I don't use. But almost nothing on...

JavaScript Frameworks and Metagaming

Honestly, I'd defer to anyone who has the experience of using...

JavaScript Frameworks and Metagaming

I did a quick port of Transition Groups like you find in Vue ...

A few reasons why I love Solid.js

The short answer is no. You'd bloat out component size signif...

SolidJS Official Release: The long road to 1.0

I guess I don't get it. Or I agree with you except I see Soli...

SolidJS Official Release: The long road to 1.0

I mean Sinuous started as a fork of the HyperScript version o...

SolidJS Official Release: The long road to 1.0

There are a few ones in the works. Active development is bein...

SolidJS Official Release: The long road to 1.0

Yeah I'd be down to Q&A style. If possible send me a DM o...

SolidJS Official Release: The long road to 1.0

Of course. Marko is incredibly good where it's good (MPAs), b...

SolidJS Official Release: The long road to 1.0

Ahh.. I have no clue. Probably not as written. It was setup f...

SolidJS Official Release: The long road to 1.0

Awesome to hear. I think the combination of reactivity and JS...

What has the Marko Team Been Doing all These Years?

I know. And hopefully this fills in some of the gaps of what ...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

I wrote that article to sort of lead the reader to that the a...

SolidJS Official Release: The long road to 1.0

Thank you that is awesome. You can pre-render pages and then...

SolidJS Official Release: The long road to 1.0

It was easier. Seriously. I had done Templates before that a...

SolidJS Official Release: The long road to 1.0

Thanks. I see environments without workers are going to be pr...

SolidJS Official Release: The long road to 1.0

I feel that one especially. I am working on a very similar pr...

SolidJS Official Release: The long road to 1.0

Honestly it was time. I was going to do this almost 2 years a...

SolidJS Official Release: The long road to 1.0

I'd love to see that. Solid does have an underlying primitive...

SolidJS Official Release: The long road to 1.0

Thank you. The reason for it I think is people were basically...

The Real Cost of UI Components Revisited

I'd like to add fre to the official benchmark. Depending on h...

The Real Cost of UI Components Revisited

Well the reason Stencil influenced this was I couldn't get th...

The Real Cost of UI Components Revisited

Yeah it is the memory table for the performance table right a...

A first look at Qwik - the HTML first framework

Sort of. There it is all about identifying the entry points. ...

What has the Marko Team Been Doing all These Years?

Yeah Marko never knew how to present itself. Even to this dat...

A Look at Compilation in JavaScript Frameworks

I mean as long as the devices support them (which I imagine t...

A Look at Compilation in JavaScript Frameworks

Yeah mind you does this work in the rest of the template? I r...

Why build Single Page Apps in Blazor

Have there been any more recent work on performance? I know i...

What has the Marko Team Been Doing all These Years?

Yeah that marketing I suspect is spearheaded by Angular and p...

What has the Marko Team Been Doing all These Years?

Yeah this is a very unique perspective at least compared to w...

What has the Marko Team Been Doing all These Years?

Rich Harris, author of Svelte asked me the same question. ...

A Look at Compilation in JavaScript Frameworks

The latter is what we've been looking at with Solid. They sup...

A Look at Compilation in JavaScript Frameworks

Yeah that article came out shortly after I joined the Marko t...

A Look at Compilation in JavaScript Frameworks

One day there probably will be something really powerful ther...

Is 0kb of JavaScript in your Future?

This might be worth a read: infrequently.org/2021/03/the-perf...

The Trouble with TypeScript

I do agree with the overriding App vs Lib thing. In the artic...

The Trouble with TypeScript

Yes I've never had an issue writing stuff people think is con...

Components are Pure Overhead

I was waiting for more information from Dylan but he's out th...

Components are Pure Overhead

Modularization is still important, just the re-rendering UI c...

Components are Pure Overhead

Yet the article is about removing constraints caused by the c...

Components are Pure Overhead

This is so hard because in terms of production Marko is rock ...

Components are Pure Overhead

I think client-side is plenty optimal in general. We are gett...

Components are Pure Overhead

In a sense, you've bought in on a different framework. Instea...

Components are Pure Overhead

I've been seeing a lot of this and it is a reasonable solutio...

Components are Pure Overhead

The syntax is pretty locked. At least grammatically, open to ...

Components are Pure Overhead

I've definitely said for the longest time Framework UI Compon...

Components are Pure Overhead

Bingo. Svelte actual does this at a component level. There is...

Components are Pure Overhead

I'm over-generalizing. So apologize for the inaccuracy. That ...

Components are Pure Overhead

I spend a decent amount of time pointing out the tradeoffs of...

Components are Pure Overhead

Ok gotcha. Hmm.. first I've heard this particular argument. ...

Components are Pure Overhead

If you create 50 000 variables instead of using a loop... ...

Components are Pure Overhead

In the same way, the fact that ESM modules can be bundled in...

Components are Pure Overhead

I think the compiler could do most of the heavy lifting. The ...

Is 0kb of *HTML* in your future? 🔮 A website without JS...HTML...CSS or IMAGES!?⁉😱

All good. My title wasn't serious either. In any case nice d...

Is 0kb of JavaScript in your Future?

Manual Islands like Astro are like Microfrontends more or les...

Is 0kb of JavaScript in your Future?

Hotwire does achieve the goal from a UX standpoint mostly. Bu...

Is 0kb of JavaScript in your Future?

Yeah this is a good point. As much as client side gets flack ...

Is 0kb of JavaScript in your Future?

For sure, I think there is a lot of noise here. Especially fr...

Is 0kb of JavaScript in your Future?

It's possible. I feel a decade or so back we were just beginn...

Is 0kb of JavaScript in your Future?

Precisely, the models here are the opposite way. The desire h...

The 7 Most Popular DEV Posts from the Past Week

@graciegregory I was meaning to ask, does getting on this l...

Is 0kb of JavaScript in your Future?

Dynamic Imports + Components is sort of where this is coming ...

Is 0kb of JavaScript in your Future?

Yeah some elements of SPA (especially around navigation) requ...

Is 0kb of JavaScript in your Future?

Well it's possible that something like WASM bridges the gap a...

Is 0kb of JavaScript in your Future?

Sort of. It's a bit different this time around. When Rails ca...

Is 0kb of JavaScript in your Future?

I think the obstacle.. and really hardly one, is the desire t...

Is 0kb of JavaScript in your Future?

With a SPA Partial Hydration doesn't really work since you ba...

Is 0kb of JavaScript in your Future?

It might be funny that I'm coming at this sort of backwards. ...

Is 0kb of JavaScript in your Future?

Definitely. There are a whole class of apps where MPA archite...

Is 0kb of JavaScript in your Future?

Lazy Loading components is type of code splitting (sometimes ...

The 7 Most Popular DEV Posts from the Past Week

I count 6. 🙂 I wasn't aware my article made it on this list ...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

I think you are mostly understanding what I'm describing but ...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Technology is definitely secondary, but there are still benef...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

The problem is what you posted isn't equivalent. Change <f...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

I talk about the criticism a bunch in the article but general...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Yep. Pretty much the problem and why while I can be accepting...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Never let any of this dissuade you if it is what you want to ...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Thinking about this more. Have you ever read: How it Feels to...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Hey hey, cool it with the Marko bashing on syntax. I presente...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Music industry is brutal for gatekeepers. So few people "make...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

I've been at this for a couple years now. And I've observed t...

Of Chickens and Pigs - The Dilemma of Creator Self Promotion

Definitely can see a perception issue and have felt the hosti...

SolidJS - React meets Svelte?

Solid's inspiration mostly came from KnockoutJS and a little-...

5 Places SolidJS is not the Best

Yeah we're seeing a return of interest in this area again. I'...

Learning to Appreciate React Server Components

Yeah I thought that example in the video to be illustrative r...

Learning to Appreciate React Server Components

Well not every day. I have my weekends. One thing to consider...

Learning to Appreciate React Server Components

Yeah I mean who said Learning in Public is just for beginners...

What the hell is Reactive Programming anyway?

Sorry I was trying to end on an ambiguous note because even i...

The Shocking Immaturity of JavaScript

I can appreciate the sentiment, but things are still moving a...

Which JavaScript frameworks are worth learning in 2021?

That's a very solid recommendation.

What the hell is Reactive Programming anyway?

Yeah, I called out the relationship between values because th...

What the hell is Reactive Programming anyway?

It's interesting. Because state machines/charts represent pot...

How React isn't reactive, and why you shouldn't care

I've continued this line of thought over to a follow-up artic...

How React isn't reactive, and why you shouldn't care

It definitely is.

How React isn't reactive, and why you shouldn't care

Right but is the simplicity is any more real? Keep this in mi...

How React isn't reactive, and why you shouldn't care

For what? My point is that Svelte claim for Truly Reactivity ...

How React isn't reactive, and why you shouldn't care

Yeah probably a better way of saying what I was trying to abo...

How React isn't reactive, and why you shouldn't care

Yeah exactly my point and thanks for digging a bit more. I'm ...

How React isn't reactive, and why you shouldn't care

I see.. I read Staltz' articles but missed his correction. I ...

How React isn't reactive, and why you shouldn't care

I know a lot of people think that way. But that's just a synt...

How React isn't reactive, and why you shouldn't care

I think global stores are important and it has a solid founda...

Back to Basics: Building a HackerNews Clone with Marko

With a Marko project not using our basic starter(@marko/serve...

Back to Basics: Building a HackerNews Clone with Marko

Not currently. I believe someone reported this issue a little...

What happened to Components being just a visual thing?

I guess in my view when-this-then-that isn't quite that. Like...

What happened to Components being just a visual thing?

Definitely. The trick is to explicitly denote where these imp...

Building a Reactive Library from Scratch

You are correct. Good on you for noticing. I often have to te...

A Hands-on Introduction to Fine-Grained Reactivity

Actually no. The single function and the separate get/set are...

A Hands-on Introduction to Fine-Grained Reactivity

I've seen Effector, but hadn't seen Forest before. Effector i...

A Hands-on Introduction to Fine-Grained Reactivity

Those are fair questions. I took this example directly from D...

A Hands-on Introduction to Fine-Grained Reactivity

It's similar looking but mechanically very different. I've ta...

A Hands-on Introduction to Fine-Grained Reactivity

Admittedly I was staring at this problem for years before I e...

5 Ways SolidJS Differs from Other JS Frameworks

It's interesting, to think we might be able to locally apply ...

A First Look at MarkoJS

Not as of yet. Marko is heavily server-side and those project...

Making Sense of the JS Framework Benchmark

Hmm... since the point of the comparison is to look at librar...

5 Ways SolidJS Differs from Other JS Frameworks

Batched works like React. In all cases we maintain glitchless...

Server Rendering in JavaScript: Optimizing for Size

To your first question I meant that when you hoist the static...

5 Ways SolidJS Differs from Other JS Frameworks

It is possible to observe an intermediate state where not all...

Server Rendering in JavaScript: Optimizing for Size

Forgetting about offline mode/caching for a second. Is this s...

Vue or React?

I guess I could sort of bucket it all under ease of use. But ...

Vue or React?

If no such reason exists, do you expect Vue to take over in ...

Vue or React?

I worry the content here is misleading. Await block !== Suspe...

Vue or React?

If the popular claim is that Vue is easier to learn, more st...

Vue or React?

I do actually prefer the React solution here (mostly) even if...

Server Rendering in JavaScript: Why SSR?

I feel like we have a moving target so it shouldn't be unexpe...

Server Rendering in JavaScript: Why SSR?

My graphic skills leave a lot to be desired. I find I write a...

Server Rendering in JavaScript: Why SSR?

Yeah that's frustrating as the language barrier right off the...

Server Rendering in JavaScript: Why SSR?

ASP.NET was where I spent my first 6 years as a professional ...

What happened to Components being just a visual thing?

Bear with me a moment as I think this will make sense by the ...

React/Vue components are just server side template components with worse performance. Change my mind.

Note 2: I do want to be fair in saying that I understand the...

React vs Vue vs Angular vs Svelte

To be fair, performance is only one area and arguably the lea...

Introducing the SolidJS UI Library

I honestly haven't had much of an opportunity/reason to look ...

Introducing the SolidJS UI Library

To be fair I don't really consider CM a thing for raw perform...

Language Servers are the New Frameworks

I think React and JSX somehow snuck in without having to take...

React vs Vue vs Angular vs Svelte

Here's the index page where he posts new results as they come...

React vs Vue vs Angular vs Svelte

A couple thoughts. "Requires JSX" a downside??? I almost sto...

The React Hooks Announcement In Retrospect: 2 Years Later

I mean that is a bit of what of Vue 3 has with their Composit...

The React Hooks Announcement In Retrospect: 2 Years Later

I mean sure you can always make an adaptor. And it looks like...

The React Hooks Announcement In Retrospect: 2 Years Later

Where I stand these days is Svelte is great, but I don't want...

The React Hooks Announcement In Retrospect: 2 Years Later

Yeah I think I understate this. I do mention that by providin...

The React Hooks Announcement In Retrospect: 2 Years Later

To be fair I believe it is still in alpha. I think there are ...

Introducing the SolidJS UI Library

I was looking at NativeScript a little. Only my JSX is compil...

Reactivity Anywhere - without virtual DOM

And this is why we use compilers and templates on top of this...

FLUURT: Re-inventing Marko

Yes, and still is the primary library ebay.com is built on. I...

FLUURT: Re-inventing Marko

That's a really good point. This is the culmination of years ...

FLUURT: Re-inventing Marko

We do share some of these concerns. In the next article I'm g...

The Trouble with TypeScript

That's interesting. I am actually not an American and just mo...

A First Look at MarkoJS

It looks like you hit some annoying issues. There are some pa...

A First Look at MarkoJS

I think these are pretty fair criticisms. I think the discrep...

A First Look at MarkoJS

Not at all. These have opposite design philosophies and in ma...

Naked Emperors in Tech

That's interesting way of phrasing it. I find these things ar...

A First Look at MarkoJS

Torn on this one. I used to love using Jade and CoffeeScript ...

A First Look at MarkoJS

I think he means he doesn't like using HTML tag looking stuff...

A First Look at MarkoJS

Yeah so many. To be fair Svelte is still relatively new in th...

A First Look at MarkoJS

Yes, Marko's hybridness is part of its DNA. Marko started its...

A First Look at MarkoJS

Yeah that's a good suggestion. Or put up the repo just didn't...

How is Remix different from Next.js

Maybe there is concern that people will copy it too quickly. ...

How is Remix different from Next.js

I've been so out of the loop. I assumed everyone had routing ...

Should React opt for compile time instead of Virtual DOM?

Author of Solid here. There are challenges of attempting to t...

Svelte for Sites, React for Apps

I love this Richard Feldman talk. I hadn't seen this before ...

Svelte for Sites, React for Apps

I'm fairly confident this direction is viable given Marko has...

Svelte for Sites, React for Apps

Yeah you are right it's deeper than that. If we aren't doing ...

Svelte for Sites, React for Apps

Alpine isn't large by any means but any size conscious modern...

Svelte for Sites, React for Apps

Yeah I wonder how light these straight from the CDN solutions...

Svelte for Sites, React for Apps

Oh man this is heating up. Elder.js is interesting. MarkoJS h...

Why I'm not a fan of Single File Components

Technically I support Tagged Template Literals, but it is bit...

Comparing reactivity models - React vs Vue vs Svelte vs MobX vs Solid vs Redux

I'd like to clarify Solid is completely reactive. Arguably th...

Beware The Fallacy of Composition

This is non-obvious a lot of the time. It's basically the fal...

Why I'm not a fan of Single File Components

SolidJS is a different UI Framework that while it looks simil...

Where Web UI Libraries are Heading

Definitely interested in this, serving from the edge seems re...

Solid - The best JavaScript UI library?

I agree. You can make that argument for any library really an...

Why SolidJS: Do we need another JS UI Library?

I never really spent a lot of time with Aurelia. It reminded ...

Why SolidJS: Do we need another JS UI Library?

Not where it stands today. It is a very interesting topic but...

Why SolidJS: Do we need another JS UI Library?

Yeah Svelte has great performance. I think it is at a good pl...

Why SolidJS: Do we need another JS UI Library?

Taking that into account I've added a disclaimer. I wasn't re...

Why SolidJS: Do we need another JS UI Library?

I agree. I actually wasn't trying to promote this like I usua...

Why SolidJS: Do we need another JS UI Library?

Svelte has done some really transformative things with its co...

Why SolidJS: Do we need another JS UI Library?

That's fair. It's sort of unfortunate that the justification ...

Why SolidJS: Do we need another JS UI Library?

You are right. Knowing how Vue works internally I never had a...

Where Web UI Libraries are Heading

What I mean is if you are streaming back a response with spec...

Where Web UI Libraries are Heading

See that's my fear. I'm unclear how the libraries looking to ...

In defense of the modern web

That's interesting. I mean I was there too, and the extent o...

JSX is not HyperScript

I just meant JSX is a syntax, like XML or JSON. JSX is no mor...

Thinking Granular: How is SolidJS so Performant?

Thank you for writing a response. I acknowledge the content h...

Maybe Web Components are not the Future?

Yeah it seems reasonable. Although I think disappearing fra...

How much does your job dictate what new tools you learn vs self-direction?

Definitely self directed. But to be clear if I needed to le...

React's Odd Obsession With Declarative Syntax

These problems have nothing to do with Declarative. Simply ...

Maybe Web Components are not the Future?

Yeah exactly as I said in the conclusion I see 3 uses: si...

Maybe Web Components are not the Future?

I think we tend to look for solutions to escape vendor lock...

Maybe Web Components are not the Future?

Reading the article you can understand why perhaps I'm in t...

Introducing the SolidJS UI Library

I mean Vue does make that easy so it broadcasts it as a use c...

Introducing the SolidJS UI Library

In what aspects? There are a lot of considerations. More than...

Introducing the SolidJS UI Library

Thank you for taking the time to respond. I don't think that ...

React Single File Components Are Here

It is pretty clear to me there are a couple schools of though...

The Trouble with TypeScript

Thanks for linking your article. That's been almost exactly...

The Trouble with TypeScript

Thanks. A few of the other top tier competitors use it or u...

The Trouble with TypeScript

Solid is all TypeScript and it works well so I feel I worde...

The Trouble with TypeScript

Likely a lot of those things. Difficulty with 3rd party lib...

The Trouble with TypeScript

I linked an example in the Material UI docs but I also hit ...

The Trouble with TypeScript

CoffeeScript exemplifies some of the benefits of JavaScript...

The Trouble with TypeScript

I try to be heavily involved in Open Source and I have repo...

The Trouble with TypeScript

Exactly. The artistic comparison is exactly what I'm getting ...

The Trouble with TypeScript

Yeah that's what I've been hoping for. I'm expecting the ot...

The Trouble with TypeScript

Perhaps. As mentioned I'm into benchmarking. And WASM just ...

The Trouble with TypeScript

All our codebases are strict mode. But I see value for expl...

The Trouble with TypeScript

I started with QBasic and C, then got a little taste of JS ...

The Trouble with TypeScript

From what I've read that is a lot of people's experience. Of ...

Svelte VS ReactJS Performance Report

Everytime I see a new benchmark I find it useful to categor...

Svelte Needs A Virtual DOM

You are talking about a batching mechanism that has nothing t...

loading...