This VS Code Killer Just Went Open Source (Written In Rust BTW)
Summary
TLDRThe video discusses the open-source code editor Zed, created by the original developers of Atom. It provides a comparison to VS Code, praising Zed's native performance, collaboration features, and UI focus while critiquing its lack of plugin support. The video explores Zed's strengths like git integration and typescript support as well as weaknesses like scrolling jankiness. Overall, it seems impressed by Zed given it doesn't lean on existing work but notes VS Code's ecosystem advantages. It hopes competition drives future innovation.
Takeaways
- 😀 Zed is a new open source code editor created by the original Atom creators focused on performance and collaboration
- 👀 It has native-level performance compared to Electron based editors like VSCode
- 💻 The scrolling, text rendering and git operations feel much faster than VSCode
- 🔬 It has good TypeScript support like go to definition and intelligent autocompletion
- 🤝 It has built-in collaboration features like chat, screen sharing and collaborative editing
- 🚀 The editor is built using their own GPU accelerated UI framework called GPI
- 🤖 It has AI autocomplete through GitHub CoPilot built-in with no extensions needed
- 💪 It seems to match most of the must-have VSCode features with better performance
- 📦 The lack of a plugin system results in hacky workarounds to support things like Tailwind
- 🔌 Overall it shows promise but needs more maturity and plugin support before mass adoption
Q & A
What text editor does the narrator mainly use?
-The narrator mainly uses VS Code as their text editor.
What is the narrator's opinion on the performance of VS Code compared to native editors?
-The narrator feels VS Code's performance is noticeably slower compared to native editors like Sublime Text and Vim, especially for basic actions like text appearing after key presses.
What is Zed and what are its main goals?
-Zed is a new open source text editor focused on performance and collaboration. Its main goals are to match native performance while providing an extensible plugin ecosystem like VS Code.
Why did the Zed team decide to open source Zed?
-The Zed team believes open sourcing will attract more contributors to improve Zed, and connecting directly with developers matches their mission of building the best editor.
What is the GPI library Zed uses?
-GPI is a GPU-accelerated UI framework for creating high performance desktop applications using Rust.
How does the narrator feel about Zed's built-in collaboration tools?
-The narrator sees potential in the deep integration opportunities but the current UX is rough, especially accidentally starting audio calls by clicking on usernames.
What VS Code extensions would the narrator miss if switching to Zed?
-The narrator would mainly miss the Pretty Typescript Errors and Quick Lint JS extensions which improve error messages and catch common issues.
What does the narrator think Zed needs to attract developers from VS Code?
-The narrator believes Zed needs to focus on UX wins and 'wow' moments that make the editor demonstrably better, rather than just matching existing functionality.
Why does the narrator think creators are a good initial target audience for Zed?
-The narrator argues that by targeting creators and influencers first, Zed can both leverage their reach and get feedback from power users deeply familiar with their audience's needs.
What is the narrator's overall assessment of Zed's potential?
-While not planning to switch yet, the narrator is excited by the innovation happening in Zed and believes the competition will push all editors to improve.
Outlines
🤓 Explaining shift from Sublime Text to VSCode at Twitch job
The author reminisces about preferring Sublime Text over VSCode when working at Twitch. A coworker introduced the VSCode debugger which helped in testing and shifted the author towards VSCode over time for its utility despite lower performance.
👨💻 Checking out open-source Zed editor for native feel
The author is trying out Zed, an open-source editor aiming to balance native performance of vim with plugin ecosystem of VSCode. It is created by Atom founders and addresses Atom's electron performance issues.
🔎 Inspecting Zed's GitHub codebase and remix
The author joined Zed last week when they open-sourced it. The team did a rewrite of their core GUI framework. The author shares their motivations for open sourcing Zed and rewriting the code to engage community help.
😮 Accidentally calling someone in Zed's editor
The author explores Zed's focus on collaboration and tries to create a channel. They accidentally call someone by clicking their name and find the UI confusing overall.
👍 Praising collaboration vision but critiquing UX
The author has mixed feelings about in-editor collaboration. Appreciates the vision but feels the UX needs refinement regarding accidental calls and security.
🤔 Critiquing div choice for native UI framework
Analyzing Zed's Rust GPU framework, author is confused by choice of web primitives like divs and flexbox for native UI instead of crafting new native abstractions.
😊 Thankful for innovation pushes in editor space
Despite issues, the author is excited for more competition and innovation in the editor space. Curious about audience's take on moving beyond VSCode.
Mindmap
Keywords
💡VSS code
💡performance
💡Zed
💡collaboration
💡open source
💡Tailwind
💡plugins
💡GPU acceleration
💡creators
💡competition
Highlights
There's a ton of inertia that's a good way to describe it
Zed is trying to find the balance between native performance and a plugin ecosystem
Zed's creators also created Electron to build Atom
They believe open sourcing Zed will make it the best editor
They split the licensing with GPL for the editor and Apache for server components
The scrolling feels a little janky with too much inertia
The git status updates instantly compared to VS Code
They are focusing on built-in collaboration tools unlike VS Code plugins
Targeting creators can help hit product market fit faster
Pretty TypeScript errors and Quick Lint JS will be missed plugins
The auto import ranking is bad and UI shifts annoyingly
No cloak plugin for hiding secrets is concerning
Hardcoding Tailwind support to every language is not extensible
Lack of plugin system makes maintaining things difficult
I'm excited for more competition and innovation among editors
Transcripts
VSS code love it or hate it it's become
the norm for quite a while now I still
remember working at twitch being the one
person who just would not give up on
Sublime Text when I started writing more
unit tests for weird typescript
functionality I was introduced to the
VSS code debugger by a cooworker which
was a huge help in me running the tests
and playing with things as I went along
and ended up slowly making the shift as
a result that all said I missed the
performance while I could sit here and
defend electron all day I'll admit the
performance is something you feel in a
text editor while vs code is way faster
than Alternatives were like Adam you
definitely feel that it's a browser not
a native editor and when you use
something like Sublime Text or even
things like Vim the speed at which a key
press results in a key being on your
screen it's small but you feel it and I
definitely understand why people miss a
native IDE this is why I'm really
excited to talk about Zed today Zed's a
really interesting editor because it's
trying to find the balance between
native performance you would expect from
things like vim and a plugin UI focused
ecosystem similar to vs code where you
can kind of get the best of both worlds
it is not just being cre cre by some
random people it's actually being built
by the original creators of Adam and
those Adam creators didn't just invent
one of the first modern text editors
they actually built electron just to
make atom possible in a lot of ways you
can almost see this as an undoing of the
damage that electron did where this team
wants to make a much better performing
editor that doesn't compromise on the
user experience the same way other
things might do Now Zed is open source
this is a huge change that I honestly
didn't expect because Zed's a startup
they have to make money somehow open
sourcing the editor is a bold to make
but not only are they open sourcing they
actually rewrote most of the code in the
process so why the big rewrite last week
was my first week at Zed I joined right
as the team was preparing for this
week's release which they referred to as
zed 2 big things in the air this release
marks the end of the team's multi-month
rewrite of zi framework GPI from V1 to
V2 all hands on deck everybody fixing
the last bugs polishing Zed and I the
newcomer had so many questions why the
big rewrite how'd you pull it off what
does this get you how do you organize it
this is really cool that they're like
publishing this type of stuff about why
they're doing these bold rewrites and
that the whole video is on YouTube as
well I'm not here to talk about the
rewrite though I'm here to talk about
the open source release and actually
play with z a bit if you want to hear
more about big rewrites like this let me
know in the comments and maybe I'll make
a whole video just about this rewrite
we're excited to announce that Z is an
open source project the code for Z SS
available under a copy left license to
ensure any improvements will benefit the
entire Community GPL for the editor a
GPL for serers side components
interesting that they went with standard
GPL for the editor and the Apache
modification of it for the serers side
stuff makes sense for them to make sure
they a business they can sell but
fascinating to see this type of like
split licensing for a product if you
think I should talk more about licensing
for open source let me know cuz it's
thing I have a lot of weird opinions on
they also mentioned the GPI rewrite that
they are Distributing as well under
Apache so anyone can use it to build
high performance desktop apps and
distribute them under any license that's
huge that's really cool good open source
why are they doing this most importantly
they believe that making Z open source
will make it the best product our
mission is to build the world's most
advanced code editor and get it in the
hands of millions of developers there's
a ton of surface area on the platform
and will need all the help we can get
considering that all of Zed's users are
programmers it makes the most sense to
open Zed to the maximum pool of talent
this is a really good point since
everyone using Zed is going to be a
developer letting them contribute to it
makes a ton of sense makes a ton of
sense really cool to see them thinking
in this way on a more selfish level we
also think going open source will be a
lot more fun one of our favorite aspects
of software is connecting with people
we're not only proud of what we've built
but also how we've built it we want to
share Zed's inner beauty with all of you
and we're confident we'll learn a lot
from you in the process to make it even
better they're also introducing this
idea of Fire hacks where you can hang
out with people in The Zed channels talk
with other developers people
contributing people not and they'll be
running Fireside hacks in them where
they work on Zed live and a public
Channel this is super cool I love these
like Community opportunities to hang
with people really nice stuff and then
they talk about the money aspect cuz
this is important too CU they're a
startup they need to make money
eventually and they say specifically
that they strongly believe the best way
to build and maintain the world's best
editor is by associating it with a
sustainable business model it's the only
way they can continue to invest in a
full-time team to spearhead Dev some may
wonder if making it open source
undermines that objective but they
thought about it a lot and they don't
think the openness is at odds with the
commercial success rather than selling
you a proprietary editor we'd much
prefer to sell you services that
seamlessly integrate with your Editor to
make you and your team more productive
said channels is just one example it's
free for anyone today but they intend to
begin charging for private use after a
beta period of experimentation providing
serers side compute to power AI features
is another monetization scheme they're
seeing getting traction and I've seen
this more and more with companies
recently where they're trying to become
a standard first and then monetize later
I think it works really well I'm curious
to see how it goes for an editor
nobody's really tried this at this
integration level usually editors either
charge or don't make money charging
later to make money is an interesting
strategy that requires more investment
for them to find success but seems like
they're building something really
special here and I'm excited to see how
it goes for them they're not at one
point oh yet though so know this is
still early but it is a really exciting
rewrite I want to play with it so I
guess there's nothing else to do other
than click this download button so let's
do it download for Mac OS one more thing
of note at this point in time Zed is Mac
only they do plan to support other
Platforms in the future but let's be
honest with the things that they're
targeting Mac devs are going to be the
majority of users anyways and they'll
certainly be the majority of potentially
paying users in the future so as a
business tries to figure out if they
have something with traction that could
possibly make money in the future it
makes a ton of sense that they're not
supporting windows and Linux just yet
anyways here is Zed one of the cool
things they actually have a Vim mode
built in does that mean this is
officially Prime agine approved to be
determined I don't have Vim bindings in
my head anymore so I'm not going to
check that they really thought of the
setup process here where you can pick a
theme doesn't seem like they have the PO
Manders theme I don't know you could
install custom ones or not but they
don't have my preferred one which makes
sense it's a pretty Niche theme so let's
go with the default for now choose a key
mapping vs code yes please don't make me
learn new things it's cool that they let
you take the mappings from other
programs and the default is vs code
where they're just copying the vs code
keepy bindings really good idea don't
make me learn all these other new things
when I'm just trying to play with a new
editor and then install the CLI we'll
take a look at the upload thing public
code base so cool here's our project it
is very minimal I've seen people saying
that already but I do like how how muted
things are I don't love the lack of
color in the icons cuz like I can
mentally map things when they have color
but it's also like almost everything's
just TS TS TS TS in blue so how much
does that really matter debatable I
don't know if you guys know this but the
VSS code CLI is slow as [ __ ] so if I
type code period we're going to press
enter right now and that took like a
second plus to switch over I actually
have a custom binding that you might
have seen me use C that is an alias that
just calls the vs code application
directly and when I do this instead I'm
going to press enter right now it's
literally instant and as seems to care
about that this lets you load the
application way faster and the specific
CLI thing they're using to get those ARs
and parse them is just not very fast
let's start by playing with the hot
keys that worked great is there a Hut
key for hiding and showing the sidebar
command B that's
Snappy scrolling feels a little Jank I
don't know how much this will come up
like in the recording because I'm
recording 30 FPS even though my screen's
running
120 but the scrolling feel
less good this is actually something I
noticed when I first played with Z is
that scrolling felt a little
weird yeah a ton of inertia that's a
good way to describe it Vim Tim in chat
so love that a vimmer has opinions on
this one thing that really annoys me in
vs code is when I'm trying to delete
like a section of text so let's try and
delete here up to functions CU When I go
here it Scrolls too fast this is way
better for that already it's a small
thing but these are the things I want to
test CU I want to see what my day-to-day
is like in this editor let's say I want
to delete everything from line 122 to
like 200 something let's say to 205 how
easy is it for me to get to exactly
205 that was pretty easy versus in vs
code we'll start at 122 and I want to
get to exactly
205 and it Scrolls way too fast no
matter how far you go and it's a good
bit harder I've had a lot of annoyance
with that why not scroll down to the
line and shift click cuz I don't think
that far ahead probably a good call oh
look at that they light things up bright
green when there are changes in git okay
am I crazy or does that icon look like
Source control to you cuz this icon
looks to me like Source control not like
files I might be insane but that looks
like a source control icon with the
branching how fast does the git update
that's a good question too and let's see
what
happens that was instant that was
instant good [ __ ] yeah vs codes is not
anywhere near that fast now all these
things are staged you can't even see it
in vs code commit DM init
commit and vs code doesn't update these
things in the background in order to see
the update I have to go back here and
then it will update but I bet some older
files oh no it updated everything I'm
sure all of you that use VSS code really
hard have had the problem where it
doesn't see certain things have been
commit some things haven't been commit
and it just yells at you the whole time
didn't do it there I've experienced it a
lot I know y'all have too it's really
cool that Zed does not seem to do that
and is like weirdly
immediate I don't love this icon what is
this move to a new file I don't love
that UI don't know what this does or is
for it seems like probably one of their
weird AI things but can I see if Zed
supports Auto rename tag interesting
thought let's first off test the
typescript go to definition here's our
trpc proxy client let's rename symbol to
internal API rename no there's no like
confirmation button or something I would
assume there' be like a button at the
bottom here that says go nuts what is
this Mt about why why is this upset
about the type definitions oh it's the
es lint I think the es lint is out of
date but the types script isn't because
you can see here I have the type
definition but eslint is saying it's an
unsafe assignment of an any because
eslint didn't get the change that we
have a different name for this thing
internal API now very interesting very
interesting I have saved the changes
they've been saved in all the files that
I did them in so they also get this sync
issue in VSS code I get the issue where
I have to reset the typescript server
but usually the es lint server catches
up es lint being broken separately is
new to me is there a reset there's
restart language server it looks like
while I was doing that this corrected
itself interesting it might have been
because I hadn't opened this file since
the change and it was caching that
editor level I can't know any of this
for sure the goal here is just to like
play with it and see which quirks it
does or doesn't have if I should
actually commit to using this editor for
a bit again let me know in the comments
and I'll give it a shot for a little
longer other people are saying they
often have to reset es lint more than
they have to reset the typescript server
very interesting someone else pointed
out it's cool you have es lint support
out of the box I absolutely agree having
es L to typescript in all of this
without any plugins CU like I don't have
any plugins installed on this I don't
have anything installed right now like
here are my settings there's nothing
let's try some other fun things more
typescript quirks I should be able to
command click hello and get to the trpc
function in the server folder and it
works dope having that type of deep type
inference is essential for any editor
that I use so if I'm in some client or
like user facing code and I want to
quickly do anything like I want to just
figure out where this is coming from or
like make a change to what it's
returning having command click working
here is huge and the last time I played
with a zed this was not working
previously it would bring me to weird
places in like my type definitions for
trpc itself now it actually goes
properly all the way to the place where
this is written hopefully it still does
this on client components one way to
test that it still does good stuff
should I actually try typing now cuz
thus far I have avoided actually editing
in the editor let's see how this feels
this is a test to see how typing here
feels overall I'm impressed the auto
comment continuation is also a nice
touch I don't know if you guys saw that
it's hard see cuz I don't have my key
presses on screen but when I press enter
it continues the comment for me that's
really nice it's doing some type of Auto
formatting here too not quite as much as
I would have liked but let's see if I
tab this out that looks like it's doing
pretty your stuff properly Mark pointed
out there was a lot of pop-ups when I
was typing here when I wasn't typing it
in a comment there was but it seems like
when I'm in a comment it chills out but
when I'm typing here this is a test
typing yeah the um the spam of like it
trying to autocomplete [ __ ] is a little
annoying because it's so fast that it
does it quickly but it just it flashes
all over the screen when I'm typing like
do you see how annoying that is that
would piss me off so much I would just
add a debounce to that so when I type a
letter you don't prompt me with that
until I've waited for at least a few
milliseconds that I also find this
really annoying ESP when I'm making
content because I'll be typing something
and just my screen's flashing all over
the place and it makes the video super
distracting so for me in particular
that's kind of a no-o yeah also the
dialogue should be smaller people are
saying it's pretty big I will say I I'm
on a 720p effective screen when I'm
doing content so I don't know if it's
less bad in other cases but now it's
taking up a ton of my screen that said
VSS code sucks about this too and I type
trpc like it still starts to do things
but it's nowhere near as brutal about it
the jsts server immediately crashed five
times great sign responsive test this is
me getting a gut feel of the
responsiveness in vs code this is me
getting a gut feel of responsiveness in
said I'll be honest guys doesn't feel
much
better just typing like that does that
come off in the video does this seem
faster because it doesn't feel very
different to me curious if that Quirk
was still happen in comments what happen
here I am adding cool it does not so
when I press single quote or double
quote double quote it will automatically
double up but single quote it won't
because a single quote might be a
contraction but a single quote here
doesn't necessarily know that and it
always doubles it up so when I'm doing
I'm now m is surrounded even though it's
in a comment so kind of annoying that
when I'm typing a comment I have to go
through and delete a bunch of things
it's randomly adding for me I'll be
honest I've always been annoyed when you
make a tag and it autoc closes it for
you I don't want that on single Pern in
a comment ever but in general I've never
been a big fan of it so I am biased
there one of the really interesting
things that Z's trying to do different
is focus on collaboration most editors
have some crappy plugin where you can
share an instance and I'll be honest
every time I tried it was a Jank
experience I've never had a good time
using VSS code with two people on
different computers and usually I just
prefer to screen share and Discord or
something I am curious how this works
with multiple people working in one
thing together first off there's a chat
which is actually really nice to have a
built-in live chat they have a concept
of channels where I can create a channel
if anybody has Z let's try it we're
going to make a t3g channel it wants my
microphone is there a way I can mute
that oh there it is it's in the top
right corner very interesting to have AV
built into the editor also a share
screen option so I can share my screen
Beyond just the editor so if I want to
showcase like what I'm actually working
on like I want to showcase what the the
browser does in the background while I
make changes really cool that it
supports that can people join the t3g
channel is this public or private how
does this work cool I trust you Yash I
don't want to call you no I sorry I do
not think just clicking your name would
call that's uh unintended I am sorry I
don't know how to stop calling either
there's no way to do that remove contact
yeah just on a call yeah the UI for this
is a little Jank I do not like that I
can accidentally call somebody by
clicking on their name like call things
should should at least have like a
separate button for it there's no
rightclick Behavior at all like I'm
right clicking on people and doesn't do
anything I just don't get this join
Channel none of these things appear to
be doing anything it still has me
calling Yash and I don't know how to to
stop that does revoke right access do it
no share leave call okay that was dumb
on the channel invite members oh I can
just make it public and now you have
been invited aore there's join Channel
and open Channel notes okay the channel
notes is this thing in the middle here
so we can save like a markdown dock
notes hi friends aore are you able to
edit those notes is this safe though can
you run a terminal command fantastic
question oh hi from aore hi aore do you
have access to my terminal here let me
try can't open my terminal can you see
what I typed in it though you have your
yours open cool um yeah I'm very curious
how much you do and do not have you
can't even see it interesting I have
mixed feelings on this on one hand it's
actually pretty cool to think about your
coding environment as a a shared
collaborative place can you see that
you're on your project you already did Z
clab at work it's fun oh interesting I
have mixed feelings on this it's a
really cool idea to have good
collaboration tools baked into your
editor it gives you a ton of Opp
opportunity to innovate in ways like a
plugin simply can't and I like the idea
that it's not a plugin for this like the
vs code live share plugin despite being
somewhat baked in is pretty Jank this
despite being early and Jank feels like
it has more potential to integrate deep
in and I am excited to see where it goes
but the ux is rough like the fact that
when you click someone's name it starts
an audio call with them in my editor is
terrifying to me I hate that that's
that's not something I can support like
ever and I will probably be disabling
this feature until there's like a major
update I want to better understand what
the AI autocomplete experience is like
oh I can sign in for co-pilot here cool
co-pilot is
enabled look at that we got co-pilot
working dope pump that even though they
have aspirations to do their own AI
stuff that co-pilot is already built in
and working as I would expect that's
dope it's nice that I don't feel the
need to run and grab any plugins there
are little things that I've been using a
lot in vs code recently that I like I go
through my extensions obviously having
language things like um Astro and such
is really nice I love cloak for hiding
Secrets Dino is nice to have support for
directly they already have es lint built
in they have co-pilot built in haven't
played with their git stuff I'm not a
big G in the IDE person but a lot of
other people are so that'll be missing
which is notable the things I've been
thinking about though obviously my
themes I love the PO Manders theme it'd
be really nice if they had a way to
import VSS code themes because it's like
a standard-ish syntax somebody will
probably hack that or at least make a
converter in the future it seems like
it's doing all the prettier stuff for me
already so that's cool the two I was
thinking of the that I'm going to miss
are pretty typescript errors and quick
lint JS these two plugins are very good
I already have a video for pretty
typescript errors the typescript just
got so much better if you want to know
more about the pretty typescript error
plug-in check the video out it required
a ton of hacks by the dev to make it
work but the results super cool and I
rely on it a ton you can see here that
it will actually make you this nice
printed out formatted error thing
instead of the absolute mess that
typescript normally gives you super
super cool and then quick lint if you're
not familiar I haven't made a video
about this yet it checks for a bunch of
basic JavaScript typescript things like
using an equals accidentally in an if
statement awaiting something that isn't
async little type errors that are pretty
common and it's super super fast so you
get feedback like immediately which is
really cool that like on each character
you're getting feedback I've been
enjoying quick lint quite a bit and
again let me know in the comments if I
should do a whole video about quick lint
because it is a pretty cool project but
in order to care about those things we
first need to see how Zed handles when
you do something wrong so let's spell
post
wrong how quickly when I add the T will
I no longer have a type error pretty
quick and if I have the type error and I
hover over oh no it's the super
unreadable type
errors also if you notice I get
different type errors depending on how
far in I am because these are all
accessing an unsafe any I don't know if
vs code is smart enough to not do that
but there's only one way to check so
have here we get the nasty tyri error
but then we get the much better
formatted error from the Pretty
typescript error plugin but over these
further down things now this is all the
unsafe any yeah so equally bad there but
at least I can use my plugin here which
I cannot use in Z in my opinion if Zed's
goal is to make something better enough
than vs code that we all start switching
these types of ux wins are a really big
thing if you can do them because if you
produce enough of these wow moments for
a developer that might not know about
these plugins might not know about these
other things this can be a huge huge win
for building like positive sentiment and
getting them to go shill it to their
friends and getting me to talk really
positively about it in a video all those
types of things seeing if there is do
they have any plugin system at all I
don't think they do not upset with it in
any way one more thing we should
probably test is auto importing what's
the I can import okay we have the create
post deleting this component deleting
the import for this component let's try
mounting it
now the flash of that is so annoying and
also that all these mdn references come
up before my own code like I have to
press arrow down how many times to get
to my thing and also the width of this
changes that's Jank that feels not good
that all like this UI shifts around as I
try to get to the right thing and that
what I'm here for is so low priority I
have to type the whole word create and
even just type in create it still has
credentials container canvas capture
media and all these other things that
don't start with create because the
fuzzy search sucks create all those
letters are in order in credentials
container it has the letters for create
in order but something that starts with
create should be first for sure this is
[ __ ] these are the little things that
like are hard to get right that will be
fixed over time but feel Jank right now
and if the goal of something like Zed is
to offer a meaningful user experience
improvement over vs code these things
matter way way more so that's a little
disappointing if I click it did it Auto
Import correctly it did cool so at least
the auto importing works but the ranking
there was terrible I'm happy I checked
that one good one is EnV this is a new
project so this won't leak anything but
it looks like it would have if I hadn't
like been sure that it's good ahead of
time is that a that's a no co-pilot icon
something I have to rely on is the
ability to hide secrets with something
like cloak because there's nothing worse
than accidentally exposing your secrets
on stream if I go to here I can turn on
cloak and now you'll see all the secrets
are hidden very very useful and I try to
turn this on before I stream code so
that I never accidentally leak
environment variables again these things
are small but enough of them add up and
one of the things you need in order to
win with a challenging new product like
this is you need to win sentiment from
the people who can sprad spread that and
share that sentiment so I as a a creator
with reach as dumb as it is that I'm
saying you should prioritize my quirks
and my needs because most users won't
benefit that much from having their
secrets autohide it makes me more
confident when I use it to make content
which then reaches the users you want to
potentially have this is the thing I've
been talking with a lot of companies
about especially when I'm Consulting
it's the idea that targeting creators
despite their weird needs that might not
overlap with your users it's actually a
really powerful tool to hit product
Market fit earlier and get your product
in front of others earlier there's two
reasons one we have the reach so if we
can use the product we'll reach that
audience but two and arguably more
important if you can't win us you can't
win our fans creators and influencers in
these spaces especially nowadays deeply
understand the things that their viewers
and Their audience want to use and work
with we might be pickier but we're also
more understanding and we're more
willing to have these conversations and
hear these things out and I've regularly
been surprised at how much value I and
other creators can bring to companies by
giving feedback on the product and why
we would or wouldn't use it we are kind
of a representative minority of the
space because in order for us to get
people to watch our videos we have to
understand what they like and what they
resonate with and with that deeper
understanding we're often positioned to
to give better feedback and also we
spend more time thinking about what our
audience would like so if you can't
convince us to use your thing despite us
having that mindset where we can think
kind of the way all of our different
viewers think and all the different
groups and if you can't convince us that
it's good enough for one of those groups
it's going to be really hard to convince
them yourself so again I feel bad saying
make the things creators want but if
your target audience is the people who
watch those creators making them happy
can help a ton I will say I'm impressed
especially when you consider that they
don't get to lean on much existing work
here like they have treesitter in fact
the treesitter devs are some of the core
team for Zed they have the typescript
language server running in the
background and allowing them to get all
the data they need here but they are
missing a lot of the pieces that exist
because of the size of the existing VSS
code and JavaScript ecosystem like
another thing people just brought up is
the Tailwind auto
complete oh wow looks like they
hardcoded the Tailwind auto complete in
it's
PT this I don't love like weird things
get mixed into the autocomplete but at
least that works does it have the hover
to see the actual CSS that applies it
does not interesting and does the
prettier organizer organize things
correctly it does not okay so this is
again like because they can't lean on
the existing tools they have to build
their own versions of it so we do get a
lot of the Tailwind autocomplete help
here which is really nice like I can
Tailwind like group or Tailwind like
lgp whatever and it's smart enough to
know what that is but it doesn't let me
hover over to see what these things are
versus in VSS code I hover over one of
these and tells me the exact class there
another thing it doesn't seem to support
that I push really hard is the auto
sorting prettier plugin for tailin which
makes your tailin code way more readable
because everything's in the same order I
intentionally put this padding too far
forward because now when I save it's
going to get moved to the right spot
which is in this Chunk in either the
middle or the end depending on which
classes you have that has all the
padding behaviors I've learned this
order it's really good the prettier Auto
sort Tailwind plugin is dope and I
genuinely think everyone should be using
it if they're using Tailwind so not
having that sucks because they didn't
Implement prettier bindings they
implemented a bunch of prettier
functionality into their editor they
didn't implement the Tailwind plugin
they implemented a bunch of Tailwind
functionality into the editor this is
also why open sourcing is so important
because if they didn't open source
building and maintaining all of these
things becomes really really difficult
really really quickly and I'm hopeful
that the choice to open source will make
it more likely the community supports
these things going forward that said if
the Tailwind stuff is written rust I'm
curious to see how that goes we can
check the source code quick
though interesting they have the tail
and prettier plug-in package it should
work then although if you think about it
it's pretty wild to see tailwind and
prettier in the source code of Zed
especially when you compare to like the
vs code GitHub if we search in here for
Tailwind nothing search in here for
pretty a they might use it but it's not
part of vs code itself because these are
all plugins that are external extensions
whereas with zed these are all built-in
features and rust I don't necessarily
love this but open sourcing is a huge
step in making future extensions that
are more usable also how hilarious is it
that Tailwinds considered a language the
point stands having to support things
that deeply in your editor is a scary
thought and the amount of work that the
poor Zed team has had to do to create
all of these bindings is a little
terrifying oh no oh no I see what
they're doing since Tailwind is a subset
language not a proper Lang language
which obviously Tailwind is not a
programming language in order to get
their auto complete in their adapter
working in all the other places you
might use Tailwind they had to manually
bind the Tailwind parser to every
language you might use Tailwind with
including we not limited to CSS Elixir
heeks hex I've no idea what heex is TSX
JavaScript HTML Erb spelt PHP and more
referen coming up there but yeah the
fact that they have to bind Tailwind
hardcoded to every single language for
it to work is incredibly not extensible
and again with like not having plugin
support for other things like Tailwind
to exist or for Tailwind changes to
happen or God forbid Tailwind version 4
has different classes than Tailwind
version 3 you're [ __ ] the fact that
these language parsers have to have such
weird additional assignments made for it
to work is scary also like the first
line in the language in nit is an Elixir
settings register so Elixir has to do
some special things and they always run
this code even if you're not using
Elixir so these types of hacks are
necessary when you don't have a plugin
system and they're a little
scary that said they did just open
source this code and I'm not here to
just [ __ ] on people's code like this
isn't bad code it's scary to maintain as
an open source project and that's a
thing we should think about and be
honest about they do have a plugins
directory interesting for child and
children if okay path child path config
read language config if it matches then
they register it enter interesting yeah
and they're registering it through a
wasm layer too that means they can
safely run rust code in like a
virtualization layer and also they can
run other languages including JavaScript
and typescript this is very interesting
how this is architected I'm even more
excited about reading through how that
rewrite worked so again let me know in
the comments if I should make a video
about the whole rewrite the file for all
the language support including loading
plugins is under 300 lines of code
that's not too bad and enough you
pointed out that GPI is cool that I'll
quickly touch on it it is actually
really interesting the goal of GPI is to
do a GPU accelerated UI framework
written in Rust so that you have rust
code that runs native UI there hasn't
really been anything like this before at
least that I know of they've stated a
lot of their goals here and actually
really surprised the quality of what
they've written here they point out
there three different registers that
they've created depending on the way you
want to build this UI interesting this
is Swift UI I know most of y'all aren't
Swift UI users but this is Swift UI this
is the Swift UI sytax look familiar yeah
that is fascinating to me I haven't
talked much about Swift UI and I have a
lot of opinions but I think they they
took the right lessons from react and it
is interesting to see other things doing
it I am very curious about the decision
to use div here as the example is Zed
using a web container that's rendering
divs or are they rendering native UI
wasum is not a UI layer it has like if
this is running in a browser shell this
is would be wum doesn't I don't care
about how where it's running I care
about what it's rendering to does this
render to some type of extension of a
canvas or a dawn or is this making
native UI with like GPU calls cuz they
pointed out that it's GPU accelerated a
GPU accelerated UI framework for rust
create a new window with app context
open window and register your first view
there is nowhere near enough info here
seems like it's running native I'm very
confused by the choice of using a div in
their example because if you're deep
enough in web that you don't know this
divs are a web concept even react native
doesn't have a div like if you write
react native code you cannot render a
div in it you have to render a react
native view or text element leveraging
rust in the GPU to render user interface
at 12 FPS they're calling out my concern
if like divs are slow because you're
doing the web layer good old Evan
Wallace code if you don't know Evan
Wallace he also created es build this
dude is like the JavaScript and
JavaScript accessories performance
wizard yall remember in my recent video
where I said game devs don't appreciate
the web and US finding new ways to
render and render because they're still
trying to get text to render and a bunch
of people in the comments were like you
don't know anything about Native devs
and like performant Dev if you think we
don't know how to R text or you think
that's hard to do here's a five page
section on why it's not that easy to
render text you stupid [ __ ] I'm
sorry but like if you're building native
stuff and you're trying to build native
stuff for performance reasons you do
have to care about how text renders and
as you see here it is not easy to do
they also cited the Pathfinder crate
which seems to be the existing rust UI
rasterization layer that they didn't
think was good enough for their needs
fascinating this is proof they're
actually doing native code code they're
not doing things in the browser which
makes me really confused about the
choice to have like div and flex all in
their example because div and flex are
both very Web Concepts as well as
justify Center item Center all these
things are very Webby if you have the
opportunity to build something new from
scratch I'm a little confused why you'd
bring the web Primitives somebody said
they just picked the name div instead of
View kind of but they also picked Flex
they also picked justify Center and item
Center they're taking a lot of the way
we do things in web which is very
interesting and not necessary react
native took very little from web they
took a bit but not a lot and even things
like Flex they they tried to take but
they they built them differently like
it's a silly thing but a really
interesting example of how react native
differs from react for web by default
react web Flex boxes are horizontal and
you have to specify B vertical react
native Flex boxes are default vertical
you have to specify horizontal it's a
small detail but these things add up as
you swap between platforms a lot I'm
interested in why they chose to go the
web Direction here there's a lot going
on in this project and I'm really
curious to see where it goes from the
Native layer and rust for the GPU stuff
to everything they're doing with collab
and AI there's an interesting thing
going on here and I'm really excited
that it's not just happening but it's
now open source I don't see myself
leaving vs code anytime soon but I am
excited for a future where there's more
competition and more Innovation
happening within our editors what about
you do you still use vs code have you
made the switch over to Vim or are you
one of the few remaining Sublime Text
holdouts that just won't move yet I'd
love to hear what you're using if you
want to see me make vs code even worse I
have a great video in the corner here
where I let chat decide what I would do
to my vs code and I promise you it's
terrible see you guys in the next one
appreciate you all a ton peace NS
5.0 / 5 (0 votes)