WEBVTT

NOTE
This file was generated by Descript 

00:00:05.049 --> 00:00:09.039
Raphaël: Hey friends and welcome
to the Small Tech Podcast.

00:00:09.129 --> 00:00:11.889
I'm your host Raph from Éphémère Creative.

00:00:11.889 --> 00:00:17.109
And today we are going to be talking
about development environments.

00:00:17.919 --> 00:00:20.379
So before I keep going.

00:00:20.649 --> 00:00:23.679
I'm going to specify that I do not mean.

00:00:23.979 --> 00:00:30.279
Sort of dependency management, package
management tools tied to a specific

00:00:31.179 --> 00:00:39.659
programming language or environment,
um, and for the non-technical among you.

00:00:40.289 --> 00:00:41.189
Essentially.

00:00:42.119 --> 00:00:45.179
Well, we'll, we'll go into
the why uh, I think that'll,

00:00:45.209 --> 00:00:46.469
that'll clarify some things.

00:00:46.679 --> 00:00:51.809
So why are we talking about,
uh, Development environments

00:00:51.809 --> 00:00:53.369
and tools to manage them.

00:00:53.849 --> 00:00:55.289
Uh, because.

00:00:56.159 --> 00:01:00.539
While a lot of work is
complicated and depends on a lot

00:01:00.539 --> 00:01:02.939
of tools and it can get messy.

00:01:03.569 --> 00:01:07.649
I have found personally that
development environments are among

00:01:07.679 --> 00:01:13.859
the messiest most complicated types
of environments to deal with, um,

00:01:14.009 --> 00:01:15.959
at least in sort of knowledge work.

00:01:16.439 --> 00:01:17.159
So.

00:01:17.719 --> 00:01:22.969
To fix the problems that
come with that messiness.

00:01:23.469 --> 00:01:28.089
I think there's, there are a lot of
really useful tools that you can use

00:01:28.089 --> 00:01:30.069
to manage development environments.

00:01:30.569 --> 00:01:34.409
And I think they're very,
very worth exploring.

00:01:34.909 --> 00:01:38.269
Um, so why do we use
these specialized tools?

00:01:38.569 --> 00:01:40.729
Essentially you want to have consistency.

00:01:41.449 --> 00:01:47.149
Developers often need to install
different types of databases or

00:01:47.329 --> 00:01:53.869
libraries and tools and services and
all kinds of stuff, uh, that they need.

00:01:54.229 --> 00:01:58.039
To do their work to build
your software product.

00:01:58.539 --> 00:02:04.239
And sometimes they'll install a command
line tool and another developer will need

00:02:04.239 --> 00:02:05.979
to install that same command line tool.

00:02:05.979 --> 00:02:09.459
If they want to do the same
kind of work or get the same.

00:02:09.959 --> 00:02:13.199
Software up and running on their
machine so they can collaborate

00:02:13.409 --> 00:02:17.339
or they might need to install a
database and they need to make sure

00:02:17.339 --> 00:02:18.689
that they're on the same version.

00:02:19.349 --> 00:02:21.659
And they might need to install.

00:02:21.659 --> 00:02:22.919
I don't know something else.

00:02:23.129 --> 00:02:26.849
Maybe they need to run some scripts
before they get up and running.

00:02:26.849 --> 00:02:31.589
So you'll write some software
to make sure that your software

00:02:31.649 --> 00:02:33.269
is ready to start building.

00:02:33.899 --> 00:02:39.059
Um, and all of those things get really
messy if you don't have a nice way.

00:02:39.479 --> 00:02:45.029
To get them playing together
correctly, especially when different

00:02:45.029 --> 00:02:46.649
developers have different machines.

00:02:46.679 --> 00:02:49.859
And as a, as a company, you could start.

00:02:50.309 --> 00:02:56.189
Uh, sort of mandating a very specific
machine and, and controlling how

00:02:56.219 --> 00:02:57.689
your machines are provisioned.

00:02:58.469 --> 00:03:02.489
Um, as a smaller company, that's
kind of hard to deal with.

00:03:02.519 --> 00:03:06.569
You might not have an it team that
deals with that sort of thing.

00:03:06.599 --> 00:03:08.009
And developers are kind of picky.

