good Monday morning this is fun fun
function a Monday morning show where we
try to come more excited and confident
about programming by exploring old
wisdom wild ideas and having fun last
Monday’s video was about funk tourists
and in that video I mentioned that this
video would be about Street sweeps our
pocket and that turned out to be a lie
not that streams are hunters they are
but I just don’t have the time to make a
proper video this week these videos I
don’t I don’t talk too much about the
production process of these videos but
the videos including script and editing
and everything takes uh six hours at
best but mostly they take around twelve
hours of effective time you know with
Christmas you always figure that oh this
is all like I don’t have any work so I
will have all this time to do things and
I can record videos and that’s not how
it works family arrives and I have to
make meatballs and it yeah there’s no
way I have the time to make a full
fledge video but I want to make a video
so I figure why not just try a QA I have
some questions that I picked out from
Twitter and YouTube and I figured that I
would just go through them and see if I
don’t know something interesting arises
what is your favorite JavaScript IDE
none I’m a recovering tooling alcoholic
whenever I find myself using a tool and
like any tool it could be a piece of to
do software I just get caught up in the
tool if I start using tags in email
software I spend like this enormous
amount of time at I’m doing this
labyrinth tagging system and developing
that I do that way more than actually
reading emails and for me I des and text
editors and stuff like that work yes the
same if I start going down that rabbit
hole
I find myself
just optimizing optimizing optimizing
and making myself more efficient in the
future that is why I use just plain Adam
with almost no plugins at all because
that is just to prevent myself from
getting into that dark place of just not
getting anything done I tried using them
for quite a while I really got
comfortable with it but the problem was
that I get them to a position where you
can use it in your daily work yeah you
have to work quite a bit or quite a bit
with it and that time is it’s time I
could spend doing things I don’t
necessarily encourage not using any
plugins but I just can’t do it what are
your thoughts on ramdom j/s oh I really
like Randa it’s for you who don’t know
Ram that is a it’s sort of the same
thing as lodash or underscore but it is
extremely heavily angled towards
functional programming so basically
allows you to do a lot of hacks Kelly
and closure II things in in JavaScript I
really like it and it’s it’s really
sleek why is it important to learn
Haskell not only dynamic sure if it is
important to learn Haskell I think it’s
important to learn and to learn a lot of
things I’m not sure if I’m a great
programmer but I’m sure that I do spend
a lot of time with great programmers at
work and the people I meet and all of
the people that I considered to be
amazing
programmers they tend to have they tend
to be kind of everywhere intellectually
they do have a specialization or
something that they are really good at
it just seems very important to use it
expand your mind of know a lot of things
in order to be good at one thing you
need to not get stuck in that single
thing and expand your horizons
constantly into other things and take
that stuff back into what you’re doing
you look like Keanu Reeves well dude are
you thinking about going all-out
typescript
I think no I think typescript is fine
it’s not
thing I’ve been looking at rust lately
and it is just amazing to work with it’s
so much fun and the type system just
helps you out so much and also looking
at Haskell there is a type system there
that is just amazingly cool but with
that said I think that types in
programming in general there is a over
belief in them I think there are things
in programming that are objectively good
and almost always a good idea no matter
what you do unit testing is one such
thing
version control types when I use typed
languages I feel like oh this is helping
me out so much why don’t I use this all
the time and then I do this other thing
and the type system just gets in the way
and I have to spend a lot of time like
querying the type system getting it to
do what I want to do it’s a nice tool
but I for me it’s I don’t know it’s a do
you have any thoughts about using mocha
or Jas testing mocha is probably still
the best choice for unit testing I used
tape right now for for personal project
of mine and I like it because it has a
certain like it feels very native to
note while there’s a bit of magic going
on with mocha but I think still like it
doesn’t offer enough advantage over
mocha in order to be like a valuable
switch because everybody is used to
mocha but I’m still frustrated that you
don’t have something better than mocha
by now mocha has been around ages I wish
somebody would do something cool and
revolutionary with unit testing while I
was involved in Ruby and the Ruby on
Rails community like they did a lot of
stuff with testing there all the time
and everybody has figured constantly
figured out how to do testing better and
I think that that is really lacking in
the JavaScript community and I find that
a bit bit frustrating can you talk about
the importance of making your code
legible and
tips for doing so that’s like ten
episodes worth of material yes don’t
make your code clever it’s so alluring
to be smart when you’re a programmer do
you figure out cooler and cooler and
cooler waste and tercer and tercer
interser ways I’ve never entered a
project or gone into a new codebase and
said wow I really appreciate all this
meta programming going on but that
doesn’t happen to me the best code is
often code that just seems dumb just
seems like anybody could have written it
but the truth is that being able to
write that kind of code takes a lot of
discipline and experience when you find
code that is written in very very smart
ways with a lot of optimization and
unmet a programming that code is very
often written by more intermediate
programmers who have not yet started to
appreciate the value of code that is
really easy to maintain maintain and
understand because in order to maintain
something you need to understand it what
are your thoughts on es6 classes if you
follow me for a while you you know by
now that I’m not a fan of classes it’s
not like I think that they should never
be used it’s just that I see them being
used so often but I guess I guess if you
absolutely absolutely just or hell-bent
on using classes you I guess it’s good
that they are in the language so that
people don’t do these weird everybody
does their own implementation I prefer
not to use classes if I can what foreign
languages do you know
I know Swedish that’s foreign to you
hey hey Carlos svenska I know English
that’s foreign to me and another little
bit of German learning a bit of
Portuguese at the moment because I’m
going to Brazil in August
everyone says use the best tools for the
job but how do you determine that if you
don’t know all the available tools yeah
I guess the
use the best tool for the job advice is
sort of like the dating advice of be
yourself it’s not super helpful in
itself in my mind I think that ideally
your tech choice is for a project should
be divided into two phases the first
phase should be your exploration you
write you you have this project you want
to do it and in that in that phase you
should use just the tool that you’re
familiar with that is as generic as
possible use PHP JavaScript Java or
whatever don’t I don’t concern yourself
whether or not it’s suitable and the
reason is that you have no idea about
where this project is gonna take you
you’re not even sure if you’re building
the right product or not or if you are
you’re not sure exactly how it’s going
to look or what the demands of it are
going to be so no matter what tool you
pick it’s gonna be the wrong tool it’s
gonna be sub-optimal so you might as
well pick a tool that you’re really
familiar with when you run into problems
at least you’ll know all the nooks and
crannies of the tool because you’re
familiar with it and you’ll be able to
exploit it in weird ways over time as
you get more familiar with the project
or your set of problems like for
instance like say that you’re
implemented in a event-based system or
something or rather you maybe it wasn’t
event-based from the start you just
turned event-based
during your development because you’ve
now accidentally gotten into event based
programming you will now be reading blog
posts and stuff and forums about event
based programming you will start to
gradually become more familiar with how
the programming community is solving
this problem and what tooling is arising
out of it
I really like to use Twitter as an
example they just started out building
Twitter as a side project using Ruby on
Rails and over time when they
their problem domain they eventually
moved to a Scala it’s called a back end
but there was no way for them to know
that that what that is what they needed
from the start because they they
probably didn’t know that Scala existed
I’m not even sure if Scala existed when
Twitter started out either way you start
out with what you know and once you
learn the problem domain start getting
into the problem domain on the Internet
and I promise that you’ll figure it out
that’s it I I hope there was some kind
of useful nugget in there for some of
you in the next episode we will do
streams ah as usual that episode will be
released in Monday morning Oh 800 GMT do
not miss it write it on your forehead so
that you’ll see it in the mirror when
you are awake in the morning until next Monday morning stay curious