Do I need to switch to Go(lang) ?

Video thumbnail (Frame 0) Video thumbnail (Frame 3623) Video thumbnail (Frame 4737) Video thumbnail (Frame 7568) Video thumbnail (Frame 8653) Video thumbnail (Frame 9925) Video thumbnail (Frame 11676) Video thumbnail (Frame 12794) Video thumbnail (Frame 19030) Video thumbnail (Frame 19918) Video thumbnail (Frame 21780) Video thumbnail (Frame 22610) Video thumbnail (Frame 23941) Video thumbnail (Frame 24862) Video thumbnail (Frame 27104) Video thumbnail (Frame 28614) Video thumbnail (Frame 29785) Video thumbnail (Frame 32551) Video thumbnail (Frame 34357) Video thumbnail (Frame 35411) Video thumbnail (Frame 36323) Video thumbnail (Frame 38879) Video thumbnail (Frame 42308) Video thumbnail (Frame 43872) Video thumbnail (Frame 44837)
Video in TIB AV-Portal: Do I need to switch to Go(lang) ?

Formal Metadata

Do I need to switch to Go(lang) ?
Title of Series
Part Number
Number of Parts
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Max Tepkeev - Do I need to switch to Go(lang) ? Nowadays, there is a lot of buzz about Go. In this talk we'll learn the basics and most important concepts of the language, we'll further discuss differences and similarities in Go and Python and dive into the cool features of Go. Finally we'll talk about why popularity of Go is raising so fast and try to answer the most important question: Do I need to switch to Go ? ----- Nowadays, there is a lot of buzz about Go. It happened so that for the last 6 months I've been mostly programming Go, and frankly speaking I fell in love with this language. We'll first do a quick review of the language. Go doesn't have some language constructs, for example classes and exceptions and at first it may seem hard to write proper Go code, but in practice the language is so easy that I will try to teach you the basics and most important concepts of the language. We'll further discuss differences and similarities in Go and Python and dive into the cool features of Go. Finally we'll talk about why popularity of Go is raising so fast and try to answer the most important question: Do I need to switch to Go ?
Slide rule Enterprise architecture Email Open source State of matter Multiplication sign Software developer Decision theory Line (geometry) Formal language Logic programming Authorization Library (computing)
Group action Existence Run time (program lifecycle phase) Concurrency (computer science) Machine code Line (geometry) Real number Multiplication sign Source code Mathematical analysis Computer font Computer programming Usability Number Type theory Different (Kate Ryan album) Cylinder (geometry) Uniqueness quantification Aerodynamics Oracle Task (computing) Physical system Standard deviation Concurrency (computer science) Closed set Binary code Sound effect Line (geometry) Binary file Cartesian coordinate system Interprozesskommunikation Proof theory Type theory Process (computing) Computer animation Video game Speech synthesis Pattern language Library (computing)
Computer virus Axiom of choice Multiplication Multiplication sign Mereology Complete metric space Formal language Power (physics) Formal language Type theory Semiconductor memory Compiler Right angle Window
Axiom of choice Slide rule Computer animation Compiler Computing platform Stack (abstract data type) Graph coloring Formal language Number Formal language Buffer overflow
Slide rule Programmer (hardware) Goodness of fit Graph (mathematics) Computer animation Integrated development environment Term (mathematics) Googol Forest Virtual machine Open set Computer programming
Slide rule Intel Group action Source code Set (mathematics) Googol Object (grammar) Repository (publishing) Cuboid Spacetime Source code Computer virus Projective plane Electronic mailing list Coma Berenices Drop (liquid) Binary file Variable (mathematics) Twitter Wiki Facebook Computer animation Integrated development environment Object (grammar) Cuboid
Code System administrator Multiplication sign Source code Port scanner Computer programming Formal language Data management Inference Mathematics Strategy game Different (Kate Ryan album) Pairwise comparison Computer virus Theory of relativity Euclidean vector Software developer Binary code Data management Vector space Repository (publishing) Software testing Right angle Ocean current Functional (mathematics) Computer file Image resolution Branch (computer science) Event horizon Product (business) Revision control Lecture/Conference Software testing Condition number Pairwise comparison Standard deviation Gender Cellular automaton Physical law Projective plane Coma Berenices Cartesian coordinate system System call Compiler Dressing (medical) Computer animation Statement (computer science) Video game Family Library (computing)
Key (cryptography) Mapping Interior (topology) Complex (psychology) Coma Berenices Variance Formal language Type theory Type theory Computer animation Different (Kate Ryan album) String (computer science) Extension (kinesiology) Pairwise comparison
Functional (mathematics) Dialect Greatest element Interior (topology) Parameter (computer programming) Variable (mathematics) Semantics (computer science) Declarative programming Variance Variable (mathematics) Formal language Subject indexing Fluid statics Type theory Word Computer animation Function (mathematics) Social class Pattern language Ranking Pairwise comparison Lambda calculus Form (programming)
Addition Functional (mathematics) Gradient Range (statistics) Parameter (computer programming) Semantics (computer science) Field (computer science) Number Computer animation Computer configuration String (computer science) String (computer science) Program slicing Data structure Pairwise comparison Data type
Functional (mathematics) Length Multiplication sign Workstation <Musikinstrument> Counting Mereology Element (mathematics) Formal language Word Different (Kate Ryan album) Integer Pairwise comparison Condition number Form (programming) Exception handling Linear code Software developer Electronic mailing list Range (statistics) Bit Letterpress printing Variable (mathematics) Subject indexing Computer animation Statement (computer science) Programmschleife
Namespace Coma Berenices Letterpress printing Variable (mathematics) Computer animation Personal digital assistant Personal digital assistant Chain Statement (computer science) Office suite Pairwise comparison Conditional probability Default (computer science)
Area Slide rule Functional (mathematics) Code Data recovery Software developer Counting Letterpress printing Performance appraisal Pointer (computer programming) Word Error message Computer animation Integrated development environment Program slicing Statement (computer science) Pairwise comparison Error message Reading (process) Social class Exception handling
Functional (mathematics) Constructor (object-oriented programming) Interface (computing) Multiplication sign Strut Interior (topology) File format Letterpress printing Parameter (computer programming) Student's t-test Type theory Mathematics Word Pointer (computer programming) Computer animation String (computer science) String (computer science) Representation (politics) Social class Integer Data structure Musical ensemble Pairwise comparison Data type
Pairwise comparison Functional (mathematics) Context awareness Inheritance (object-oriented programming) Inheritance (object-oriented programming) Computer file Computer file Set (mathematics) Letterpress printing Type theory Pointer (computer programming) Word Arithmetic mean Data management Computer animation Different (Kate Ryan album) String (computer science) Statement (computer science) Social class Right angle Species Pairwise comparison Error message Data type
Axiom of choice Concurrency (computer science) Code View (database) Function (mathematics) Mereology Computer programming Formal language Pointer (computer programming) Different (Kate Ryan album) Pairwise comparison Error message Social class Concurrency (computer science) Closed set Electronic mailing list Range (statistics) Variable (mathematics) Type theory Array data structure Arithmetic mean Message passing Interface (computing) Compilation album Website Task (computing) Speicheradresse Point (geometry) Slide rule Functional (mathematics) Dependent and independent variables Protein Revision control Program slicing Statement (computer science) Loop (music) Computing platform Form (programming) Data type Dependent and independent variables Weight Interface (computing) Content (media) Basis <Mathematik> Compiler Subject indexing Pointer (computer programming) Computer animation Personal digital assistant String (computer science) Synchronization Statement (computer science) Object (grammar)
Axiom of choice Meta element Standard deviation Greatest element Concurrency (computer science) Code Multiplication sign View (database) Source code Mereology Data dictionary Computer programming Formal language Mathematics Error message Library (computing) Exception handling Social class Rhombus Electric generator Concurrency (computer science) Software developer Binary code Bit Perturbation theory Type theory Digital photography Process (computing) Right angle Electric generator Point (geometry) Functional (mathematics) Service (economics) Link (knot theory) Electronic mailing list Rule of inference Number Goodness of fit Natural number Simplex algorithm Dynamical system Standard deviation Cellular automaton Weight Code Cartesian coordinate system Computer animation Software Social class Hyperplane Exception handling Library (computing)
welcome everybody I really don't care through much that can you will talk about them and don't be afraid to grow and switch to this language from some with as few questions at the end and so when it comes to negative and everyone Guinea in the well of the things so probably wasn't easy to get up for a lot of people and for me as well because of the enterprise and other stuff which is going on so thanks for coming in appreciate that let's find out if you still on the right talk I mean if you're logic programming going for like 2 or 3 months and broadly you would want find something new in this talk will itself I'm not saying that you should go away or something like that again state but just keeping in all and the 2nd 2nd using the talk about the goal line yesterday you probably noticed that I will review some things because it's hard not to repeat facts to justify how you can post something to physical violence repeating this things of taking your e-mail so we will also discuss a lot of things that you do in here yesterday school goal of the talk is to answer the question do you need to switch to line not new of course for for you because I already made a decision and end you probably wondering why am I did in this talk on the Python Conference well because for some reason it happened so that people who programming by from on also can go for some reason it's really really easy to use go with know by the wind try to figure out why do we talk we 1st just a little brief introduction of me my company well my name is next to live in Moscow Russia and my wife and and developers and the author of so Python libraries and you can see on this slide and I am your reference because the since 2014 in Berlin and fails talk other conferences from time to time can contribute to other open source libraries I
work for the company called a data we collect and process online and offline data and to get use of radio for users interests intentions demography and so on the process more than 1 million unique users demand and there are more than 2 thousand segments non-database like users who are interested in buying a specific program to users who like to travel to Spain and so on we have partners to oracle microsoft pattern axis and many more we have quite a while always worldwide is the coverage line and 1 of the biggest coverage in Russia and Eastern Europe for example for about is person before users
and that's it that promise with real brief so let's get back to the topic question what do I need to reach the goal line but let's think about why speech from life we so the main reason is that python just not fast enough for a lot of tasks there are other things like different ways to make life foster like quite by sigh font and France and so on and this the existence of the schools groups is problem that exists the incomes concurrency and wildlife and provides us with the different ways to solve concurrent tasks to make concurrent programming there was no effect of standards and you buy from 3 . 4 minutes and Korea was introduced by the standard library and stimulated to take a lot of time for people to to adapt to it to get used to the you know how to do things properly with the intent to switch to bath cost you it's the most discussed problem is the use of prosody who would use the interprocess communication slow sold this leads us to problem number 1 um Python doesn't provide a way to you to make to binary by in binary system with machine code then you can just drop into the cylinder on there are things like the free and so on but to just an executable library with Python stuff and also you can try to close source code with high and sold you can't work is to commercial problems despite what can be easily restored and 12 then diving provides us with ease of use is also source of runtime error and the proof of this is the introduction of type contained by 3 . 5 so it's also like problem OK
so let's formulate the language requirements for the language of choice which will solve our problems interesting 1 and then 1 time in that least it should have probably got support and to use all the powers of 1 use right like multiple support and so on it should be really fast I really fast they're like the last lost close to speak it should be easy to learn and again ideally are usually require manual working with memory it should go about virus with shingle part of it should be statically-typed types and which together with the previous requirements will mean that will
identify a lot of terrorists on completion time and the time time and to should support the main reference of course like Windows
Linux Mac so why go and in the
other languages for which can fulfill the requirements and I believe it's like an answer questions because we've got 2 more requirements for language of choice no previous slide the community how widespread the languages so the 1st number here is the amount of questions asked and total cost a colorful attack and that as of yesterday atropisomers yesterday and the 2nd number is the amount of new questions asked for the last month or 2 ways you can see reason clearly also I wanna show you these
2 good friends graph which shows searching you hear which term going you can clearly see here that most modern 1 searches such requests that every year and popularity is constantly increasing do a little bit of
history go started experiments in world where 2007 to address some of the problems we will have like slowly yields were considered environment and so on there's even if that was conceived during 1 of those slowly use well programmers were written program to compile and won't go into details about Michael was designed the waiters now because we we need another 45 minutes even more for this and if you can change it if you can't read the we need at the end of slide I just show you the door was open sourced from 2009 and is created by it was created relative forest might people people who created things like Unix UTF-8 John what support virtual machine and a lot of other things that we use every day polymers um goes
already used a lot of companies throughout the world for example group will draw boxes into 1 there's a giant list of companies again and then in the slide so you can use them to look if you're interested now let's have a look at how to go to a project look like this
is called the workspace workspace is here derail gold it is defined by a set of single-pass environmental variables and it consists of 3 D reduce the infection source sources where you put your source code and it goes dependencies and beans for minors and package for the connected objects there is no single
repository of package a single life there is pipelined Python to to install a package you simply type get and your relative vectors repository from 1 side of the phone call from the other side there is no way to specify the version of the law dependency there are no things like requirements that takes the and something like that which can freeze versions of the requirements to basically when you do get the kitchen it down what source files in affect the scans them 14 could statements to identify dependencies then downloads files so far becoming must branch of the dependency and then compiles also spousal together into binary this is the problem because of the quot compatible change was introduced to master branch of this 1 dependency and you go get you end up with a broken problem go developers realized that and starting from go 1 . 5 enabled the so-called vendor experiments and starting from 1 . 6 which is the current version of go sudden experiment 1 but the recommended strategy it means that you should include event a folder you project and to deliver dependencies in there by copying this so support source told and they will be filed find vital compared to the I don't know probably sounds to the Python programming like then what the you know uh that actually took a just a lot of a lot of problems in Python also vendors things for example the requests which we all users like and I also started to kind think because the automatic if you want the actually the reason that that because it's done properly can really help the users and the and you just have to do it right to and there are also 2 more popular ways to to solve package management problem in FIL conditioning go get to bed I but I won't talk about them you can really interesting and there are also a few other approaches to think it management jingle we want discuss family course but I like the name of the last 1 gender so you can sort helpful comments built go for high which formative code in the on the right way if you don't like how it phonological that's all you're wrong it's like that patent life and work mostly um told test runs it doesn't show the test which will fix at the code to use your API so if were introduced it somehow changed in a new version of go run compiled code into binary then immediately arises and it's it's in the end so it's kind of of a scripting language relation and it works really nice because compile time is the small so this is quite a lot of system administrators started 3 years ago is quick language is also the reason vector and go back to which can find that compiler didn't see compile time and many more and all these things the ability right language so you don't need to install any third-party tools and so on so we can so let's have a look at the whole world application each file should start with the package definition which will be used for inference by other packages and any executable comment must always use package main then we would form a package from gold standard library and define a main function which just brings the wealth at to compiled is going to be run the following comment which produces a binary now works is being viewed and then we can just write like usual binary
don't let's do through comparison of going Python where I want what I want to show you that something from different but a lot of things that are similar so it's this is the 1 of the reasons why it's easy for a path problem at Cologne go to 1st of all imports and both languages using forged thing but packages the only difference is that in going must rely on namely double quotes also import statement diversity is if want to cell packages watering production the different names we you import
packages his name is defined inside inside the package in the same way in both languages the main differences that and go you can only exist names which starts with a capital letter and all other names are considered unexploited of private if you like that do so the country exist outside that a and you have the same
basic types there's 5 along with a few differences because those that ecotype language to if we have initializes then you don't need to define types because those smart enough to figure out from them if we don't have them that need to different I also go has signed and unsigned types which with different it's artists like indicating the extent and so on and also we did can Python called mapping go and note note that map for our defines types of its keys and values so in this example an amount which given values are signed integers and finally we call this slicing
variable declarations have more forms signed Golden path and by bottom regions declare variables and we want with the same semantics in goal-directed indexes full variable declarations with what the word and the sure there will be a short form of variable declaration which can be used in functions or methods but not at the back as well we can also have a a 1 liner variable declarations in both languages and even going both forms for sure both languages have
first-class functions it means that the rank which supports pattern functions as arguments uh 2 other functions returning them as value from other functions can assign them variables that with you can see these indexes and go with more variables because of static type and the like convicts with both languages
also support optional additional functionality arguments in Python we call them marks and use asterisks for them is to ask them and then go functions that implement them variadic functions and use 3 . semantics innovation for them and as you can see we can also foster the slice of numbers and you use and bacon features similar to what we mean by on
unfortunately go doesn't have a keyword arguments feature but you can kind of simulated was struck Python doesn't have structure basically just a collection of fields struck can be initialized on the with fields all fields that are not you initialization will be set to to the value this example of for string type it's an empty string he's probably not very elegant and not the United grade thinking gold-plated works if you need to just show you that it's possible to simulate quite go
by that his foreign while still has only for which can take several forms and here we initialize a list of 3 integers and then iterated elements 1 by 1 notice that the 1st variable in full bingo we which uses the underscore and this is an index of the elements inside lists and because we don't need to use underscore and this is the same conventional part but in Python this is just a convention and you can use any variable name for it just don't but not to use it but in gold you have to to use an underscore because if you don't use FIL varied you declare variable and don't use it for you have an important you don't use it then the problem just want compiled goes very very strict about this and that leads to a clinical at the end 2nd form of the full can be compared with the preference while with the condition the goal is simple solar I won't comment on I just know that you can on in temporal both statements and fold also go has a variable BlastClust index available which Python doesn't have and both languages ln function to get the length of the variable and 3rd form is the wild with infinite condition we all of
Python for its list and the Convention and so there are enough insulin go there is whenever you want to iterate over something you just have only 1 looping construct the which is available in go going some people already asked to it's something similar to go but gold developers to the station the 1 and only 1 way of doing things really seriously maybe too seriously and looks like the 1 see anything that it should be added to the language in linear time two fold is our only friend fridges probably you can also notice that common syntax is a little bit different if you like um that's talk about conditional so little bit both languages have if statements which was pretty much the same with 1 1 exception go allows you to you declare variables inside the if you file 1st a statement
and these variables are only available during the execution of the statement I mean they want to use your name space we use this in our current example but can be very dangerous situations and really nice features go also has switch
statement which can be compared to Python you fairly fails chain notice that switch statement also allows us to declare a variable inside itself and it also won't be available office which features to diffusion you can of course there are the same if else he fails chaining rules but in most cases the statement looks much much cleaner and readable have the
same slices it's available as environment that is also the fall into valid now
counts error handling is probably 1 of the most discussed topics about by from we use exceptions to handle errors and can go there are no exceptions the idiomatic reading go to check for for every value evaluation is there and if a function can return to should return a variable and a narrow area so if this error values new everything's fine everything's working fine if it's not news and then something is wrong and we should act appropriately so why is 1 of the most discussed topics about goal a lot of people think that the language from the 20 1st century should exceptions and this kind of error handling slide seventies style or something like that so a lot of people are unhappy about that and when you start programming go you'll notice that there are a lot of good will part of your code is that these statements that checked for errors there is and we go developers just don't agree with this thing they're called it the proper way of doing things so we just have to live with that I think actually there also a penny can call functions which kind of words like exceptions but not really in a technical sense through but I won't go into details about them just know that they are here so if you we are interested in is good for them the data classes that have
been used you know doesn't have it was as if his structure and human invention efforts to them turn to make a functional the anything you need to define especially if you argument this is very similar to Python where is your argument is called self the the receipt refuse Anselm's argument between the function words and the music name In this example pieces you argument of type person go has a convention and that receive argument should have the 1 character named it the the 1st letter of its type also notice how we imagine 2 using string method and go to changes in representation of a person when you when you when you printed that this is kind of similar to 5 and so the bathroom magic is John methods but go this is achieved using interfaces which you want talk about this because the topic and actually you can attach the that's not on this drive but to any other types of integers strings to functions to whatever structure NGO
doesn't have constructed that there is a convention to enumerate the constructed by creating a function that best initialization immediate and this is our previous person's drug initialization we can use to construct a function we can also see new students here and notice the asterisk near the person died at the function definition that means that the function return a pointer to the 1st time also notice the ampersand inside functions that is a way to return a pointer to die yes us pointers but again we want discussed entity the OK if
you words about inheritance go doesn't have once again that it has composition for embedding you can embed the instruct inside a child's thought introducing its methods like the were defined on the child this to look at the example on the left we have requested by the inheritance and on the right have goes that Dr. typing that person type and can successfully the method as it was defined in Dr. type kind of inheritance the Gillard species
some cool stuff and we all know that Python has something called Context Manager use a well known example we chose to use each of context management you you really file and automatically close and in the end go doesn't have context managers that does have something similar which is called a deeper it is for a keyword can be used together with any functions inside another functions and when the function inside which the 1st statement is used feature sets ecution it differs statement could be called just before exiting function sounds weird but I hope the the example can clarify that we're reading a file and this function goal and we have differ as close and it doesn't matter if any error will happen on something else before our new closed anyway we can also see the difference in style here in B name of function or a method using underscore between words and go a conventions to use camelCase also notice that the how we use the results variable inside of fucking function definitions well this is called the mean return value and treated as a variable defined at the top of the function that is you value and we already know that gives you value for stink but the last comparison
concurrent programming I hope you are able to see the coach because I haven't had to make forms with smaller to the 1 slide so let's start with the amount of approach usually Python these meaning here we have 2 types much much less cold by the book this not the case here we have the 2 similar problems which concurrently retrieve the content of 2 sites nothing really to discuss about the path of version but I'm using the HTK together with a you which is the package which should be installed on the paper and it seemed to weights index which is available side from 5 3 . 5 this talk about version of the code in gold concurrent programming is built right the language which really really also 1st we define a list of euros to fetch then we create channel for responses channels are used to communicate between different parts of the program then for each URL we tightly protein which is just the usual function the trans synchronously and fetch responses and sends it into the response channel to created coaching which has fats the pool keyword and that's after that we start to listen to messages in response channel and as soon as you message is received immediately printing to standard output also note that we use in the 1st statement you too close response body and we have to cast by restrained because we we can bytes suggests details also I'm not doing any error handling handling firms not Python knowing don't just convention here because to make to make choices and to show you on the what's important so from my point of view concurrent programming goes much cleaner and understandable in Python even with basing to
them more uh let its name as some cool features that we discussed that this here so make a new functions so that they used to initialize different types and go race which are the basis for slices pointers that hold the memory address of the variable interfaces to either it is defined the behavior of an object if something can do this then it can be used kind of a dot type in Python died precisions and types of features which are used with interfaces to cost them to concrete type in advanced techniques for concurrent programming like offered channels and statements and say package which allows us to bypass but actually the legal problems of for example to interact with you the 1st class and starting from a from goal 1 . 5 we can easily cross compiler problems this for different platforms just by changing the environmental variables then features that
go at least in the comprehension there are no generators to go but we can use good genes and channels to achieve the same behavior and the of greatest but we can easily read a function with the function to achieve the same behavior no exceptions um gold doesn't have the the classes descriptors and magic methods and probably never will but who knows the LC-MS pupils so the conclusion both
languages good standard libraries and so a lot of third-party tools for almost everything that that's not actually really actually goes go doesn't have good stuff for scientific programming like ponders number and so on but go is relatively young so I think that something something will be created eventually um you to France uh simplex and syntactic sugar we can be much much more productive and by because we don't need to re implementing this again and again so for example if we need to to get dictionaries we just called this method if you want to check if something is contained in a region which is right it's something really and so on but can go at every time you have to far this fold to do they tell us something and to get what you want to this is really but but again this is what we have on the other hand concurrency features and is compiled and type nature are worth and so you can easily develop commercial software with and sell binaries keeping your source code secure also yes you will spend more time coding but in the end I believe that problems which we can go 1 more secure because a lot of errors are found at compile time and also if you developing something that should benefit from concurrent execution in goal is just to very good choice for these kind of things and the last point that I would like to address and maybe sounds stupid but I think they go doesn't have soul I mean I have to explain I mean that when I'm holding programming something something Python I feel myself like in an artist which creates some masterpiece of something of hopefully most of these and so the goal you just I know you don't you in happiness and satisfaction you know during development users and then you just have to to try maybe just means that this is where I feel and let's try to answer the main question you need to switch to go off course not Python is great and but do you need to learn goal yes definitely yes let go because these languages won't go away anywhere because it's made Google I also the funny thing is that a lot of companies that use 5 also use go overseas to you I became interested in getting good job or didn't promotion or something like that the goal is the the right language to learn a we have a time right there is I just don't wanna show it useful links so but you can make the photos you want they will help you in a minute ago and yes I think that's it and if you're interested diamond not paid by Google to promote their language so I just said my experience with this and I hope I was able to motivate you somehow to try to go and if it was somebody you you will like than it was worth thanks if you like so now we have a bit of time for questions wait for the microphone please hi thinks this talk was very useful to me and I'm going to the end the most difficult thing I found when maintaining and an older go programming like it was a year old was and that the standard library seems to be changing a lot I was wondering if you had any experience dealing with changes in the standard library and how to fix the more detect them before compiling actually not that difficult question I don't really announces the timing of that and here of the present so on the other mothers would say some but what circumstances do you think might look to migrate from Python together I will kind of the princess if you're on the part of the you looking at implementing some of the concurrent features of Part 3 this indicates was looking guy conservative the getting used to the whole because this is actually current bottom 3 what think that economy is no already what doing well if you and I think that you're happy with your Python code and it works OK and you don't have any bottlenecks that of course you don't think gold or anything else but if you have any problems then why not try say from the beginning you must have a hyperplane is 1st part of the society how did you get into that a wall would raise the cell to move towards governance was the only get to the galleys OK and we we had no company we have the service in Python which wasn't working really not because it was so we can better do something just you just we couldn't process processes the data the amount of data we have so we decided to try to go and it it's working really good right now and this is clearly we're really happy with his choice we have we we I think that we will we will be right in our services goal that thank what I test what is the would be an application that you think should not be written in the of that should be written in Python like what would be a good example of an after that like that would be better 10 I don't think there is this kind of application that shouldn't be poised to go I can't think of a way why and you can you can forward everything go I mean the point of 14 something to go always only if you need something to make faster or a few rules if you really want to benefit from the concurrency because Python concurrency hot from my point of view the but they said you we are in other kinds of if you have any more questions you can meet next outside of the development