00:03:08.039 --> 00:03:09.989
They kind of want their
own, their own thing.

00:03:10.319 --> 00:03:11.609
Uh, they have their own way of working.

00:03:11.609 --> 00:03:18.209
Of course they have to conform to some
extent to your process as a team, but

00:03:18.209 --> 00:03:21.809
they're going to have little things that
they, that they like to do differently.

00:03:21.899 --> 00:03:25.379
Uh, not in the code, but in how they work.

00:03:25.949 --> 00:03:28.499
Um, All of those things.

00:03:29.369 --> 00:03:34.139
Basically can get really hard to manage
unless you have tools to make sure that

00:03:34.139 --> 00:03:36.539
certain things always happen the same way.

00:03:37.469 --> 00:03:41.039
Um, The, so, yeah, consistency.

00:03:41.069 --> 00:03:44.039
You want to make sure that everything
happens the same way and the reason

00:03:44.039 --> 00:03:48.839
you want to do that a is just because
you don't want people wasting a

00:03:48.839 --> 00:03:52.439
lot of time fiddling around with,
well, oh, what version of that

00:03:52.439 --> 00:03:53.819
command line tool did you say?

00:03:53.849 --> 00:03:57.419
Oh, but like, I actually
upgraded the database.

00:03:57.419 --> 00:03:59.969
And so you're going to
need to do that on yours.

00:03:59.969 --> 00:04:02.999
Otherwise the new code isn't going
to, like, you don't want to waste

00:04:03.029 --> 00:04:04.109
time with that sort of thing.

00:04:04.799 --> 00:04:09.269
Um, The other thing that I
find particularly useful about.

00:04:09.769 --> 00:04:13.189
Using tools to manage
development environments.

00:04:13.609 --> 00:04:14.779
Is onboarding speed.

00:04:15.229 --> 00:04:18.859
So if you have a lot of steps
that someone needs to take.

00:04:19.279 --> 00:04:24.709
To get a part of your application or
your whole application up and running.

00:04:25.339 --> 00:04:29.629
Then, if you can automate all of
that by managing their development

00:04:29.629 --> 00:04:32.599
environment, then you can get
them working a lot faster.

00:04:32.959 --> 00:04:34.819
There's usually one way or another.

00:04:34.819 --> 00:04:37.279
There's always going to be time spent.

00:04:37.609 --> 00:04:41.689
For a developer to get up and
running with your project.

00:04:42.109 --> 00:04:46.429
Uh, they don't know how your software
is architected and they're going

00:04:46.429 --> 00:04:47.869
to need to poke around at that.

00:04:47.869 --> 00:04:50.809
And they're going to read
documentation and they're going

00:04:50.809 --> 00:04:52.849
to want to read through the code.

00:04:53.239 --> 00:04:55.069
And they're going to want
to just mess around with it.

00:04:55.069 --> 00:04:58.369
So they get a sense of like
how it works and how it feels.

00:04:58.879 --> 00:05:03.049
Um, but you can get them
to that point a lot faster.

00:05:03.769 --> 00:05:08.779
If you have scripts and environments
that are consistent and just run.

00:05:09.319 --> 00:05:11.929
Uh, before they, yeah.

00:05:11.959 --> 00:05:15.019
Before they, even before
they have to do anything.

00:05:15.559 --> 00:05:18.019
Um, So, yeah, that's another thing.

00:05:18.019 --> 00:05:18.919
Onboarding speed.

00:05:19.309 --> 00:05:22.909
Um, the other thing that I found
particularly neat with, uh,

00:05:22.939 --> 00:05:25.789
with some of the tools that,
uh, I'm going to talk about.

00:05:26.269 --> 00:05:27.049
Is.

00:05:27.709 --> 00:05:31.459
You can treat development
environments as ephemeral when

00:05:31.459 --> 00:05:32.899
you use these types of tools.

00:05:33.229 --> 00:05:36.979
And so you can let your
developers kind of go wild.

00:05:37.279 --> 00:05:42.859
And they can break things and they can
completely destroy their environment

00:05:42.859 --> 00:05:46.909
as they're experimenting to try and
do something new or interesting.

