GopherCon 2014

Camlistore y la librería estándar de go

Brad Fitzpatrick  · 
go

Presentación

HTML (pincha para descargar)

Vídeo

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

so yeah I work I work at Google on the go team I work mostly on the standard library you know the whole thing that there's no I in team but there isn't this talk because this talk is about me basically this is about my story of my project I worked

on kamilly store and kind of like interactions with go in the standard library and how I got into go so those are the kind of like the two projects that I enjoy working on the most and I'm going to experiment on you guys and see if I get to make a talk

out of it how I got into go what camlistore is very briefly the demos will probably suck because the network kind of sucks but I have lots of screenshots at least and kind of like why I added stuff to the standard library over time so you will not learn anything

here so pre-google I wrote lots of Perl and see I guess nowadays maybe I would have been writing Python or Ruby or something and see and so basically my only options were I could write in some fun slow language or I could write in something you know faster

and tedious and so I kind of you know accepted that that was the extremes and I chose when I wrote in one versus the other and you know I didn't know any better there wasn't really a better option late 2007 I joined Google of course everything's

gonna be beautiful and perfect there I'm not gonna have to deal with this Perl c.split and instead I get C++ Java and Python so I got to choose between you know fast and unsafe and tedious and verbose and safe and tedious or slow and single threaded and

tedious and so I wasn't too excited and I end up I didn't pick one really cuz everything had to be in a different language and different groups wrote things in different languages there's also this language solves all that I had a kind of a love-hate

relationship with it made some things easy but it's also a really weird language also Rob's fault and so then sometimes I would write things in JavaScript thinking like that would be my common language and I did weird things where I embedded the SpiderMonkey

JavaScript interpreter in sawzall which was in Sivas plus and then I get run JavaScript across the whole web you know in mapreduces and then so I could share code I went to bed the same javascript in Rhino and Java programs and I was searching for you know

something better late 2008 I went to a Tech Talk and the go crew was presenting go the part that sticks out actually have the chat logs from 2008 to remind myself of this somebody in the audience asked whether the language supports closures and Rob's you

know flippant response was like yeah yeah everyone wants their feature and but whatever it was still it was still promising because it wasn't one of the other languages that I had to work with so I kind of idly watched it and followed it and I only discovered

while preparing for this talk that go actually got closures like right after that talk in February and that was Russ I guess had just recently joined the team and he went and added them I think the rumor was something like somebody was on vacations of their

normal consensus they couldn't do and they pushed in closures anyway 2009 I joined Android officially after kind of hacking on stuff on the side and I wrote a lot more Java and it was actually a you know more depressing but it was it was fun fixing Android

stuff and working on Android performance but it was you know this downside was I had to write in Java later that year in November goes up and source the hey ho let's go blog post 2010 I was working on Android still and I was trying to rsync the Android

source code to this one NFS server that another team was indexing all the source code and making it like searchable and cross-referenced and stuff but that team could only deal with it like we were using git because the Android project used get and they didn't

integrate with git so they said just throw throw the source code to the Senate server and we'll index it nightly so I was like okay Howard they can that could be I'll just you know run our sink the NFS server has really good band width but ridiculously

high latency profile so our thing kind of sucked at it so I figured hey I'll just rewrite this thing go and start off a go routine for every file in every directory and just have like you know one go routine directory and file in all of Android going at

once and kind of you know fork bomb I didn't understand how to go run-time worked or anything at this point so this is I'm very excited about it though and so I wrote on our court Buzz instance rest in peace I wrote you know I love this language it

makes me all giddy and smiley and you know I'm telling my friends this and you know they're like I don't know about this thing isn't this from the guy who made sauce all so so this is when I start bugging Ross and I've been bugging Ross

probably for about four years now and I said you know my program kind of works sometimes sometimes it hang sometimes a crashes and you know use lots of CPU and it doesn't seem to work under six prof. notable thing here is you know go had really good tools

even four years ago or it had you know things like profiler kind of when it sometimes seems to work and then I was you know complaining about other stuff that as part of our sync program you have to modify the mod time of the file and access timely or whatever

when you copy it over so stay so I was trying to figure out how to do this for a 386 and a 64-bit binary and Brussels like oh yeah someone should do that it's not done so that's that was my first contribution I sent in the OS x function and thus marks

my beginning of contributing to go let's go back in time so you look at what code looked like then so maybe go directory here I'll checked out we can run go version to get a version except for there's no good Matt go command yet so let's make

a program so compiling it then was like running 6g and then you would get you know you get some crap and then you would run about six then you would get some crap and you have to stick that out and then we could say hello for God but even though you know my

program is nice and ugly the worst will still go funk back then so and you know the I guess the semicolon purge had just happened recently but um yeah I don't really seem that a time other fun stuff there go doc oh and it's fun to look at the binaries

that came with Joe at the time like now you're used to just having a go command and the time they crapped all over your your bin directory uh you know the 64-bit assembler and the compiler and the coverage tool it used to have a coverage tool it that sometimes

[ ... ]

Nota: se han omitido las otras 3.365 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.