
Go - with Joseph Woodward
Durée: 43m16s
Date de sortie: 13/11/2022
In this episode, I was joined by Joseph Woodward to chat all about the Go programming language. Joe has done a lot of dotnet in the past, but is now focusing more on Go - so an ideal guest to help us compare on contrast.Joseph is a Software Engineer at Form3, speaker, and open-source contributor. Lover of Go, OSS, Neovim and distributed systems things.For a full list of show notes, or to add comments - please see the website here
Hey, everyone, welcome to the Unhandled Exception podcast. I'm Dan Clark and this is episode
number 45. Now today I'm joined by Joseph Woodward for a chat all about the Go programming
language. Now I seem to be seeing this lately everywhere and a lot of open source tools
that I rely on heavily when I look at them on GitHub, they seem to be invitting Go too.
So Joe is an ex.net developer, but now a big Go developer and given a lot of the listeners
are probably.net devs, as am I, I thought Joe, who's used both C, Sharp and Go, would
be an ideal person to help us compare and contrast. I'm sure I'm not the only.net dev
who's a little bit curious about Go. So Joe, welcome to the show.
Hello, Dan. Thank you very much. Happy to be here.
OK, so could you introduce yourselves to listeners and tell us a bit about what you do?
Oh, goodness. All right. Yeah. Hello. I'm Joe. I live in the UK, Southwest of the UK, three children.
I've been programming since I was young, getting into playing games. It seems to be a lot of ways people
get into programming, building a website for games I liked. And eventually you realise you can do it as a job
and it's a job I love doing. These days I work fully remotely at an organisation called Form3,
but prior to that I was doing a lot of .net. It's previously just eat a couple of places before that as well.
So about sort of eight or nine years doing .net, PHP before that as well.
Yeah, I think that's about it really for me.
Very boring person, really.
I'm just thinking about the towns when I've done PHP and I'm embarrassed to admit that.
I know, I know, I'm always conscious about slagging off, not necessarily slagging off lounges.
I don't know if you don't know, but speaking ill of lounges,
because I know there are some people out there making perfectly good livings with them.
So it is what it is.
That's how I got into programming in the first place, because it was very easy to learn.
At the time, you could just drag and drop a PHP file onto a server, press refresh,
and it all worked. It's quite forgiving. The type system was quite forgiving.
So maybe had I not learnt with such an easy experience to get into building software,
then I wouldn't be here today.
The web was in its infancy at the time. JavaScript was very early.
At the same time, I do give it a bit of leeway for that reason.
I'm just thinking about PHP with all the HTML with code intermingled with it.
And then you think back, actually, we're kind of almost circling back round to that now, aren't we,
with some technologies?
Yeah, it is interesting, isn't it, when you see things like react, start to embed,
or I suppose more componentize or rethink how to distribute these components
and what makes up a component.
But yeah, it does make me think of the time, so I had PHP plastered with HTML.
So I'm just thinking back to when we actually first met each other.
And I think it was one of the DDD conferences,
and we had an episode on one of the earlier episodes on the DDD.
It was a group episode, so there was a few of us in there, which was quite good fun.
And I don't know what I've mentioned this to, actually,
but because I'm a big fan, as you know, of IDs and productivity and IDs.
And if I think back to things that have made me try to get more productive,
I can think of two people.
One was an ex-colleague, like many, many years ago.
I won't mention his name,
because he might not want to be mentioned on a podcast,
but he was really, really good at resharp-er.
And I remember seeing that and just thinking I need to get better as well.
So I worked hard to get more productive with resharp-er.
And I remember one of your, well,
I've seen a few of your talks at the DDD conferences,
where you were just whizzing around, Ryder, so fast.
And that was the second point,
which made me think I need to get even faster now.
So thank you for that.
Oh, I'm glad I left a good impression.
I probably had a lot of that to do with nerves as well,
because you know whenever you're presenting or demoing,
especially live coding,
the nerves get the better of you sometimes,
and you do, other than fumbling, you maybe go a bit too fast.
Well, speaking of editors and productivity and editors,
we're actually doing a second episode,
well, as soon as we finish this, actually,
but obviously there'll be a gap until we publish it,
but we're recording them back to back,
which I don't normally do,
but the next episode we're going to do is about Vim,
because we're both big fans,
and I don't normally have back to back guests on,
but I just really want to talk about Vim,
so I'm going to break the rules a bit, so.
I'm looking forward to talking about Vim as well.
That should be a good one.
Cool, so before we get on to talking about Go,
I'm just going to do this episode, listen and mention,
and this one goes to Sean Stadard,
who tweeted out,
just came across a great podcast,
The Unhandled Exception podcast.
The topic today was very timely,
Observability with Martin Thwaites and Honeycomb,
and a free book to a lucky listener,
and he's put in brackets, me question mark.
So sadly, I'm afraid,
if I remember correctly, you weren't the winner this time,
but maybe next time.
So thank you so much for your tweet Sean.
And if you want to get mentioned on the show,
just send a tweet using hashtag UnhandledException.
All feedback is greatly appreciated,
and I'm Drachen on Twitter, which is D-R-A-C-A-N.
And don't forget that this podcast now has its own Slack channel,
and if you head over to the website
UnhandledExceptionpodcast.com,
you'll see a big shiny Slack link there.
And last but not least, a quick reminder
that this podcast is sponsored by Everstack,
which is my own company,
providing software development and consultation services.
For more information, visit Everstack.com.
Right, OK, so let's talk about Go then.
Now, first of all, I have a small confession.
I was planning to do a bit of reading
and playing around with Go this week,
as I've never used it before,
but then life got in the way.
So I currently know nothing.
And I'm going to ask all sorts of really dumb questions,
but hopefully that makes me a good voice for the listeners
who might also not know anything about Go.
Yes, I was going to say it's probably a good idea
because, yeah, you'd be a good voice for the listeners,
and you don't want to assume everybody knows,
knows what Go is,
and some of those common things
that people may not actually realise or know.
So as I mentioned earlier,
you're an ex.net developer,
who's now moved to Go.
And I see you're tweeting a lot, raving about Go.
Was there something specific that attracted you to Go,
or was it just, did you feel time for change?
I think personally it was a mix of things.
You know, I really enjoyed doing .net,
but I've always had an interest in the infrastructure side.
I'm a big fan of the observability space.
So a lot of that tooling is written in Go,
and Go is primarily designed as an infrastructure language.
So naturally, a lot of those products,
like Prometheus being written in Go as well,
I kind of gravitated towards reading Go.
And then a couple of opportunities arose at work to use it.
And it kind of started from there, really.
I think at the same time, I started in PHP,
I did some Java, went to .net,
and I'm conscious of,
I want to kind of continue on that journey
of being a polyglot programmer.
And I think it's healthy to learn new languages.
And I suppose I'm conscious of becoming just a .net developer.
It's very easy to kind of stay in one language,
just continue to kind of continue my journey
as a polyglot developer.
And yeah, at that point, I kind of thought,
well, there's an opportunity here.
Maybe I should spend a bit of time doing some Go.
Now, I suppose, earlier on as well,
you said I'm an ex.net developer,
which I guess in some cases might be true,
but I don't consider myself ex.
There's an opportunity that I might go back to at some point.
At the moment, I'm really enjoying what I do,
but never say never.
So I still, I mean, I haven't dabbled in .net
for about a year now,
but I haven't kind of cut ties a bit completely.
I just haven't written it in a while.
I need to get better at the languages, really.
My background was C and C++, a long time ago,
then I moved to .net.
Because I do full stack,
so I'm doing JavaScript and TypeScript
and that kind of thing.
But excluding web front-end technologies or languages,
then I haven't really played around
with lots of different things.
I've done a little bit on F sharp playing around,
but there's some different languages
like Haskell, Go,
all these different things
that I should really be playing around with,
but time, you know what it's like.
That's the thing, isn't it?
Anybody with family or other commitments,
you do have to balance those.
Nobody's going to remember you
for knowing lots of different languages,
you don't have to be a good parent, whatnot.
But yeah, I suppose,
some people are always interested
in picking up new languages or learning new languages.
But I suppose as well,
that's one of the things Microsoft are quite good at.
They're very good at building tooling
to accommodate developers.
And they've built a really good ecosystem
of different languages you can use
and provide different tooling.
And that can sometimes make you quite insulated
or one of the side effects of it
is it can keep you quite insulated.
You kind of get into that Microsoft bubble,
you got everything you need,
you got your C sharp, the .NET runtime.
If you want to learn another language,
there's F sharp, Visual Studio.
They kind of tick all of those boxes.
So sometimes there's not always that need
to venture outside of it,
which I certainly found as a .NET engineer.
When I started thinking,
I want to learn a functional programming language,
there's F sharp to learn.
So I kind of felt like,
okay, I wanna,
the conscious decision is I want to learn a language
that isn't a Microsoft backed language.
Yeah.
I do kind of feel that might,
I'll say might,
I probably is changing now
because everything back to a .NET framework
where it was very windows,
very corporate.
And so the type of developer that would do that
probably wouldn't be interested in these other languages
because it's so,
they're so born and bred windows
and IS and all this kind of thing.
Where now,
like I by default,
I host my .NET core app,
well, I can't say core.
.NET six applications in Kubernetes.
It's cross platform.
So by default doing it in Linux.
And it's much smaller, faster.
And I'm much more likely to just reach
for the technologies and languages.
It's open source.
I think someone that's now getting used to this space,
and you mentioned Prometheus before,
so I kind of like use Prometheus
and all that kind of stuff.
So it kind of,
it feels like it's just becoming less Microsofty
because it's open to more people.
But anyway, we're not here to talk about .NET.
We're here to talk about Go,
I just realised.
No, but to your point,
you are correct there.
And I think that's kind of one of the reasons
I started looking at Go
because you look at VS Code
and Microsoft done a fantastic job with VS Code.
And I think it's actually one of the most popular Go editors
as well.
And you're totally right.
Since the past couple of years,
say leaps and bounds in opening up the ecosystem
and introducing lots of different technologies as well.
Yeah, that's interesting.
Because I was actually going to ask about,
you mentioned about tooling
and then you mentioned VS Code.
I was going to ask that,
what would be your default editor for Go?
And you mentioned VS Code
and no, we mentioned Vim before.
But with .NET,
obviously we've got Visual Studio,
but both of you and I,
when we do .NET, we use Rider anyway.
I believe JetBrains that created Rider
have got something called GoLand.
Yeah, yeah, that's right.
GoLand.
Yeah, I suppose if you're familiar with JetBrains' IDs,
as I was,
then GoLand is the natural choice.
I think that's one of JetBrains' strong points
as tooling developers,
is their IDs are very similar.
I started PHP using PHPStorm,
which is a JetBrains product
and went to Visual Studio
where Resharper kind of introduced
a lot of the JetBrains shortcuts that I'm used to.
So it was kind of a natural progression from then.
So yeah, definitely,
if you use the JetBrains tooling,
then GoLand is a fantastic ID.
I think they only have
paid for licenses at the moment for GoLand.
So I suppose if you're just interested in experimenting with it,
then maybe Visual Studio Code
would be a good place to start.
The tooling in VS Code is really good
and the Google-supported plugin
to enable GoLand development in VS Code
is really powerful as well
and ticks a lot of the boxes that you'd probably need.
Or just wait till next week
and listen to our episode on Vim, magic.
Oh, yeah, yeah, I mean,
yeah, if you want to,
if you're new to Vim,
yeah, that'll be an adventure for you.
So how did you actually go about learning Go?
Like your audience experience developer,
was it quite easy to pick up?
I think so, yeah.
So that's one of the premises behind
the design philosophies for Go.
Go, a bit of a history, I suppose,
for the listeners that maybe don't have too much context of it
or have only heard of it.
Go is originally designed and developed at Google,
I think back in 2007.
The main design philosophy was to improve
programmers productivity in kind of a multi-core era,
you know, network machines.
It's really designed around that premise.
And being a new language as well,
you know, they were able to learn a lot from other languages
and they were quite picky as to what they wanted to include in there.
From the get-go,
they designed the language to be a very simple language
with, you know, just a select number of features.
So, for instance,
the earlier versions of Go, up until recently,
didn't include generics,
which is always a bit of a surprise
for people that are first interested in learning it.
But ultimately, the language is designed
as an infrastructure language
and they wanted it to be highly readable.
So, as a result,
it is very easy to pick up
and to become proficient with it quite quickly.
You said yourself you have a history with C and C++.
The language itself is based on C.
And actually, when you look at C and look at Go,
they do look very similar.
But it's an incredibly easy language to read.
You can just take a look at a single Go file
and very quickly, you know,
get a grasp as to what's going on
without having to understand any complex syntax
that you might have with other languages.
Am I right that just like C and C++,
which is a compiled language to machine code,
that Go is the same?
Yes, yes, that's right.
I suppose a slight difference with Go is it,
it also compiles into this single binary,
it compiles the runtime,
but it ultimately leads to these really small,
compiled self-executing binaries.
And it's interesting actually to see the influence
that Go has had on the broader language ecosystem.
You know, it seemed like .NET have, you know,
have been inspired by some of Go's design philosophy
and some of the things that exist in Go,
as have other languages.
So, maybe we could talk about that later on.
Yeah, definitely.
Even functional stuff were .NET
and not just .NET,
but you can see how different languages
are learning from each other
and then bringing features in.
I found that really interesting.
And it's quite important, really,
because it's kind of, when it comes down to it,
we all want our languages to get better.
So, if you don't learn from other languages,
well, so if the language designers don't learn
from other languages,
then they're not doing as good a job
as they could have done.
Yes.
Yeah, I mean, that's a great thing about having,
you know, a diverse ecosystem, isn't it?
And, again,
The rise in tide lifts all ships.
It's always great to see how, you know,
what language influences another language.
And it's also equally great to see recently,
in GitHub,
there are some discussions.
I can't remember exactly
the exact language feature in Go,
but some of the .NET team jumped on
and started offering their advice
based on their experiences
and what they would have done
differently in hindsight.
So, it's always interesting to see.
Et c'est bien de voir ces langages se battre à l'avant comme ça.
Et les équipes qui ont développé ces langages,
de partager des idées et de travailler
pour faire un monde meilleur pour tout le monde.
Oui, c'est vrai.
Tu as mentionné que Go est...
C'est comme une langue infrastructurale.
Et si je regarde sur le site, je pense que c'est ça,
c'est le console, c'est les web apps.
Ils ne skateont pas des Gene de Mobile,
enrobxte des tabs pop, mais je l'aveский TechnovaiseOhon.
Et ça fait des projets bien vraiment shift.
On n'a pas encore],
Où as-tu butts n'importeних noiles?
Non, je n'en avais pas.
J'ai vu des productions par les jeux,
mais je fais de l'expérience en emplacement.
D'accord.
Je suisOKe de la vendredi,
parce que je n'ai pas vu vraiment trop du真in
pour leur optimisme.
Il seem aux claire starter
de l'expérience de mon éducateur,
ils ont l'impression d'être des développeurs fringés en utilisant.
Je ne peux pas être complètement d'accord avec ça,
donc j'aimerais savoir comment ça est vrai.
Mais oui, je n'ai pas beaucoup d'expérience avec eux.
Mais il y a des options qui sont là.
C'est la même avec les engins de jeu.
Il y a un couple de petits engins de jeu de jeu de jeu.
Je ne suis pas sûr de comment ils sont broadly adoptés
au sein de l'éco-écosystème.
Je peux essayer d'incluer les lesquels je l'ai trouvé avant.
Je vais inclure des liens dans les notes de la show pour référence.
Mais c'est assez intéressant.
Si les listeners sont des développeurs
qui ont joué avec ça,
il serait intéressant de vous entendre.
Oui, s'il vous plaît, Migs, j'aimerais savoir.
Je pense que...
Je sais qu'on va comparer avec .NET,
mais c'est la langue principale que je sais
et probablement beaucoup de les listeners.
Je pense à ce qu'il y a des différences de call.
Donc, c'est-à-dire, est-ce que c'est type ?
Est-ce qu'il y a un collector de gabarits ?
Tout ce genre de choses.
Oui, il y a un collector de gabarits
inclus dans Go's Runtime.
Il est type.
Je suppose que si vous étiez à prendre un développeur de .NET
ou un développeur qui a été
beaucoup d'expérience en .NET et C-Sharp
et ouvrir un go file pour le premier temps.
Je suppose que le premier truc qu'il y a,
ce qu'il serait possible de le voir,
c'est probablement comment facile
la base de code est à lire.
Les designers de language
voulaient créer un language
qui était vraiment, vraiment facile à lire.
Parce que la philosophie est que
quand vous vous faites la code, vous vous faites la code une fois
mais vous le readez toujours.
Vous devez maintenir cette code.
Donc, beaucoup de les philosophies de language design
sont base à ce prémence de la stabilisation.
Je pense que c'était vraiment intéressant.
Il y a un bon vidéo par Rob Pike,
un des designers de language de language.
Je vais envoyer un lien
pour les chaux de la vidéo.
Il dit que l'une des raisons,
ou la nombre de raisons qu'il pense que Go a réussi
et que l'une des raisons était
parce que c'était designé
et développé comme un language
pour l'engineering de la software,
en tant que programme.
Donc, comme un newcomer,
beaucoup de choses que vous vous voyez
sont consistance,
parce que l'une des prémences de Go
quand ils ont déjà designé
c'est qu'ils veulent avoir un code consistant.
Donc, ils ont bête ça
dans un des tools
que vous avez bête dans les formes
qui vont se formuler
et qui sont très opinionnées
comme comment Go est structuré.
Vous avez sauvé la code
et ça va le réformer pour vous.
Donc, vous vous verrez
beaucoup de consistance
entre différents bases de code
qui font tomber
entre le code, vraiment simple.
Vous avez probablement appris
un gros manque de features de language
et c'était un gros
cours de la langue pour moi.
C'était de couper les yeux
avec des choses comme
Link
quand le go a l'application.
Parce qu'ils ont juste
un peu de base de prématives de langue.
Je pense que si je bouge les langues,
l'un qui m'a mentionné
le Link serait le truc que j'ai perdu.
Ça serait le plus important.
Je sais, oui.
Oui, et c'est ça.
Il y a des temps, même ces jours,
quand je vais en faire
et je pense que
ce serait trop facile de faire
dans, on dit, C sharp.
Mais c'est presque comme
j'ai cette opinion opposée
que c'est facile de faire
mais c'est plus difficile
de lire pour le futur.
Et il y a des instances où
j'ai voulu faire
quelque chose de très fancy
que je n'aurais peut-être
fait dans un autre langage.
Mais puis, en hindsight,
j'ai l'air d'être
plus facile de lire
et de comprendre.
Parfois,
un plus simple approche
est souvent mieux
que de
faire un bon appétit.
Je pense que je suis malade
de regarder un code
sur le piste
et de savoir comment je peux
faire ce qui est très clé
pour montrer comment je suis clé.
Les gens vont voir
et se dire, wow, c'est très clé.
Mais ce n'est pas toujours
nécessaire de faire l'approche
et de faire un petit peu plus
plus difficile
parce que c'est
plus difficile
en termes de langage.
Je ne vous en crois pas.
Je ne pense pas que vous êtes
en train de faire
ce qui est clé.
Je pense que vous êtes
en train de dire
que je vais en faire.
Vous avez suggéré ce.
Je peux le dire
sur le link.
Oh, regardez ceci.
Une ligne.
Oui, vous avez mis moi là.
C'est la façon de faire.
C'est bien que Rishap
et Ryder peuvent faire ça.
Mais juste ce qui m'a fait penser
à ce qui s'est passé
quand vous disiez
que c'était difficile à lire
ce qui
je ne pense pas que
les langages de links
soient difficiles à lire.
Mais il y a des langages de links
que Rishap a généré pour moi.
Je me dis
non, on ne fait pas
pas, on ne fait pas
pas de la retraite.
Oui, oui.
Je pense que
des langages de langages
sont des features fantastiques.
Et je l'agris.
C'est pas difficile à lire.
parfois, ils peuvent être abusés.
Ils peuvent parfois
être un peu de la voiture.
Et nous avons tous vu
les langages de links.
Expressions.
Je pense que c'est ce que j'ai
allumé.
Mais je m'ai mis
des features.
Et elles existent
dans une forme de go.
Mais après un moment,
j'ai arrêté de les perdre
parce que beaucoup de temps
juste un fore-loop
a fait le travail.
Une function de fore-loop
et de passée.
Mais c'est ce que c'est.
Et comme
quelqu'un qui est intéressé
ou peut être intéressé
à l'apprentissage,
il faut parfois
faire des features
des langages.
Vous
vous pouvez être
en train de
faire.
Mais en même temps,
quand en Rome,
vous avez
sorti
avec un open mind,
en faisant
avant
de penser
que
comment
peut-il
travailler comme ça.
Et après
j'ai commencé
à créer le fond
de la simplité de la langue
et à vraiment
rire.
C'est un
de mes favoris.
Les langages
ne vont pas
être les originales.
Mais je les appelle
maintenant.
C'est super simple.
Oui.
C'est un peu plus
plus plaisant
que l'original.
Je vois
je ne me souviens pas
de ce que j'ai trouvé.
Je t'ai juste tweeté
la semaine dernière
et j'ai vu
un peu de cynique
qui a été
assez populaire
sur Twitter.
C'était un infographique
qui a
fait des expériences
des développeurs
en temps.
Et leur code
est
en fait
complexité en temps.
Et c'est
en fait
un programme
de Nubie
qui a écrit
une simple code.
Et puis
comme ils ont
un peu de plus de expériences,
c'est vraiment
compliqué
d'adapter
beaucoup de
chaque design
qui a été
un peu plus
expériences.
Et puis
comme ils ont plus d'expériences,
ce curve de la graffe
s'étend
et s'étend
simple de nouveau.
Oui,
ça resettit
ça,
non?
Vous allez
dans l'expérience
et vous venez
sur le côté
de l'autre.
Vous enduriez
de la façon
où vous commencez
en termes de
juste tenter
de faire
une code
C'était sur Twitter
parce que je me souviens
que
quelqu'un
qui s'appelait
oui,
mais c'est simple
de
le développeur
et le développeur
a l'air très différent.
Donc,
c'est un bon point.
Oui,
je me souviens toujours
avec
quand les gens
disent simple
et complexe
ce que ça veut dire?
Tu sais,
le simple
chose
comme
ce que ça veut dire?
C'est très facile
de dire en conversation
je suppose,
mais
parfois
c'est très difficile
d'expliquer
ce que
la solution simple
peut être.
Parfois,
tu fais des trade-offs
mais je dégrasse.
Je suppose
que c'est
quelque chose qui est probablement
plus close
de la relation
est
la injection de dépendance
ou la
injection de la
injection de dépendance
et tout ce genre de choses.
Est-ce que
ça va
avoir quelque chose de similaire
ou est-ce que
ils vont essayer de
garder ce simple
aussi?
Je suppose
que
la injection de dépendance
a été
dans le style
de la
que vous pouvez
élevére.
C'est pas un
container de
l'IOC
qui a été satisfait
de la dépendance.
Donc,
les dépendances
sont usually
managées
pour utiliser
ce qu'on appelle
la fonction de factory
qui est
un
de Martin Fowler
qui est
un
de refacteur.
La fonction
est un
pattern de signes.
Et c'est
une façon simple
comme ça.
Il y a
des décisions
et
établies
comme
ce que nous allons
faire.
Il y a
un couple de
décisions
particulièrement populaires.
Je pense
que l'un des
choses que
l'engineering
a fait
bien
quand ils ont
créé
les décisions
qui ont
créé
des idéums
qui ont
fait
les standards
qu'ils veulent
pour les communes
qui sont
similaires
à
Python.
J'ai
pensé que
Python
a eu des idéums
qui ont
été
créées
pour les
idéums
qui ont
créé
des idéumotoins
comme
ce que
idéums
qui
des idéums
créé
les idéums
mais ils ne sont pas souvent mises, les gens préfèrent juste, vous savez,
de mettre sur le fruit de la pétale, de la composition,
oui.
Il y a certainement quelque chose à être dit pour juste avoir une façon commune de faire
des choses. C'est comme vous l'avez mentionné avant,
sur la prétifiant et en faisant que tout le code soit le même et que tout le monde
se fasse suivre la même convention et puis, oui, avec une manière
d'injection si c'est tout fait de très de même manière,
surtout si vous êtes en train de faire des projets d'opérations d'opérations
qui peuvent être utilisés par les filles, par le nom de l'Amethias,
un autre piece de software que je sais que nous utilisons,
que nous avons parlé d'avant, K9S,
la communauté est guillie,
ce qui est en fait un application console,
mais il ressemble à un application desktop,
parce que c'est la façon dont il est étendu,
mais vous le rassurez dans la console et c'est un appareil
de communauté, je l'aime vraiment,
mais ça se fait, il y a un truc.
C'est fantastique, n'est-ce pas ?
Oui, il y a beaucoup, je pense que c'est un des facteurs
de la grande décision de la population de Go,
c'est le fact que l'on a entier au marché à la même temps,
c'est évidemment que le coût de Kubernetes,
parce que c'était un product Google,
et je pense que c'est un des choses qui ont aidé
la adoption de Go,
parce que le Google technologie,
c'est écrit en Go,
beaucoup de les grands joueurs qui sont comme Docca
dans l'infrastructure d'un cloud, sont en Go,
et aussi, je pense que parce que,
quand ils ont réellé Go, ils ont réellé un promise de version,
où ils n'auraient pas de compétibilité de retour,
jusqu'à version 2,
et ils sont encore très plus tard,
même si c'est de la version 2007,
ils ont encore une version Go,
et ils ont livré ce promise,
donc les investisseurs pourraient savoir
que si ils ont écrit leur code en Go,
ils ne seraient pas mal à l'heure,
et ça a vraiment aidé,
d'améliorer le cloud native ecosystem,
et c'est pourquoi vous voyez
beaucoup de les tools cloud natives
qui sont écrit en Go,
et c'est vraiment l'une des choses
qui a aidé à s'améliorer dans le langage.
Donc oui, vous pouvez naturellement voir
des choses comme ce tool de K9S
que vous avez mentionné au go,
et je pense que c'est...
C'est assez bien fait,
je suis un grand fan de K9S,
et vous pouvez probablement
voir le plus grand binding,
mais on va le sauver plus tard.
Je ne sais pas comment...
Je pense que c'est bien,
parce que je sais que le team
que je travaille avec,
je suis d'accord avec ça,
on est d'accord avec le go,
mais le team que je travaille avec,
parce que nous avons utilisé l'enseignement,
mais parce que c'est la licence,
et c'est une grande company,
ils ont dû avoir une licence,
donc tout le monde a switché à K9S.
Et donc les gens sont aimés,
mais comme vous le disiez,
parce que pour les utilisateurs,
il y a des steroids,
et c'est très bien.
Mais bon, on va dire que le vim
pour le prochain épisode,
ce sera un week plus tard,
mais pour...
ou alors, il sera...
une heure et un peu plus tard.
C'est drôle, non ?
Quand vous vous rendez à K9S,
ou quelque chose avec les vim bindings,
je suppose,
c'est Alex,
d'un parc drastique,
le jeune homme
qui s'est rendu sur le PC,
qui dit,
c'est Unix, je sais ça.
C'est comme ça,
quand je vous rendez à un editor
qui a des vim bindings,
je pense que c'est des vim bindings,
je sais ça.
Oh, je veux continuer
cette conversation,
mais...
Je vais attendre pour les deux.
Oui.
Donc,
on a mentionné avant
de Link,
et,
peut-être, de missing Link.
Clipping on his head,
les choses que vous avez expérimètes
et que Dottonet n'a pas,
et que vous n'aurez pas envie de ne pas avoir ça.
Je suppose, pour moi,
une autre philosophie de design de Go
est d'avoir les parties de plus vite,
et les parties de plus vite sont fantastiques.
C'est un truc que j'ai vraiment,
vraiment mis à l'envers,
d'un autre langage,
comme C-Sharp,
ou, vous savez,
j'ai été en train de le faire.
Et, d'accord, je n'ai pas de la façon
de la plus vite,
c'est extraordinaire,
je pense que c'est même
les permets de la maintenance,
que,
vous savez,
ils ont une grande prémétis
de code base,
de Go.
Et,
c'est un code base
de 3 ou 4 secondes.
C'est vraiment impressionnant,
et c'est un target
qu'ils tentent
de mettre
dans un de leurs âmes,
c'est de
avoir un code base
et d'avoir un compiler
qui est
légèrement rapide.
Et c'est probablement
le plus grand chose que je m'ai mis.
Et,
puis aussi,
la simplicité de ça,
je pense,
parfois,
parce que c'est un nouveau langage,
c'est
avoir
l'opportunité
de commencer à frais,
de apprendre de nombreux erreurs,
ou,
vous savez,
apprendre de l'histoire.
Et,
il n'y a pas de la haute
de ce changement,
de la saison,
de la mondiale
de la mondiale,
de la simple
de la service,
de la architecture
distribuée.
Et,
un peu de ça,
ce n'est pas là,
un peu de la history,
et la croix
de la collectivité,
n'est pas là.
Et,
je pense que je m'ai mis les
et puis,
le syntaxe,
je ne sais pas,
il y a quelque chose de syntaxe,
parfois,
il juste le fait de faire le bon.
Je ne sais pas pourquoi,
il juste le fait de faire le bon,
je pense que ça peut être,
parce que je l'utilise maintenant,
mais il juste le fait de se sentir snappy.
Le fonctionnement,
d'être capable de faire des changements,
de faire vos tests super vite,
et de faire très vite,
parce que c'est pas facile.
Je pense que c'est vraiment,
et c'est tout le tout le tout le tout le tout,
tout le tout le tout le tout,
ce que j'ai mentionné,
c'est que,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus,
c'est un peu plus v would
20 minutes
C'est un bon place à commencer.
Il y a super support blanche dans le code VS.
Et puis, go.dev est probablement le prochain place.
Go.dev.
Oui, go.dev.
Et ils ont une bonne partie de la section de start
où vous pouvez vous prendre
et installer.
Et puis ils ont un playground.
Et vous pouvez suivre avec des simple demonstrations
de la langue.
Et c'est vraiment un cas, pour moi,
c'est un cas de trouver des projets de côté
ou des réponses simples que je voulais commettre.
Et c'est là où j'ai commencé.
Je me suis regardé
construire des projets de côté
et contribuer à des projets d'open source
dans des zones que j'étais intéressé.
Les communautés de Go.dev
sont vraiment les gens nouveaux.
Donc, vous allez généralement trouver
beaucoup d'aide.
C'est un bon go for Slack, aussi,
où les gens sont très à l'aide des nouveaux.
Et je pense que c'est vraiment ça.
Ce n'est vraiment pas un langage difficile à prendre.
Donc, ce n'est vraiment pas beaucoup de recommandations.
Je pense que c'est un des choses réwardées.
C'est pas facile de prendre.
On a parlé de K9S,
qui est l'open source.
Il y a un feature que je veux vraiment.
Donc, peut-être que c'est ma possibilité
de faire mon tour avec Go.
Vous pouvez voir les spaces de nom.
Vous pouvez seulement choisir un
qui est le site active de nom.
Vous pouvez browse-en.
Je suis used à l'enjeu,
où vous pouvez choisir un peu.
Si vous travaillez dans différents spaces,
vous pouvez choisir un peu.
Et vous pouvez voir les pods et tout.
Vous pouvez voir les spaces de nom
qui sont filter.
Vous pouvez voir K9S,
vous ne pouvez pas faire plus que ça.
Vous pouvez voir un space de nom,
ou toutes les spaces.
Je sais qu'il y a un ticket à ce point,
mais peut-être que c'est ma possibilité
de faire un PR ou quelque chose.
Vous seriez surpris que c'est ça
que beaucoup de gens ont commencé
par un simple chose comme ça.
Comme je l'ai mentionné,
Go est vraiment capable de
faire un tour de nom rapidement.
Et aussi, vraiment en performant.
Vous seriez surpris de comment
c'est facile de faire des changements
dans un langage
que vous n'avez jamais utilisé.
C'est un de ses puissances.
J'ai un license Ultimate
de JetRuns,
donc ça va inclure GoLund.
Oui, ça va.
Mais,
le support de GoSupport
dans Vim,
qui est très bon,
avec le PSL,
qui va parler plus tard,
c'est aussi un support très bon.
Vous pouvez peut-être
essayer de le faire dans Vim.
Qu'est-ce qu'on a fait ?
On va faire des dev pics ?
Oui, on va faire.
Vous voulez aller au premier ?
Oui, OK.
Donc, mon dev pic,
je pense,
c'est un mélange de choses, vraiment.
C'est un sujet que je trouve
assez intéressant.
Il y a un grand livre,
que j'ai lu récemment,
par un autre,
quelque chose qui s'appelle Amy Edmondson,
c'est
l'organisation de Fearless.
Et c'est en parlant
de la importance
de créer une sécurité psychologique
dans le place de travail.
Je pense qu'il y a un projet,
un projet de la Sottl,
je crois, qui s'appelle
Google,
où ils interviennent
un nombre de
différents équipes
pour dégager
ce qu'ils ont fait,
qui ont fait un bon équipe.
Et je pense que le leadership
indiquateur
était la sécurité psychologique.
Il me semble que,
d'une fois que les recherches
ont été faites,
vous pouvez voir ça
dans des différents
papers de recherche
et des études,
la sécurité psychologique
s'est vraiment
en train de faire
d'un peu d'un peu de travail,
d'un peu d'environnement,
et je pense que ça
t'éco-saut
de créer des bonnes environnements
pour les gens.
Je pense que,
parfois en technologie,
c'est très facile
de faire attention aux gens
et de l'espoir des gens.
Donc,
je pense que
tout ce qui se fasse
sur les gens
et de créer
des environnements
pour les gens
d'être en mesure
d'y avoir
et d'y avoir
et d'y avoir
de la santé.
C'est mon conseil.
Donc,
il faut faire un tour
de la book.
C'est un grand book.
Et c'est un très, très intéressant
de recherche.
C'est un sujet important.
J'ai pensé que,
envers notre industrie,
où beaucoup de gens sont émotifs,
c'est plus important
parce que
tout le monde est isolé
sur leur propre,
en parlant à un webcam.
Donc,
juste en faisant ça
où tout le monde
sent qu'ils peuvent avoir une voix,
qu'ils peuvent...
Même si ils ont fait un erreur,
ou qu'ils veulent poser
une question
qui, si ils sont risqués,
peut être faite de faire quelque chose.
Il n'y a pas de choses
comme la question d'une question.
Tout le monde
doit se sentir
qu'ils peuvent faire ça.
Oui, oui.
Et ça s'est vraiment
de la culture localise.
Si vous pouvez être
une personne
pour poser une question
ou une question
ou une question
que vous ressentez,
que vous soyez
un peu plus...
À un moment,
ça commence
à encourager cette culture
d'être ok
pour poser des questions
qui peuvent...
Et exposer vous-même
à un risque personnel.
Je pense que c'est un des
choses intéressantes
que la book parle de.
C'est comment
des leaders ont été
dans les organisations.
J'ai été entouré
de cette culture
qui a sorti de la manifestation
en soi-même
sur les environnements
psychologiques.
Ils ont encouragé
eux-mêmes
d'être quelqu'un
pour poser
des questions
qui peuvent
mettre eux
à un risque personnel.
Et c'est pour ça
qu'ils ont encouragé
d'être au-dessus.
Mais oui,
je suis ramblin' maintenant.
Il y a un endroit
là-bas.
Alors,
qui a dit ceci ?
Jim Quick, je pense,
c'est une phrase
qui est toujours
un grand avocat
de poser des questions.
Et il dit
que les questions
créent une grande compréhension.
Et c'est vrai
de poser des questions
tout le temps.
C'est comme ça que vous entendez
les choses à l'extérieur.
Même si c'est pas
une question à un personne,
si c'est une question
que vous vous inquiétez
et que vous êtes curieux
sur cela,
et que vous allez
aller le voir sur ça
parce que vous voulez
que la question soit
réel.
Je pense que les questions
sont importantes.
Oui, je l'ai compris.
Donc mon tip de la dév
est qu'il s'y sent très
élevé.
Après ça, c'est
une chose important.
Mais c'est juste
une chose de pire.
Je suis un
commande-line-usage
et mon code de la dév
est PowerShell.
J'ai utilisé ça
depuis longtemps.
Je suis un peu surpris
que je n'ai pas compris.
Mais récemment,
j'ai accidentement
dévoilé.
Quand vous faites
auto-completion,
je serai normalement
dévoilé.
Par ce que je
dévoile,
je n'ai pas
utilisé les
clés de curse.
Je ne l'ai pas utilisé
les clés de vim.
Mais je l'ai utilisé
les clés de curse.
Mais je l'ai utilisé
les clés de curse
pour me faire
dévoiler et dévoiler
ce que je voulais.
Et c'est
un type d'autocomplet.
Si vous
commencez à
dévoiler un path
directeur,
vous pouvez
dévoiler
ce que vous voulez.
Parce que
PowerShell,
beaucoup de
arguments sont
dévoiles.
Si vous
commencez
à dévoiler un
argument,
il y a un liste
de toutes les arguments
qui matchent
ce que vous avez dévoilé.
Je pense que c'est
le meilleur place
pour les listeners.
Mais oui,
toutes les questions,
toutes les expériences,
je suis toujours
le plus content de parler
avec les gens.
Il n'y a pas de gens,
c'est
probablement
Cool.
Et un grand merci
pour
votre
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Vim - with Joseph Woodward