00:05:47.629 --> 00:05:52.429
And it doesn't matter because you
can just turn it all down and turn

00:05:52.429 --> 00:05:54.439
it all off and spin up a new one.

00:05:54.469 --> 00:05:55.759
And there you go.

00:05:55.789 --> 00:05:56.779
You're up and running again.

00:05:57.499 --> 00:06:02.599
Um, we'll talk about how that
specifically works, but, uh, yeah.

00:06:03.499 --> 00:06:04.609
So the.

00:06:05.109 --> 00:06:06.549
So those are the pros.

00:06:06.549 --> 00:06:11.169
Those are the reasons I like to
use these types of, uh, tools.

00:06:11.829 --> 00:06:16.119
Um, But there are reasons why
you might want to not use them.

00:06:16.569 --> 00:06:18.999
Um, One is cost.

00:06:19.389 --> 00:06:25.089
So if you have a developer
running something on a machine,

00:06:25.089 --> 00:06:27.759
that's kind of a one-time cost.

00:06:28.029 --> 00:06:29.229
It depends how you frame it.

00:06:29.769 --> 00:06:32.019
But that machine you pay for it.

00:06:32.049 --> 00:06:32.619
You run it.

00:06:32.649 --> 00:06:33.249
You're good.

00:06:33.749 --> 00:06:37.949
And that developer can do things to that
machine and they'll run things on that

00:06:37.949 --> 00:06:40.949
machine and it doesn't change your cost.

00:06:41.549 --> 00:06:43.829
With some of the tools that
we're going to talk about.

00:06:44.159 --> 00:06:48.779
You actually have the cost of a
developer's machine, but you also

00:06:48.779 --> 00:06:53.549
have the cost of maintaining those
developer environments because some

00:06:53.549 --> 00:06:55.739
of these solutions are cloud-based.

00:06:56.339 --> 00:07:01.739
So there's a cost to running the
actual machines on in the, in the,

00:07:01.769 --> 00:07:05.339
in the data centers that power
your development environments.

00:07:05.879 --> 00:07:08.039
So that's, that's one downside.

00:07:08.069 --> 00:07:11.519
The other downside is on some
level of complexity, right?

00:07:12.019 --> 00:07:15.469
With simpler projects one way or another.

00:07:15.559 --> 00:07:20.359
If you're building an environment
for someone to work in.

00:07:21.139 --> 00:07:25.969
Um, the simpler projects won't have
that much additional complexity,

00:07:25.969 --> 00:07:27.229
but they might have a bit.

00:07:27.859 --> 00:07:30.409
Um, a bit more than if you just
tell the developer here's the

00:07:30.409 --> 00:07:32.179
code, just go run it yourself.

00:07:32.689 --> 00:07:38.629
Um, And, you know, getting them up and,
and up to speed with, with a new tool is

00:07:38.629 --> 00:07:42.409
just an additional layer of complexity
that you wouldn't have normally.

00:07:43.219 --> 00:07:49.059
Um, There's also a certain amount
of, I mean, there's this whole field

00:07:49.119 --> 00:07:51.219
that has developed over the past.

00:07:51.219 --> 00:07:54.819
However, I don't know, decade
that we refer to as dev ops,

00:07:54.819 --> 00:07:57.399
which is building tooling.

00:07:57.879 --> 00:08:01.149
Uh, some of it purchased tooling.

00:08:01.149 --> 00:08:03.729
Some of it is, uh, internal tooling.

00:08:04.209 --> 00:08:11.229
To help improve the flow with which,
uh, developers release their, their.

00:08:11.559 --> 00:08:12.339
Their work.

00:08:12.849 --> 00:08:14.799
Um, And.

00:08:15.399 --> 00:08:17.409
There's complexity that comes with that.

00:08:17.469 --> 00:08:20.499
When you're building development
environments, you're, you're

00:08:20.529 --> 00:08:22.059
customizing those scripts.

00:08:22.059 --> 00:08:25.119
You're saying, yep, we're going to
write all of this additional software.

00:08:25.599 --> 00:08:28.479
To make sure that when a
developer gets up and running.

00:08:28.989 --> 00:08:30.819
They have everything they need.

00:08:31.419 --> 00:08:37.239
To work quickly and efficiently, and you
might also be building tools to help them

