Merken

Through the lens of Haskell: exploring new ideas for library design

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
but he had a real world that's a little bit about the beginning of ideas we consider from us to make the libraries 1 of the OK so
and also can find me on Twitter and as a way to procrastinate highlight here that means that learning a language and this is a picture of me during the gendered those what should be values in when I was coaching and when it wasn't until the 1st I was walking on a bit of scalar code so this is my face and I welcome has I'm a few interesting stuff and I'm here to talk to talk to you about start some
side of going so last your answer your right and it was you know about that was what I think of them from school was about half of the language was small strongly drive a language with the villagers collider and what item has learned from classical in the limits in time we know what types of annotations and guide your talked about yesterday so we we have learned from Moscow but talking about task the language he's very last year so it's a bit outdated and we're not going to talk about the language we're even going to suppose that it's the exact same language despite let's say yes coexisted dialect of vitamin with a slightly different syntax but we we don't to what is isn't it
interesting to us today is a skill because system at the community the community and the kind of libraries that produced on the left you have the right to take it next you protein know and the right of the Pascal equivalent Hackett scaled by didn't it so let's see how the Committee for all the money said defense and what kind of ideas we can get it
from that so 1 of the hind ideas you'll find very
often in the communities the idea of design space the idea of design space in the area of the idea that for a given problem you have a lot of solution to offer full space of solutions for 1 single problem of some of the solutions we know and some we don't know yet and 1 idea that's very presenting DFT community that is also exploring the the design space in search for new solutions that we don't like and that might be more interest than the than the 1 we have in regards to the what maybe falls on different solutions with different trade-offs all that on some situational or altered arousal or faster to run all just but easier to learn in an entry and so it is really the idea of the there are states we we have to to
discover but in the north in the then fight and say they should be 1 imperishably only 1 obvious way through it and it's
like Haskell ahead but let's keep looking better this sort of and so all you often find laborer is also at unirradiated but we with which are different like from deception and choose different trade-offs and it's times library with would like to compare as much as possible with the existing libraries so this just not reinventing the wheel all it's doing is in something new because of the all the stuff we're not invented here it's really searching for the new little more interesting will just trying and that is not
completely foreign to the you might some ecosystem because a few years ago I constraints release the request library which is a library for ordering HTTP clients it was already at that time many libraries to emission lines but this was the new that try to be as easy to use as he has since launched the movement called item for humans anyway he tries to tranquil and ritual that followed the idea of making libraries at that are a simple and easy to use as tool and the weights it's kind of a train to explore some new parts of the design space from of web of data also used in the multiple so we
are now going to take a look at the Huesca libraries to see you some parts of the design space we don't usually see in Python but but are explored desk community so all
here you on the left side of the of the loading the library thing that they might like it indexes are on the right of the loaded libraries and just of package index when I when I said that not a similar out I wasn't lying you see those same packages not allowed don't delight in both cases the most the mode package the the the jason package and in both both languages you of loss of multiple like multiple attempts to solve packaging problem and you have some HTTP client libraries but on just cosine-tuned find a few negative that that do not have the right to make with them so what so the lands at passing all conduit and I'm going to talk a little bit about them so the the 1st 1 is a
to cross section I had to
use the above the million look what it might which is like what sentence was moving with someone has a line from any in line with what plants were with the next line a mind of things this is that it's not a real life use basal legislature life is the input of the but these supply find the 1 used load when modeling so I need a way to pass so there's a lot and there's actually a library and a that of that which is called survivor faster and this is the 4th edition of the package when you open to the prediction this is you do with see so just to understand what to read when you have something with 2 blond like that of subject to ones positive titled it means there's something called motherfucking which side of this leads us to define undirected just a list of lines and lines and then we always of prevent and all that interest me in respect to the the the posterior survival so I just told you what the subtitles and posteriors kind an object that is defined in the other class expected and the way to use it is by using function which is fine the other was package which is not the but it was the supply capacity of the function is called Mussolini and it takes this is the length bytes stream which has and introduce the neurons effect all those right side I actually want and that's it I use also from the library and the functions of the user libraries and then I'm going to be there is not exactly how this function looks like it's going to promote the kind of type of object i want to possibly be explained by the end of my string and returns the your unintelligible what Boston supposed to pass and that's not the only way to use the boss of the state provides a few other ways like variants of the same incremental when you want the very of the set of data to pass and don't want to put it all in memory before passing it so you the to the possibility that the time and I can do that with the same process used to produce function and yet there is a way to use is life using that possible to use as a possible give us so there's a there's a there's a lot of functions I can use to do that in the answer you have a family is make many take faster and get a positive attitude about so many of the certain number of missing the passages all right so I can be useful to you these 2 busses to get about so that we want to know something all of the training was a new what much and all the way to use possible given by the past and
do the best present who wrote the subtitle prosody Germany of that but doesn't really thought line library to possible titles and I get a lot of ways to use it for free and there is a whole lot of falls apart there's no longer on the same principle you will find the package repository look like it to me this the so you get a lot of these all of the things value all possible grant of structure in front of 5 all parts of the main entrance but we'll return you have a system that only if it matches the animators voice she needs will restore modifies you'll find most of the in you also different libraries made by different people in the original source libraries in the 1 thing that is useful in something that is defined the cost of this you you want many of the children of this library you can use with each of the waste of I just so you so in every language good libraries simplifies the implementation of human rights less lines of code but in this situation the good libraries helps to simplify the interface energy right let's documentation unless interfaces and and it began having less things you know for using library so we have a generic solution which is not a passing the basic solution and a lot of specific building blocks that you just can't like bleeding in use we go the meaning of single library
I would like to show know exploration of the part of the design space this country country
it's a streaming library during this meeting we have a long string of a sequence of this object of something and want to to treat them handle them but we don't want to look them all into memory is what what when and there is there out really 3 concepts in quantum the producers we just produce a stream of values and the consumers we just consume evaluate something with it and conduits which was consumed in a one-sided produce something else on just on your side and once again you will find a lot of this the constant in lots of different libraries for example can find somewhere in the world and has been reverted to read that can do it that if you look at this function that gives you of reduced from other subjects and this enormous stand up to the needs of and you will find a conduit and it's that is used to be compressed a stream of of minds and was thinking of the consumer that we just wouldn't well what if they get into a fight and conduit provides and a very which is like very of and you just like you just plug in different parts of funding different libraries you blend them together and you get the school program that actually read from something that is it's an original file and every single spots was written by different people and can be found in different library at the end of the way happened the great constant you can find a function that just think about so we've seen by the N turn it into conduit so now we default to aligned itself so like the Boston library I up behind the high-performance subtypes of streaming library which is not very useful but still and I can read I can read from subtitle file in in the the past we realize that has than was story to bias in these activities and I as a consumer in in the was don't do that you're going to to get out from in the highest disability right but you could you could try so once again we find a sampling of the general solution for fostering and a lot of building blocks that all have the same interface and its extendable and read recently been like lots of different people and the last
February and you shortly student at the origin of the let's this problem and
strength to solve these data manipulation so here is something that we can manipulate the blockbuster because every 1 looks example with the cost of ITER is made of examples considered harmful and think it the 1 of those and then some comments and words let's give you is the abstraction of the the idea of mentally mentally single piece of data in this case that which is less at that point to the title of the of what and I can used to view function with landslide and the block was in the it's just to get it just regions of the value appointed by the events but I can also combine to let's with that don't have the syntax is quite familiar environments of point of what was the let's points to the name of people that combine them with the help but by the end to of the function and I get the name of which was and I can use them as a to just use the same function classes and that that's the new value and introduce a new book approach with but you can't get anywhere really gets interesting is that lens can also also be used as data centers for multiple values in that case the comments which is alleged that point to the list of commands which is not exactly the instances from so and that means that the resulting comments that each point to everything commands the thing that makes an itemset mining with plants we also to get something which is called promise that
wants to every single what sort of looking at the cost of thanks to his definition to 2 to get better
the interesting part in that is that most databases lands traversal of values so the don't against them into a viable but I will go and contents sold here is of various of traversal point to every single content of the comments in blood and I can use to stuff on that value to give a list of and I think I can use to change the content of every single commented that that not because you didn't read the comments anyway and these these values so I can put it in a viable I cannot function return it and I can have a library which on its way to put it in library and have an abstraction of the the manipulation in the library for example if there is 1 such library which you manipulate Jason wavelengths we provide just a handful of offences which which points to everything of value in this case the I think some of the properties of an attribute and wants to attributes of the data so we have the same manipulation functions provided by the environment so you can know manipulate Jason directly on their examples which is provided under the language is provided the HTML balances when they HTML so we see HTML these of it's real will we use a lot of e-mails and we now have an abstract data manipulation functions of objects so those lenses which led looking to the HTML so simply we we want traversal name full name which points to every single layer nodes in the deviation is treated as a given name and we combine it with the immense contents which quite content and so this line is just what we need to define something that that can get every single item and its general documents and so what was the time of the general solution of data manipulation and a lot of building blocks in different library so that that's really that some of the things that something we can see lots of haskell libraries don't really freezing point 1 single interface for all of the different libraries so why am I telling
you that they're just not because it's nice but also because I boring stealing ideas from other communities or other languages is if the good way to produce excellent
results for example my talk about requests a little earlier requests on provide a very simple interface to the gradient based hearing was it provides the gets function with text string which is the better is what you want and give you a response object with which is exactly what you need and rank is a school library which is heavily used by inspired inspired by request and provide the the exact same gets function we just because the same the combined with plans for the manipulation of so instead of doing really with all the responsibilities and considered to be a of type that's exactly the same principles and this is 1 of these is the best that the library for manipulating those for making it should be request and it's stolen seamlessly from from like because by deliveries unexamined idea so taking ideas from other languages have produced of some libraries and in the other direction what which is the measure of the 4 reports based on the distance it is inspired by the library has been called projection and the main idea it's it's a bit like unit test except instead of making 1 example Section taking good work on that example but it will did say the problem you want to do check this based if if you couldn't think of a function class and you expect them to what the fight decoding of long and
I want to get the initial stuff back then hypothesis will make sure this is true for every single it is with text data entry area and that's a really good you know there are things that you can find if you think of all these full of them and and this is an excellent library invited you can use it right now it's so some needs was invited by looking into what what
is the so conclusion on 1 the most of oppression and I encourage you to explore the design space who at what existing what doesn't exist and make use steps to to solve existing problems with differently and entire explain what the difference the white and you need different from what reduces and the direction of you could look at you that's what you are usually going is factorized library interfaces make libraries that the man made over that that through use of the libraries for the interface so that new library just a single label stuff that you don't have to you can just use it with what you already know and the bonus conclusion is that you just conclusion cooled down something you something in Scotland Haskell and uncle anything that's unusual you what part of the design space and explore and if he could fit right and and come back at your right next to make presentations about what would you that in that language and you few few the creator of the city but was B there are and it seems to me that and I thought well there's several libraries that have the same interface that comes sort of standardize the point for databases we have about the standardizes and phase 4 for a HTTP servers we have was the now there's a single which kind of standardizes facing this incident do you have do you have any comments about I think the hospital has always better the problem with that is the way in which you can you can just read it your library that will about that we will be that common interfaces you look through the that process which means that I thought I would like
I had read but I can create a library for for human you the main reason why we do it that way tighten is because Haskell as a compiler that is able to check that the interface is respected by the Library invited D. you get a library that doesn't have the exact same interface would expect you to just get an error front side so we need that we need to do that because we need and the role of a server of the strong source of of of the definition of this was this issue of what how the efforts should be thank you of the the valence there was the thinking about kind of the same thing with all this strong in 1 of the most of it's on the other possibility is defined interfaces or protocols on you and do you use your possible something like what is commonly used this province of has fallen those types of languages and we can we 1 of the things Due to the compiler sticking it actually helps but it's not necessary but we we already have a few of those common interface uh but you the French and the data in the database always just on of which from what I was looking for whether from local conform to 1 single interface and that's what's so they act I think I think it is completely was we what are we going to have to bite and that of 1 of the phases to be reused as well as long as that the face specified in the legend the regression the last about what job is to do with you think that that has has this a lot like a design pattern in software is encoded in the the died but it's usually to practice so mom mom that's 1 example and certain other examples the wider world would benefit more from you know having a standardized way to do think standardized factor and always right classes so I think that's a stronger the question so this year I only to get what what you said sorry and I it's it's a little bit of the same was 1 of the ideas hidden VAT and what what I talked about finding common patterns in the and stuff and giving them is that the common of which is not something we to battlefront like maybe we do it but it's it's much more can exceed MIT Libraries converging to a common signal of set of interface with more than 1
1 single formalized the I'm going to the this generic libraries to provide general solution also means composition with specific libraries from I'm 1 reduces there's something in Haskell it makes them more natural to do what users do something you know which language features of Python that we should use more or less in order to make that happen as I said the compiler of the right life and it helps but I think it's also big because of the mind set of what does that how people do it the to have show but it's it's so slow the community and the way to what questions when do you use highest and was for what problems that has to do with this I temperature use but most of my project holidays because I don't want to go with the marginal school of most of my project of the on project so it's more like what they're going be something that slide into 2 alternate of still although it used by default for small little thing I mean on the half an hour and a half hours military and try to use for you to do the to your political project I think will get bigger because so he the wage wants kind of help to make some things called and is the year of the of the feeling that the best practices by them to be on this holding about the community back that's looking into other coming to use solutions for common problems of of program languages communities have that in your ridiculous text so on in Python but there is this notion of could be so good bye then goes on a people say and so this this wish to have the following solution the linear span and was looking in the fall of solutions overlap in which says that we can learn about 2 and I don't know if you have to 2 meanings to lighten the load of light and is the the line that I think of the idea that the whole slew this cell structure of so lutions and write this you know you can find in other languages solution that task was that we would call widening that against structures and elegant solution to so maybe believe that the fact that the name by parameters in some way to look but more I think you can find solutions of the lower and language and find the just as tightening as if it was written by the watermark quick question the major issue like the
Bit
Momentenproblem
ATM
Formale Sprache
Programmbibliothek
Skalarfeld
Code
Computeranimation
Task
Rechter Winkel
Stoß
Datentyp
Formale Sprache
Programmbibliothek
Inverser Limes
Physikalisches System
Äquivalenzklasse
Dialekt
Computeranimation
Data Encryption Standard
Subtraktion
Flächeninhalt
Vorzeichen <Mathematik>
Diskrete Fourier-Transformation
Raum-Zeit
Computeranimation
Aggregatzustand
Subtraktion
Arbeit <Physik>
Programmbibliothek
Computeranimation
Managementinformationssystem
Nebenbedingung
Benutzerbeteiligung
Wellenpaket
Gewicht <Mathematik>
Browser
Mereologie
Programmbibliothek
Raum-Zeit
Computeranimation
ATM
Einfügungsdämpfung
Bit
Browser
Formale Sprache
Computeranimation
Streuquerschnitt
Metropolitan area network
Multiplikation
Automatische Indexierung
Rechter Winkel
Programmbibliothek
Bildauflösung
Mereologie
Prozess <Physik>
Formale Sprache
Familie <Mathematik>
Parser
Euler-Winkel
Computeranimation
Eins
Metropolitan area network
Streaming <Kommunikationstechnik>
Prognoseverfahren
A-posteriori-Wahrscheinlichkeit
Gerade
Schnittstelle
Ereignisdatenanalyse
Umwandlungsenthalpie
Lineares Funktional
Dicke
Dokumentenserver
Gebäude <Mathematik>
Güte der Anpassung
Quellcode
p-Block
Knoten <Statik>
Ein-Ausgabe
Arithmetisches Mittel
Menge
Benutzerschnittstellenverwaltungssystem
Rechter Winkel
Festspeicher
Reelle Zahl
p-Block
Chatbot
Zeichenkette
Aggregatzustand
Schnittstelle
Wellenpaket
Klasse <Mathematik>
Zahlenbereich
Implementierung
Kombinatorische Gruppentheorie
Code
Informationsmodellierung
Reelle Zahl
Datentyp
Programmbibliothek
Datenstruktur
Implementierung
Soundverarbeitung
Videospiel
Kanalkapazität
Einfache Genauigkeit
Mailing-Liste
Physikalisches System
Objekt <Kategorie>
Energiedichte
Last
Mereologie
Lineares Funktional
Folge <Mathematik>
Subtraktion
Gebäude <Mathematik>
p-Block
Elektronische Publikation
Raum-Zeit
Computeranimation
Objekt <Kategorie>
Streaming <Kommunikationstechnik>
Freeware
Socket
Verbandstheorie
PCMCIA
Rechter Winkel
Festspeicher
Mereologie
Stichprobenumfang
Programmbibliothek
Quantisierung <Physik>
p-Block
Optimierung
Schnittstelle
Zeichenkette
Lineares Funktional
Mereologie
Sichtenkonzept
Punkt
Abstraktionsebene
Klasse <Mathematik>
t-Test
Einfache Genauigkeit
Mailing-Liste
p-Block
Ereignishorizont
Dialekt
Computeranimation
Data Mining
Rechenzentrum
Multiplikation
Wort <Informatik>
Programmierumgebung
Instantiierung
Subtraktion
Punkt
Formale Sprache
Computeranimation
Service provider
Metropolitan area network
Trigonometrische Funktion
Knotenmenge
Polygonzug
Programmbibliothek
Inhalt <Mathematik>
Materiewelle
E-Mail
Große Vereinheitlichung
Gerade
Attributierte Grammatik
Schnittstelle
Lineares Funktional
Kategorie <Mathematik>
Abstraktionsebene
Datenhaltung
Gebäude <Mathematik>
Einfache Genauigkeit
p-Block
Quick-Sort
Summengleichung
Objekt <Kategorie>
Mereologie
p-Block
Programmierumgebung
Standardabweichung
Resultante
Lineares Funktional
Bit
Komponententest
Formale Sprache
Klasse <Mathematik>
Automatische Handlungsplanung
Computeranimation
Richtung
Gradient
Objekt <Kategorie>
Softwaretest
Datentyp
Endogene Variable
Programmbibliothek
Projektive Ebene
Garbentheorie
Decodierung
Abstand
Einflussgröße
Verkehrsinformation
Zeichenkette
Schnittstelle
Schnittstelle
Subtraktion
Punkt
Prozess <Physik>
Datenhaltung
Formale Sprache
Einfache Genauigkeit
Kombinatorische Gruppentheorie
Inzidenzalgebra
Raum-Zeit
Statistische Hypothese
Computeranimation
Richtung
Softwaretest
Flächeninhalt
Mereologie
Programmbibliothek
Server
Phasenumwandlung
Metropolitan area network
Schnittstelle
Standardabweichung
Schnittstelle
Bit
Compiler
Klasse <Mathematik>
Formale Sprache
Zellularer Automat
Computeranimation
Task
Software
Prozess <Informatik>
Lineare Regression
Mustersprache
Datentyp
Programmbibliothek
Datenstruktur
Default
Hilfesystem
Gerade
Phasenumwandlung
Schnittstelle
Programmiersprache
Umwandlungsenthalpie
Videospiel
Parametersystem
Protokoll <Datenverarbeitungssystem>
Datenhaltung
Entwurfsmuster
Teilbarkeit
Arithmetisches Mittel
Rechenschieber
Menge
Refactoring
Server
Projektive Ebene
Ordnung <Mathematik>
Elektronisches Wasserzeichen
Fehlermeldung

Metadaten

Formale Metadaten

Titel Through the lens of Haskell: exploring new ideas for library design
Serientitel EuroPython 2015
Teil 135
Anzahl der Teile 173
Autor Dubus, Georges
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/20116
Herausgeber EuroPython
Erscheinungsjahr 2015
Sprache Englisch
Produktionsort Bilbao, Euskadi, Spain

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Georges Dubus - Through the lens of Haskell: exploring new ideas for library design Haskell is very different from Python, and provide different tools to library and framework designers. As a result, its ecosystem is filled with libraries and frameworks that solve the same problems we try to solve in our favorite programming languages, but with a very different approach. This talk is an exploration of the Haskell ecosystem, from the point of view of a Python developer. We will review various popular Haskell libraries and frameworks, focusing on the library design. The goal is to provide the audience a sneak peak of some different ways to tackle problems, and hopefully to inspire library authors to explore some design space that we don't usually explore in Python. This talk should be interesting to any intermediate Python programmer who is curious about other ways to solve problems. No Haskell knowledge is required from the audience.
Schlagwörter EuroPython Conference
EP 2015
EuroPython 2015

Ähnliche Filme

Loading...