PyCon 2014

Ingeniería del software para hackers

Tavish Armstrong  · 




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

with that our next speaker is tabish armstrong davage is a software engineering student at Concordia University last year he edited the performance of open source applications a collection of essays about optimization written by the maintainer zuv various

open source projects it is part of a phenomenal AOS a series that if you buy it all the proceeds go to Amnesty International so I super recommended so please give a warm welcome to tabish will be talking about software engineering research for hackers bridging

the two solitudes thanks is this on ok thanks for coming I wanted to start out by thanking Dana Bauer who encouraged me to submit a talk proposal to app icon I yeah um so you have her to blame if this goes badly and you have her to think if it goes well so

I'm going to ruin my talk for you in the first slide I'm going to talk about what this talk is about it's about using data analysis to analyze the open source projects that we work on to learn more about how the development process works and learn

more about how we work I think this can help us make smarter decisions about how we program and encourage us to have better more productive conversations about this so fundamentally this talk is about conversations it's about what we tell each other is

true about programming and how we decide you know on this knowledge what we know and how we know it I was reading a book on how skull recently and this line jumped out at me it surprised me it it read an important aspect of how skills power lies in the compactness

of the code we write compared to working in popular traditional languages when we develop at Haskell we often write much less code and substantially less time and with fewer bugs this is an interesting statement because as far as I could tell the author is

basing those completely on intuition on their experience which is great we should talk about the experience that we have reading software and compare that to other people's experiences and this is a totally valid thing to do but it's of limited use

not everybody agreed somebody in the comments section actually challenged this person is what my impression is that the Haskell shrinking factor averages around four but obviously it varies a lot this is a surprising amount of precision for somebody who's

also making this number up and that's okay i mean we're talking about our experiences writing software and it's um this is how this person feels but wouldn't it be so much better if we knew whether or not this was true if we knew this was true

we would know something more about how software works if we knew that it took last time to write a skel code maybe we would switch to haskell I don't know so this isn't about somebody being wrong on the internet this is about somebody who could be

more right on the Internet we say a lot of things to each other that you know if they were true if we actually have out of evidence for them I think we would act differently you've probably heard somebody say you know python is more readable than other

languages you know put up your hand if you think this is true cool um I actually think this is true but we could do usability testing on languages and find out which ones are actually more readable do that for different kinds of programmers novices or experts

or whatever and if we know this then you know the next series of the languages that we're inventing will know how to do that better you know we can talk about unit testing whether or not it's useful and python is it good for beginners that's an

interesting question if python is actually better for beginners we should teach python to beginners right this notion that happy programmers make better programmers like these are all if knew that these were true we would act differently i think when talking

about code review we can say a lot of things like this like a lot of people recommend that you keep your patches slow some people think that code review is just nitpicking why don't we look at code review in the wild and see whether or not these things

are true see how big patches usually are so fundamentally we're talking about facts that have no foundation they're based on intuition and based on rationalizing what we feel and there is value in that people who do science really get this right when

they make clams they need evidence to make those claims and if there are claims that they're just kind of taking for granted when they're doing their research maybe somebody else is already convinced them that something is true then they have citations

to that they tell you where you can also be convinced that these things are true that works pretty well can we do that in our communities can we do that for software engineering we do benchmarks to test performance we usability tests are you wise and we use

analytics on our websites so why don't we turn these this kind of inquiry on ourselves I think we'd be happier and better programmer as if we did this the person who got me interested in this topic was Greg Wilson he gave a great talk at a student

conference and 2010 called what we actually know about software development and why we believe it Thanks we talked about he talked about on sort of cutting-edge software engineering research sort of what academics who research software developers know about

[ ... ]

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