00:08:37.239 --> 00:08:42.849
manage their software and package their
software and release their software.

00:08:43.299 --> 00:08:46.389
Um, And that's a lot of overhead.

00:08:46.889 --> 00:08:50.369
Depending on the scale of the
project that becomes very useful.

00:08:50.399 --> 00:08:50.759
Right?

00:08:50.789 --> 00:08:56.339
So if it takes one developer a lot
of time to do those things manually.

00:08:56.909 --> 00:09:01.679
Well, you might as well build software
to automate it or to help simplify it.

00:09:02.069 --> 00:09:05.669
Uh, there's also with all of that,
I feel like I'm going off on a

00:09:05.669 --> 00:09:07.979
tangent, but there's consistency.

00:09:08.489 --> 00:09:10.979
Uh, if a developer has to
do everything manually.

00:09:11.579 --> 00:09:14.909
And perhaps they have
to tweak the process.

00:09:15.389 --> 00:09:19.859
Then that lives in their head and the
other developers don't know about it.

00:09:20.039 --> 00:09:23.909
Uh, and so now you've got a problem
where if one developer's not available

00:09:23.909 --> 00:09:28.979
and you can't reproduce the work
that they've done to either release

00:09:28.979 --> 00:09:30.509
something or get it up and running.

00:09:30.989 --> 00:09:31.889
You've got a problem.

00:09:31.919 --> 00:09:39.329
So if it's all encoded as software, Um,
Whether it's development environments

00:09:39.329 --> 00:09:43.889
or releases or whatever, then you
know that you can always keep going.

00:09:43.889 --> 00:09:46.829
You can always keep working, you
can keep releasing your product.

00:09:47.099 --> 00:09:48.389
So that's the.

00:09:48.989 --> 00:09:49.979
That's why?

00:09:50.069 --> 00:09:53.939
Uh, yeah, that's another
reason why it's it's worth it.

00:09:54.929 --> 00:09:56.969
For a given complexity level.

00:09:57.469 --> 00:09:59.259
Um, In my opinion.

00:09:59.619 --> 00:10:02.939
Um, So what are the different
tools that you can use?

00:10:03.439 --> 00:10:04.699
We have used.

00:10:05.059 --> 00:10:09.289
Two different tools, uh, and
we're aware of two others.

00:10:09.739 --> 00:10:19.309
Um, so I have specifically used, uh, and
set us up on, on a tool called Coder,

00:10:19.489 --> 00:10:22.159
which I think is absolutely fantastic.

00:10:22.519 --> 00:10:25.279
Um, it is, it is really, really good.

00:10:25.969 --> 00:10:28.609
Uh, and basically it helps you.

00:10:29.149 --> 00:10:33.049
Provision environments you
use, uh, for again, for those

00:10:33.259 --> 00:10:34.609
of you who are not technical.

00:10:34.909 --> 00:10:42.889
Uh, Docker is a developer tool that allows
you to define what we call containers.

00:10:43.429 --> 00:10:45.229
And containers.

00:10:45.729 --> 00:10:50.019
Are there not like they're
not virtual machines.

00:10:50.769 --> 00:10:54.879
On some level, you can kind of pretend
that they're a little isolated.

00:10:55.299 --> 00:10:58.719
Workspaces that feel a little
bit like a virtual machine.

00:10:58.719 --> 00:11:01.269
So it's like running
little mini containers.

00:11:01.539 --> 00:11:05.229
Uh, many, many machines, many
computers inside your computer,

00:11:05.259 --> 00:11:07.089
but it's, it's really not.

00:11:07.719 --> 00:11:09.879
Um, but it can feel like that.

00:11:10.299 --> 00:11:15.399
And so if you specify what is supposed
to run in one of those containers,

00:11:15.399 --> 00:11:18.249
you can say, you know, install this
command line tool, install this

00:11:18.279 --> 00:11:20.499
database, this other thing, whatever.

00:11:21.069 --> 00:11:27.029
Um, And a Coder lets you specify a
developer's work environment that way.

00:11:27.779 --> 00:11:31.379
And so it will run that work environment.

00:11:32.099 --> 00:11:35.909
Uh, in a variety of different places.

