Press "Enter" to skip to content

Questions and Answers – FunFunFunction #12


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

Please follow and like us: