The PyCon UK Panel

after that so we'd like to start my pills and say how you found a conference and give your thoughts of the hour into it yeah um I've really enjoyed the conference I always enjoy Python UK I particularly likely the talk on power that Daniela gave because it's not the sort of taught that you often hear at conferences and he one of the things he talked about was having a welcoming community and people who are new and they'd it just reminded me and is good to be reminded that we have a lot of new people here and not just sort of thai come to these conferences to to talk to people to meet my friends who I interact with online who I remember see it by cons and just to be reminded that there are there are people have not been before and I've had some great conversations with people I didn't know and I'm again reminded that the Python community is wonderful and there are lots of good people say yeah so I I love pycon UK this is one of my favorite conferences in in all the world I actually I'm actually a big fan of Coventry although i'm looking forward to cardiff simply because i really like walking around the walking around the downtown but I one of the things that I've I really like invite what I just took a sip of water when you said I really loved walking down Coventry down well all you know all square mile of it no it's it's very charming and and I end the thing that I'd like to rest so far as I like the kids Oh hold I've forgotten to introduce everybody but you already knew him I could forward and van why didn't you so that was good I'm sorry then I soft-cooked which is the panel and Vandenberg is the show psf hijo de tu these already Michael Ford disappointing core developer and go programmer is this anything's true anymore this um yeah certainly true about Python testing I wouldn't claim to know I work with cloud computing but I wouldn't claim to know more than is healthy okay that Larry so i can just introduce yourself and then save the thoughts about the butter comments for a minute maybe I'm Larry Hastings I was the release manager for Python 3 4 I guess I am they're released matters for five months before and Python 35 which just came out I released it last Sunday from London and I'm supposed to say something nice about Coventry so I i really love Nando's and yeah actually my muscle will do that and say who you are and your thoughts so carry on nice hello i'm carrie Ann I work for the rods with my foundation I also sit on the board of the psf and I was just explaining it's called cheeky Nando's some of the levels my band and I mean that so I've just been on a bit of a whirlwind tour of Python conferences like a Python then I went to Australia and now I've come here and i always say it's wonderful to always come home to pike on UK because he is my home because I would be here if it wasn't for you guys that's the center hello I'm Nicholas and what I did highlight of the who are you and and I by myself I'm Nicholas and my highlight of pike on UK this year I'm always incredibly relieved at four o'clock on Saturday afternoon when the education track is finished and this year was just successful as the other ones those of you who saw the lightning talks with the kids in it will understand it a lot of them because you only saw a small fraction of them but a lot of them went away well having had an awful lot of fun and Sarah tell us a little bit about yourself and the science track so I'm so amount i'm running the science track this year which is new for this year and it's been really fantastic the publication's panel is still going on upstairs that's that's why I was late and they're probably still ranting about how badly your taxes are being misspent and and all this other stuff I think my highlight of the conference has probably been Simon Sheridan's keynote which was really great fun I thought and this is your panel and let's see what questions we've gotten so far and pleasant deployment story is very poor in all contexts except web does the panel think this is fixable so across this way stars Michael so I'm intrigued that somebody thinks that the deployment story on the web is which of course is where PHP wins unfortunately because the deployment story is drop a file somewhere in it works so is it fixable well in terms of in terms of them like and packaging which our guess is an interesting an integral part of deployment in the last couple of years the disk utils six special interest group mailing list there's bigger has been and still is an enormous amount of energy around getting this actually fixed and wheels are a big part of the story and binary wheels for linux are coming so i think i think it as is the way with these things the in terms of what happens in core python and around core python it takes a few years to to really feed through but but we do have some very smart oren motivated very energetic people wielding real power to get this fixed so yes I think it is something that is actually improving just gonna zip down for anybody yeah yeah keep any pin you have impossible on Ethan own opinion so I think that one of the biggest changes in the past couple of years is that now everybody does everything in virtual environments this is a big step toward actually having things be deployable because they're more isolated by default with what was what Michael talked about with the with the wheels between those two I actually think that deployment starts to become not a solved problem but a much easier problem and you and you can see a way forward between a virtual environment and wheels to to some sort of binary format that you can just drop and have it run so this is sort of my moon on a stick we kind of hope there's a Python community we can make it easy for perhaps those of us who are not particularly technical but who do work with pythons I'm thinking especially of teachers and children so I've always been told to not speak so close to the microphones said yeah okay so so as you may or may not know in schools the sysadmin the people who run the networks in schools are have a famously pleasant since sunny disposition and are really helpful and if we can make their life a lot easier it would be really helpful for us to be able to get PI C installed places great so next question what's the average wingspan of an unladen swallow the next one and African or European yeah yeah I think a weight great or terrible do we now have two incompatible kinds of functions in Python asked Flores the short answer to the latter passed the question is yes but we already we already had two kinds of functions in Python before because we had generators and non generators and so honestly as 35 release manager and a sink def went out with 35 I should know anything about this and I really don't but I don't think it's a world of difference from what we already had i think it's i think it's an incremental improvement and it's keyword support which was it's just obviously the major change but i don't think it gives us any new actual technological ability that we didn't have before you know aisa kya was already built in 34 and didn't have these keywords and this is this is a language feature that microsoft tried out experimented in f-sharp they're using their sort of their functional language f sharp as a way of trying features for c sharp which is that they're big language and and an F sharp had this keyword and really it does make writing code asynchronous code that is readable because it looks synchronous a lot easier and that they moved it from F sharp into C sharp and it's something that's been a success in C sharp and in the.net environment so I don't see why if async I oh and that style of programming takes off in Python why it shouldn't be a success but the jury is perhaps still out on that okay a muscular strength next on bisley and we need to talk about pearl 2.7 i'm shipping this Python 2.7 support it to 2020 when 3 is audio so why why is Python 2.7 support till 2020 when three years already else because people still use it yeah the simple answer is the original support was till twenty-twelve or 2015 something like that and it was extended because there was a great hue and cry and and Guido said oh okay well is if the release of managers wing supported which is Benjamin Peterson and he said yes so we said okay will support it for a very long time much longer than any other Python released to date and probably any in the future Python 27 came out in what 2008-2009 and so like 12 years support plan for that is really a very long time cool right and going to answer them in asked questions in a area in there by an order so everyone on the panel what is your favorite module started with Michael I'm working down or bill through tunnels yeah you're the leader my favorite module is this yeah you can't have the same one as anybody else i'm partial to hitter tools whenever I need a module to use as an example of something i always use color sis which is pure python and very small and very easy to play with so well sirs total I've been having an awful lot of fun with a sink i ah just one yeah probably probably either into tools and funk tools both very cool great great question I think the question and is there any plans to make big improvements to C Python execution speed it's like because pipe itís then shrugged oh well I can't want to be that better it's like the kids probably exist then oh well so so I believe I can answer definitively there's no plans to ever improve Python there right ok so python is the product of almost what more than 20 years of development of continuous development of people trying to make it faster the challenge with python is that it's so dynamic that there's very little work you can do in advance and still people come up with these crazy ways to make it go faster and obviously PI PI's making go a lot faster with an incredible amount of engineering work behind it there's just no low-hanging fruit and even the high hanging fruit is hard to reach so we're trying to come up with ways to make it go faster I've got a small patch that I've got you know I might make it go faster you know Mark Shannon was telling me about something where he wants to make it go a little faster there's always we're always nibbling away at it but there there there really aren't any big easy things that we could do to make it go faster because if there were we would have already done them a little bit more seriously I know that for instance Intel is looking very carefully this they've got an entire team that's actually focused on Python performance 27 usually but they are but they are looking at they understand the necessity of three as well and for example in 27 10 and 35 i believe they landed a patch about computed go tues which did result in like five seven percent speed up that was a backward the computer computer go to his thing was a back court from three to two it wasn't in there before and yes that landed and is only in 27 10 so I can say that there's one thing that's again it's very early days but it's kind of exciting so you guys want with the CLRS from Microsoft that's the runtime that runs underneath c-sharp Microsoft open-source the entire c-sharp runtime it's open source it's very easy to deal with license I don't remember which one it is but it's you know it's not a funny license its Apache or MIT or something and so that means that the entire see large it is sitting there an open source waiting to be played with there's a Microsoft developer who was one of the guys behind ironpython his name's Geno yeah adeno sorry Dino and Dino is mating the clr jit to python he's been working on it since pycon us in montreal this year and already he announced some results at PI data seattle last month and he said it's not that much slower than normal python anymore which sounds you know that sounds incredibly promising from my perspective so I have high hopes because he hasn't even started optimizing yet he's just trying to get it to go and so this is very exciting this could you know if this works like three dot six could be the fastest Python to date I believe Larry has plans to slow down your Python code performance by about thirty percent of it if he wants to talk about how the house I'm not even joking no it's not even joking but that's that's different that's the getting rid of the gill my my idea for getting rid of the gill which i haven't committed to publicly and i'm not committing to publicly now is what comes out of my talk about the gill that i gave on Friday morning which is really the only approachable way to do it is to go to what's called atomic test and set a tama canned green decker using features that are on modern CPUs instead of having a gill that's a lock overall anchor and Decker we would just use the atomic test and set for anchor and Decker and we wouldn't have to have the gill for reference counting at that point and that would make it a lot easier to get from here to real multithreading inside of C Python so that would give that would slow down C Python by thirty percent which is an estimate based on work done by Antoine patru but then if you get to run if you have a nice multi-threaded program and you can run eight of course the same time the fact that each one of them is thirty percent slower doesn't really hurt your feelings very much right I've got I am new and a new question come in by Miss already my phone we've got a new mic mic new question come down through messages which says panel what are your thoughts on static type annotations is it a step in the wrong direction is it the future we repeat that what were your thoughts on static type annotations is it a step in the wrong direction or is it the future okay so static type annotation first of all we've had type annotations in Python since 30 it was a syntax change that happened when three dosha and the idea was ok we'll add the syntax for it and then we'll let people experiment with it and here we are you know seven eight or six or eight years later I can remember when it is the 30 shipped there weren't people picking it up and running with it there were a couple of projects online they weren't compatible with each other and widow said okay I was going to let a thousand flowers bloom that they weren't really it's not really taking off it's time to sort of force this issue forward so what Guido says the Guido gave a talk about the typing module at euro python and if you have questions about the typing module I think most of them will be answered by his talk if nothing else you will hear gritos feelings on the subject about whether it's pythonic or not his answer is yeah it's Python it's not getting in a way of static of Python being dynamic and whether it hurts things no it's going to be a real help for large code bases so but what I've heard I don't remember exactly the details but I believe that both Microsoft and Google were working on their own static typing information for Python because they have these large code bases and was hard to manage it without having some sort of you know static type analysis linting tool so he felt like it was just time to sort of push it through and and make it happen for real and it was a combination of that and other people being interested in it I can't remember the gentleness names there's lukasz was the just interested in general and then the guy who's doing my pie who was encouraged to make it actually compatible with real Python which is kind of what the basis of the typing module that shipped in 35 so I so Raymond heninger famously says that python is Guido's language and he just lets us use it and that's a really helpful mantra' to keep in mind fundamentally Guido said typing is a good idea we should do it and he made it happen he was very much a part of the process of getting it to happen and so if Guido says this is in Python then by golly it's in Python and here we are yeah okay so I know what they are but in my day-to-day job I how to use them so I think that might apply to a lot of people where's my where's Mark Shannon okay if you want to talk to mark about about this subject he will be able to tell you all sorts of interesting things so I'm actually playing with type annotations as as a route as a place where you can root a type inference graph so that a lot of places you actually don't annotate but in certain places where either you have ambiguous types or you want to expose something via compiled down to see and have a have a/c API that is actually the place where the the the type annotations or function annotations using types in the annotation spot actually works pretty well so I get two more things here so first as alluded to by Nicholas just to make it clear since wheedle was part of the authors for the typing type annotations he felt that it wasn't right for him to actually be the person who ruled on it so he found a delegate and that delegate was Mark Shannon so if you hate the typing module go and tell marchan because he was the one who said yes you're welcome mark yeah there you go heading at the battery stand up ma come on stand up applause that's hot he's got a purple shirt on today he's easy to pick out so the other thing is some people have said oh this is a wonderful idea this will allow us to do static analysis of the code which will lead it to optimizations and the answer that is no nobody's really expecting Jesus for optimization the pipe I guys in particular have said this is irrelevant to us we need so much more information to do our static optimization stuff then the typing module exposes that it really doesn't help us at all we already have our own way of collecting this information and it's a lot more specific and so it's irrelevant so don't expect to see the type of module actually leading to optimizations it's not going to make things faster it's merely going to allow you to talk about the correctness of your code right again we cut in there and lots of questions coming in which is great keep them coming in and another great question from bend metal how hard is it to teach Python what would it make what do it how hard is it to teach by thin what could make it easier and we start from the other end of the panel this time I work down and bonus points if you say the word pirate bunny in the in the box yeah a pirate bunny would help right so um it's okay so so I'm having having taught Python in University I'd say it's easier to teach them Java and it's significantly easier to teach than any C or C++ type of language with no memory management I'm not sure it's all right now now I'm not sure whether it's genuinely easier to teach than a functional programming language I'd say it's probably about the same or maybe marginally harder and it's probably obvious to all of you why why that is things that would make it easier in my view anything that makes the language more consistent makes it easier anything that you don't have to explain why we're doing this now when we didn't do it the last time we explained something is really good so things things that might seem very minor and silly like making printer function in my view is enormously helpful because why do I want to explain two types of syntax to two students it's it's another hurdle so anything that reduces the number of sort of syntactic and silly and rather meaningless hurdles or things to explain and allows you to actually talk about computation and computational thinking and reasoning and problem-solving which is what you're really trying to teach when you teach programming because programming is not an end in itself is it is a good thing okay so I've never actually talked Python I used to be a teacher but I taught music and if you think you know 12 years is a long time to have sort of legacy code base well music is 500 years old and written in Italian and German so when it comes to music which is there anything that I'm qualified to talk about music is a difficult subject to teach and a lot of it goes down to being are you a good teacher good teachers will teach you all sorts of things really really well and Python the impression I get is that Piper would be a relatively easy language to teach because we've got the Zen of Python which means that usually there is an obvious way to do things well they're famously there are exceptions to that rule it's it's easy for children to work out the rules of scoping because it's sort of a visual programming language like scratch although without the blocks and things you indent things instead which is useful and also that the lack of a lot of syntax so when I was a teacher I taught children who had English is an additional language or were dyslexic and if you scatter semicolons and brackets and God knows what's amongst your amongst you then it's just going to make it a lot more difficult to read soap i think it's clean syntax means that it's it's it's good in that sense what would I improve to make typing a better teaching tool I would want an education bundle but I believe that my colleague to my left is about to talk about that so I let her do that I set up they're gonna say something really clever about Oh other things and so I was in Australia recently at PyCon Australia and they have an education track and what was really interesting was it wasn't just teachers it really blew me away that the developers got up and gave a talk as part of their education track and one guy got up and he was talking about running a coder dojo in Australia and he was talking about how most of these children have been learning scratch and he managed to convince two boys who are about ten to do some Python he was really excited about it and he gave this whole talk about all the difficulties that he found in teaching playful but the outcome of that story was that python is still the right language to be teaching children and one that I would fully agree with and I of course and i'm going to talk about and i have talked about previously the many barriers there are two children accessing python which we can solve this community very easily one being the terrible text editor that is idle anyone who came over to the children's track would have seen a number of times the children falling down and getting frustrated not with learning programming not with syntax not with any of the computational thinking that was going on nope none of that it was just idle being two different windows which was a problem but yes I think an education bundle is definitely something we need and I'll probably talk about that more in my lightning talk so it's the ground so I have an anecdote here not generally about teaching Python but specifically teaching Python 2 verses Python 3 i interviewed raymond a couple years ago from my old podcast and one thing Raymond said was that Python 3 is actually harder to teach than Python 2 on the first day when you're teaching people like how to use the programming language to get something useful done you often like start reading stuff in from five whenever you're talking to the outside world you're generally talking about text and that means converting the text in d unicode because the string to unicode change so on python to you could happily open the file and wade through the lines and and transform in whatever you're going to do but in order to be able to do that in Python 3 you have to understand Unicode and you have to understand the translations between Speights in the Unicode and he the word that he used was this is day zero knowledge in order to be productive in Python at all you have to understand Unicode now and so this is an additional amount of mental overhead you have to have in order to be productive in Python which he didn't use to have so it's hard to say that this Python switching from string the byte strings to unicode was a bad decision I think in general it was a good decision but it had some costs and one of them was making a little harder to learn for the neophyte so I'll just say that I I taught myself Python and that was because I learned java first and I hated it this was back in the job at one point two days and it was just so awful that we we had a we had a the way in which this class was organized as you didn't they didn't actually look at your code you would submit a jar file and they would run the tests against it and if it passed the tests you pass the particular project and so Jai thung 1 point 0 or whatever the very first release of dry thern had just come out and I said you can do it in anything as long and they said yes as long as you give us a jar file so I said okay and so you're implementing all my projects anjaii thon for that class that was the way I learned Python and I was about 10 times more productive than everybody else in particular because we were implementing a relational database and i already had tuples but great okay let's get some more questions don't yes the go down with mr. few okay okay one right answer would you think is good i did have a fight in three long-term support release could you say a question well we have a python LTS release which is Python 2.7 right so should we have a plaything 30 altea this the first time I've heard anyone ask for it so as far as I know there isn't a huge demand if you want a a Python LCS release typically you take a distribution of linux that has an LCS and they will support that version of python in the LCS don't see there's a huge amount of demand fit there were two peps about I don't know year two years ago competing peps that or the idea was to actually speed up the development of Python and speed up the number of Python releases various people have been arguing that we should release Python more often rather than less often necessarily I think Nick coghlan's pep of proposed that we would have our maybe was Barry Warsaw actually proposed that we mirror the unit the Ubuntu approach which was every two years who would have a long-term release and then every six months we would have kind of a short-lived release other people i think glyph i can remember i can't pronounce his last name but glyph yeah lift left was had a presentation at the Python language summit this year where he said we should be doing releases so often we don't give them names and we don't make them any sort of an official thing if you look at PHP there's just always a constant new build of the PHP language up on the PA for your website and you download that and whatever it is you download that in you're off to the races and they build all the installers and everything and he was saying that that's this I don't remember his point this is one thing that he felt would help Python a great deal was that actually increase the tempo of releases to you know every week or every couple of days might have contributed on okay and so a genie comes down and obviously one wish for Python in 2016 what would you choose and why good Nick that the the BBC micro bit this is success and the kids start using pie tonight mine is that we reimplement idol I would like subscript into byte strings to return a byte string landing on something this is very psf specific but I'd like to finally finish the website Sarah you guys wish I'd like to be able to package a python module without crying okay you Python running ten thousand times faster would be good yeah let's see what server we haven't done do you think isn't nobody got a penis quite specific one how if at all do you think in the new syntax eg a sink / 08 common type int effect pythons a teaching tool how if at all you think new syntax eg a sink away type in effect pythons digital so I guess what's being hinted at in this question is that as we add more to the language it becomes harder to teach all of the language but i don't think anyone attempts to teach python by teaching all of the language the trouble is as a as a developer you do need to these rarely used features if you see them in code you need to be able to understand them so if certainly in terms of understanding the whole of the language it does have an impact I've been developing in Ingo now for about 18 months and it's certainly not Python I python is still my first love but it was coming to the new project and I was thinking right I put a big new project to learn and it's a new programming language this going to take some time and it was really quite astonishing to me that that in terms of learning go I was felt like productive and I felt like I knew go after the first week and I don't think you could say that about Python certainly if you look at the the full object model if you try to describe the full object model and what happens when you do attribute look up you know there's a few pages of writing to fully understand that's a Python as much as we may value simplicity as a community python is not a simple language or at least not anymore so yeah but there is certainly overhead in adding new features particularly syntactic features so also the teacher wouldn't teach the full object model to new students to begin with they would think that and because that yet actually I'm not seemly and that's the mark of a good teachers that they know what to leave out and how to analogize the more complicated things so the mapping perhaps this new knowledge into existing launched that kids or adults whoever they might be can can better understand what's going on so the question here is do you think type in ting that a sink and a weight will affect the teaching of Python I don't think I'll have any effect whatsoever it's the teachers that count when it comes to teaching not the thing that you're teaching itself that's what's unique about python is that there's a lot of places where you can get a little bit of knowledge and go a long way and implement a lot of things in Python and then you step up and it opens up with new visas and new capabilities and but that doesn't invalidate anything that you knew before that's the thing that I think makes Python such a good teaching language is because when you when you start with almost any other language you you start with public static void main public static string void main I think or you you need to start with you know importing the IO or whatever there's there are lots of different things that you need to you the day zero knowledge which i think the Larry's point about having some idea of encoding Zyzz does raise that bar for what that day zero knowledge is but there's lots of different places in Python where you can stop you can be productive for a long while until you start running up against that next barrier so I've done Python training with five and three and you you do start with IO because if you want to achieve anything in the real world you need to do some I oh but you start with pre count data in ascii encoding and you don't talk about encoding still sort of day through so I'd like to to disagree with Raymond on that one you don't it certainly doesn't need to be something that features in the teaching the the open method still the open function still works without talking about encoding so I don't think it has to be part of data as long as you specify text I think it I don't know if it wats text or binary probably binary so you just open it because in order to use binary you you pass the RB flag defaults to person so it's a false attacks yes ok the questions more our border game-changing input the italian game-changing in person teaching like at django girls are amazing what more coming to beyond online tutorials EG mentoring and we want your own question there Tom didn't you I think that the Python community is a wonderful community and one of the things that makes the part of community wonderful is that people step up and they do think so I'd encourage people to organize dojos be mentors run Django girls and step up and then people will see the pipe community it's a nice place to be and we saw that an awful lot in the tweet stream yesterday from people who came along to say for example transcode and Amy we say me they weren't Python Easter's but they acknowledged this is a nice community to be so I encourage the teacher to come for the first time this year and she said to me yesterday the end of yesterday I've never been in such a such a diverse group of people in my life before and I'm having an amazing time and her son is called femi and he stood up here he has it's and he gave a wonderful talk to you all so I think that just describes what kind of community we are and why I keep coming back and why you let me get up here and say the really stupid things I say sometimes right because that's the kind of community we are so if you're interested in helping people just continue doing what you're doing be supportive run education events as part of your linux user groups or your python user groups help with stem net become a stem that ambassador there's lots of stuff going on like raspberry jams you know start arouse pajama or attending the raspberry jam there's just so much you can do and to help people so do one one thing i frequently say is that the python is it the power of python is the Python community it's a great language I really love it but the thing that sets it apart is the community and if there's one thing that I'd like every single person to do is to take responsibility for being in being kind being considerate and reaching and actually taking the effort to reach out to say hello to help someone else because when one or the community is all of us it's not some other group if if you're looking around the same the Python community somewhere else you know no the Python community is also you start reaching out helping and your individual efforts collectively are what make the Python community the place that it is and it is what makes it interesting and fun too that's why people give back in the Python community at a higher rate than anywhere anywhere else that I've ever seen this is a core part of who we are and I think it's that's what makes Python and pike on what it is okay that's good and we have Thank You Nana that was a good tool to end on but a couple of people have asked the same question in different ways so if you can steal one feature from another language what would it be and why it's important maybe just the feature with that too much information go routines for me would just be really nice huh go routine Joe it in ya or any kind of nice nice access ESP one I don't really have an opinion on this that one yes so I'd love to steal a feature from from Python but from a different implementation of Python ironpython because I'm Python was was implemented in c-sharp the actual the Python interpreted itself was implemented as an object with an API so you could instantiate new Python interpreters from within Python and then what you had is a new Python interpreter with the new system module so you had a fresh sort of semi isolated environment for executing new code and and that was great to use and then if you combine that with the dotnet so the security domain features you could then execute untrusted code and you could limit the access to what back what that could do and that was a really useful feature and I think Eric's know who has been around is is hoping to introduce a CSP model to python through sub interpreters and that starts by providing an API layer for sub interpreters so we may both get what we want Sarah lv life Eric actually gets up his button and does something seem like I have a question for you to dlr I don't mean the Docklands Light Railway I mean the dynamic long language runtime that is what you were describing in.net what's become of that so the dynamic language runtime was the underlying framework that was then used for both ironpython and iron Ruby and it's still there and both on Python and iron Ruby are still being worked on much more slowly since some Microsoft it spun them out but yeah this will go I wanna steal a hot spot or the v12 gent and the thousands of developers hours that have gone into making a suitable dynamic language subprocessor subprocesses a lot along cool let's latest feature from scratch from small talks which is great but anyway enough of my issue today and so thank you very much to your panel