00:11:35.969 --> 00:11:39.119
Uh, I think they're actually
changing their spec as well.

00:11:39.119 --> 00:11:43.109
So I'm not sure you have
to define things as, uh, as

00:11:43.589 --> 00:11:46.229
containers, uh, as Docker files.

00:11:46.379 --> 00:11:46.859
Um,

00:11:47.359 --> 00:11:50.479
And because I saw that the latest
version allows you to spin up a virtual

00:11:50.479 --> 00:11:52.579
machine on your cloud of choice.

00:11:52.969 --> 00:11:59.119
Uh, or you can run it on a Kubernetes
cluster, which is, again, for those

00:11:59.119 --> 00:12:04.489
of you who are not super technical is
a technology that allows you to run

00:12:04.489 --> 00:12:07.789
workloads across, across machines.

00:12:08.479 --> 00:12:10.489
Uh, that's the simplest way of saying it.

00:12:11.119 --> 00:12:15.409
Uh, and, and they offer other
deployment targets as well.

00:12:15.739 --> 00:12:19.579
Um, so they're kind of interesting
in, in that way and that they're, they

00:12:19.609 --> 00:12:21.259
can target different environments.

00:12:21.619 --> 00:12:27.229
Um, you can specify what the
developer environment looks like

00:12:27.229 --> 00:12:30.289
as a Docker file, but I think there
might be other ways to do it now.

00:12:30.859 --> 00:12:31.459
Um,

00:12:31.969 --> 00:12:36.919
And yeah, because of their structure,
you can also define the resources

00:12:36.919 --> 00:12:38.659
that you want to allocate to a given.

00:12:38.779 --> 00:12:39.679
Uh, environment.

00:12:39.679 --> 00:12:41.029
So you might be able to say, yep.

00:12:41.419 --> 00:12:45.769
Uh, this developer, uh,
environment should use.

00:12:46.159 --> 00:12:46.789
I don't know.

00:12:46.849 --> 00:12:50.119
Uh, eight VCPU and 32 gigs of Ram.

00:12:50.119 --> 00:12:54.439
Whereas this other one only
needs two VCPUs and four gigs

00:12:54.439 --> 00:12:56.299
of Ram, something like that.

00:12:56.689 --> 00:12:59.869
Um, really neat tool, a good
chunk of it is open source.

00:13:00.379 --> 00:13:05.749
And the reason we stopped using it is
because you have to run it yourself.

00:13:06.409 --> 00:13:11.419
And there's some overhead there
that, uh, we just didn't feel ready

00:13:11.419 --> 00:13:13.609
to take on, especially because.

00:13:14.419 --> 00:13:19.579
For a small company, you also
have to run the servers on which

00:13:19.609 --> 00:13:22.549
the development environment,
the developer environments run.

00:13:23.239 --> 00:13:24.559
And those can be quite costly.

00:13:25.279 --> 00:13:29.359
Um, so yeah, it didn't, it
didn't make sense for us.

00:13:29.809 --> 00:13:36.079
Um, especially when there was a tool
like the next one called GitPod uh,

00:13:36.079 --> 00:13:41.149
which they have a hosted version
where they run the infrastructure.

00:13:41.329 --> 00:13:43.489
You just pay them to use it.

00:13:43.639 --> 00:13:49.039
Uh, and so they can distribute
the cost among their users.

00:13:49.549 --> 00:13:53.719
And that makes it cheaper to run and
you don't have to run the infrastructure

00:13:53.719 --> 00:13:57.919
yourself, which also, uh, is a benefit.

00:13:57.949 --> 00:14:01.759
If you are a tiny company and you
don't have the bandwidth to be

00:14:01.759 --> 00:14:03.859
running yet, another set of servers.

00:14:04.459 --> 00:14:09.619
So that's yeah, that's uhh that's
what's  nice about GitPod Other than

00:14:09.619 --> 00:14:11.569
that they function very similarly.

00:14:11.659 --> 00:14:15.079
You define your development
environments as.

00:14:15.919 --> 00:14:19.129
As Docker files and
they run as containers.

00:14:19.789 --> 00:14:25.089
Um, They do not have the other
advantages that Coder has, where

00:14:25.089 --> 00:14:27.249
it can spin up virtual machines.

00:14:27.939 --> 00:14:30.009
And, uh, yeah.

00:14:30.279 --> 00:14:34.689
That means that you're also, you're
kind of stuck with, uh, well, yeah,

00:14:34.749 --> 00:14:36.279
you're stuck with their infrastructure.

00:14:36.579 --> 00:14:39.759
And they only define
two sizes of machines.

00:14:39.759 --> 00:14:43.329
I believe that's a four.

00:14:43.829 --> 00:14:44.279
Hm.

00:14:44.579 --> 00:14:46.559
I might have this wrong,
so don't quote me on it.

00:14:46.709 --> 00:14:49.499
I think it's for vCPUs and.

00:14:50.129 --> 00:14:51.359
Uh, like.

00:14:51.859 --> 00:14:55.249
Eight gigs of Ram or two VCPUs
and eight gigs of Ram and

00:14:55.249 --> 00:14:57.319
four vCPUs and 16 gigs of Ram.

00:14:57.559 --> 00:14:58.519
Something like that.

00:14:58.729 --> 00:15:02.509
Uh, so they're not huge, huge development
environments develop, uh, yeah.

00:15:02.539 --> 00:15:03.559
Development environments.

00:15:04.159 --> 00:15:07.939
Uh, so if you do have something very
heavy that you want to run and build

00:15:08.299 --> 00:15:11.059
a, you might want to look elsewhere.

00:15:11.269 --> 00:15:16.489
If not, it's a very, very easy
way to get started building in

00:15:16.489 --> 00:15:19.609
the cloud and having consistent
environments among your developers.

00:15:20.539 --> 00:15:22.819
And the other one that
I have not tried yet.

00:15:23.449 --> 00:15:27.919
Is, uh, is, uh, Docker's dev environments.

00:15:28.099 --> 00:15:29.059
So Docker.

00:15:29.569 --> 00:15:34.759
Uh, I mentioned earlier, the Docker is
used by coder and GitPod to define what

00:15:34.759 --> 00:15:37.099
the development environments run as.

00:15:37.099 --> 00:15:37.339
Right.

00:15:37.339 --> 00:15:41.359
So they manage the infrastructure
to get that up and running.

00:15:41.989 --> 00:15:46.099
And how you spend those up and how
you manage resources among developers.

00:15:46.729 --> 00:15:50.929
But the environment itself
is defined as a Docker file.

00:15:50.989 --> 00:15:57.289
So you can spin up these Docker based or
Docker file defined environments across.

00:15:57.829 --> 00:16:02.989
Uh, across machines with
coder or GitPod recently?

00:16:03.019 --> 00:16:08.629
Well, relatively recently, I think in
the past year, Uh, Docker has started to

00:16:08.629 --> 00:16:14.029
build out its own way of doing that, but
it happens on the developers machine.

00:16:14.509 --> 00:16:18.889
So you define the environment
with a Docker file, but the

00:16:18.889 --> 00:16:20.839
developer runs it on their machine.

00:16:21.769 --> 00:16:26.839
Now there are some benefits to this and
that you do not have any additional costs.

00:16:27.499 --> 00:16:31.579
But there are some disadvantages
too, in that there's still

00:16:31.879 --> 00:16:33.769
some complexity to manage.

00:16:33.799 --> 00:16:36.949
If you have developers with
different types of machines.

00:16:37.639 --> 00:16:42.019
Um, with the cloud environments, you can
guarantee a certain level of consistency.

00:16:42.199 --> 00:16:45.349
Uh, across the machines that the
developers are actually running

00:16:45.349 --> 00:16:46.969
their, their environments on.

00:16:47.509 --> 00:16:52.819
Um, if you're telling them to run it
locally on their own hardware, then

00:16:52.819 --> 00:16:57.319
you are stuck with whatever hardware
they've got, unless you have the

00:16:57.319 --> 00:17:01.999
resources to provision that hardware
and make sure that it is all consistent.

00:17:02.659 --> 00:17:08.539
Um, so yeah, that's a, that's another one
to think about, uh, No, I haven't used it

00:17:08.539 --> 00:17:10.819
yet, so I don't know how well it works.

00:17:11.059 --> 00:17:13.639
I assume well, Uh,

00:17:13.669 --> 00:17:17.979
and finally the last one is, uh, Nix.

00:17:18.569 --> 00:17:20.959
Nix is not something I have.

00:17:21.469 --> 00:17:23.449
Uh, tried at all.

00:17:24.019 --> 00:17:27.259
And it's not something I know
well, but I've heard a couple

00:17:27.289 --> 00:17:29.269
people talk about it recently.

00:17:29.569 --> 00:17:34.819
My understanding of it is it is
actually more of a package manager.

00:17:35.329 --> 00:17:39.139
Than a development environment.

00:17:39.639 --> 00:17:42.579
Like a tool to manage development
environments, but they also

00:17:42.579 --> 00:17:44.829
offer their own operating system.

00:17:45.399 --> 00:17:50.929
Um, and I think in tandem
being able to run their own Os

00:17:50.979 --> 00:17:55.359
with their package manager and
their tooling to manage Docker.

00:17:56.079 --> 00:17:57.639
Uh, containers.

00:17:58.269 --> 00:18:02.109
Uh, I think they functionally give
you something very, very similar.

00:18:02.289 --> 00:18:03.849
Um, yeah.

00:18:03.879 --> 00:18:08.489
I still feel a little
bit confused about Nix

00:18:08.889 --> 00:18:13.029
uh, but I figured I'd throw it in
there in case any of you listeners

00:18:13.059 --> 00:18:16.569
are interested in this stuff
and are looking to explore it.

00:18:16.929 --> 00:18:22.689
Um, I would love to hear what you all
use because making sure like running

00:18:22.689 --> 00:18:26.709
into that problem of, well, it runs on
my machine, but it doesn't run on mine.

00:18:27.009 --> 00:18:30.879
Um, is such a pain and it's so
annoying and it can cause so many

00:18:30.879 --> 00:18:33.339
problems and slow, so many things down.

00:18:33.789 --> 00:18:36.129
Uh, so I would love to hear
what you all are using.

00:18:36.219 --> 00:18:38.289
Uh, have you tried coder or get pod?

00:18:38.559 --> 00:18:40.829
Uh, what about Docker
dev environments or Nix.

00:18:41.109 --> 00:18:42.249
Uh, maybe there's other ones.

00:18:42.249 --> 00:18:45.999
I know there's code anywhere,
but they're more limited.

00:18:46.419 --> 00:18:48.219
Uh, Replit and others.

00:18:48.279 --> 00:18:51.849
Uh, I feel my instinct is
they're more like toys.

00:18:51.879 --> 00:18:56.949
They're less, they feel less
like places to work as a team.

00:18:57.489 --> 00:18:58.869
Uh, but maybe not.

00:18:59.679 --> 00:19:05.289
Uh, oh, I will add one last thing about
GitPod one thing that I quite like about

00:19:05.289 --> 00:19:12.309
them is that they treat their development
environments as ephemeral so they, you are

00:19:12.309 --> 00:19:15.129
encouraged through their user experience.

00:19:15.519 --> 00:19:19.629
To treat them as things
that you just toss out.

00:19:19.689 --> 00:19:24.669
So you get some work done on a feature
and then you get rid of the environment.

00:19:24.909 --> 00:19:29.739
Uh, and the idea is you should be able
to just provision environments, quickly

00:19:29.739 --> 00:19:31.359
work on some stuff, throw it out.

00:19:31.539 --> 00:19:35.529
And in a sense that kind of forces
you to make sure that the tooling is

00:19:35.529 --> 00:19:39.879
ready for the next environment to be
provisioned nicely, which means it should

00:19:39.879 --> 00:19:41.829
work for every developer on the team.

00:19:42.319 --> 00:19:44.329
But yeah, let me know what you all use.

00:19:44.329 --> 00:19:49.139
I would love to hear more and, uh, yeah
. If you want to hear more about this

00:19:49.139 --> 00:19:54.719
stuff, make sure to subscribe and we all
want to do something good in the world.

00:19:54.719 --> 00:19:57.719
So go out there and build something.

00:19:57.719 --> 00:19:58.889
Good friends.

00:19:59.279 --> 00:19:59.849
See ya.