Garrett Smith - Why The Cool Kids Don't Use Erlang

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello good afternoon thanks for for coming we're gonna be talking about some really cool topics so while the cool kids don't use airline oh let me wrap the track host is not available so let me introduce myself I'm Garrett Smith programmer of cloudBees you might know some of the videos I've done during the movie part to this the sequel of course that the sequel not the original MongoDB it's web-scale so that's my side project I'd like to use Earling I use Earling as much as I can on a daily basis I think it's a great language and I'm a fanboy I mean I'm the most rabid that you'll see but I want to try to breathe some sobriety into my own enthusiasm here so I'm just gonna kind of calm down and we're gonna talk sort of rationally today so incidentally throwing tomatoes and other things is fun but do it on Twitter it's even more fun when you do it on Twitter so use the hashtag EUC 2014 and that's me I look forward to the Beus okay so the cool kids that's an interaction of an indirection the first interaction comes from and I don't know if this is sort of worldwide but in the US there's sort of this niche kora clique called the cool kids the cool kids are the kids in the Navy and the playground they're always dressed cool and they have you know the best girlfriends and boyfriends and those are the cool kids and you know I was never a cool kid so you like to make fun of the cool kids see you know you study hard and learn Erlang and do other things and you make fun of the cool kids so that's the first in Direction the second in Direction is the video called all the cool kids use Ruby and this is of course me making fun of sort of technology fashion fashionistas technologists so-called who allow aesthetics or a sense of beauty but in a sort of capricious weird arbitrary sense rather than physics rather than hard engineering problems so this roots right for fun now if you haven't seen the video you can now and afterwards else and you'll know what the heck I'm talking about here but as it applies to today oh let me go through theirs it applies today the Earling is is is probably you can appreciate that in this room Erlang is very popular fair or you see and it's in Stockholm so I think it's safe to say that Erlang is very very popular here but in general Earling is not that popular okay so here we have a two-dimensional plot of languages the bottom axis here is popularity rank on github and popularity rank on stackoverflow everyone can see that fine and I can barely see it here so so let me point out where lling is there are a couple of a few neighborhoods here I'm going to point these out erling is up here and there are two neighborhoods that I can kind of spot there's the super this is really the popular group this is popularity up here this is kind of another neighborhood we've got Scala Haskell closure Lua or Lion CoffeeScript go ActionScript groovy erling is over here up here we have Java JavaScript PHP c-sharp Ruby sepal you've heard of these CSS you for the CSS so hurling is not in the top and here's another view and this kind of shows you this is a laying pop this is an index generated by a waiting of other particular sources and in this case is an even weight of github Google files Olo Craigslist and Google search so it's a different view but we have a similar neighborhood so here we have Erlang grouped again with this new usual suspect Scala lua odda ada sorry Pasco Haskell lips Co closure Erlang there it is right of a Fortran excellent so so I mean you know I don't know if it's controversial for me to say that the cool kids don't use Erlang I'm pretty sure not here but in general so so what's the basis of it why am I even doing this thing this is motivated by what I call the bike shed thread in the other lying user questions list and this happened a couple months ago and it was very interesting because not much actually happens that sort of passionate and emotional in the Erlang list and people like that somehow I get bored there I'm like what some excitement so we had somebody from the Java community come in and we had some people from 0 mq community come in and they were new and they were interested in learning more about Erlang and there was a one thread that was started and it had it started with his topic of OTP and renaming OTP and it sort of went into a whole bunch of other things and it seemed to to Center at least from my point of view on topics of usability and grok ability understanding darling that was my interpretation so of course this is a really interesting topic to me I'm passionate about usability grok ability teaching adoption getting people onto the plate onto using her lang and solving great problems with this tool so I was just being yeah okay great that's a great question so and I would get pinged literally offline private messages on email from my friend saying stop feeding the trolls don't do that don't you're ruining everything this is terrible and I'm like I just like what are you talking about I mean we're having I thought a reasoned discussion about you know these different topics and and it's like what so so okay fine you're getting emotional this is unusual you're directing at me okay that's fine what is the problem here so the problem seemed to be this topic of bike shedding so a bike shedding I had never heard this before I'd tried to look it up so with Wikipedia Wikipedia it and here we go there's a really really good descriptive term it comes from a story from C Parkinson back in the 1957 or so and was talking about a atomic energy facility reactor and the discussion was brought up about a very technical technical problem and very few people even understood the problem and so very few people contributed to the discussion but then the agenda moved to the color of the bike shed and everyone could understand the color of the bike shed and everyone had an opinion so the debate was roaring and and very robust and and and so there's this descriptor to describe what happens in a list or in a community or discussion around something that people consider to be trivial well you know it's trivial but really what it is is it's easily understood and a topic of what you name something what you call something everybody can sort of intuitively understand and everyone has an opinion and so we had this rallying of opinions about how to understand something and how to describe something and how to think and I'm just like yes this is really really important stuff but there was a huge element a huge element I mean there's people like what happened to the Erlang list I'm resigning Ike this is terrible let's fork the entire thing and and the issue here is very reasonable it is a bike shedding dynamic where there are a lot of people on the list who are very concerned about hard problems and that's why people like Erlang that's why people like the list it's while people like the community brilliant community brilliant people discussing very very difficult problems and so when it seemed it felt like we were now moving into territory which was the color of the bike shed oh my goodness what what could possibly be worse for for for erling so I handle emotions you know I try to like buckle down and get really rational so I'm like well what's going on here it seems to me a dichotomy you've got you know on the one hand people who just don't think adoption usability will you name something the learning process it cetera is that important because really at the end of the day if you have a hard enough problem you'll power through that stuff and we do that if we have a hard enough problem we will push through all the barriers to adoption and we'll adopt it so they've done it I've done it you've done it we've all done it so when somebody comes in and just like look if your problem isn't hard enough or challenging enough to solve with Erlang to justify your investment in reading study etc etc etc then maybe it would be more at home someplace else and you know respectfully except to me offline so what I want to do in this case is I actually want to measure this so what's important to you it's important to me what's you know there is no absolute standard but we can do is ask and we can do some you know some science maybe it's a mature science but we can nonetheless do science and we can say what is important you know what is the problem you know what you know it cetera you know and then collect this and measure it so what this is is data so I'm providing data now again as a sort of scientific you know data scientist statistician this is probably this is probably not this is the material for a thesis so if those are you want to poke holes in methodology etc that's fine I accept that but it is some observation and I'm gonna try to you know do as good elaborate what the methodology is and how things are computed etc so you can poke holes in it but what for me this is is simply an observation and when you have data it changes the way you think maybe for good or for bad it lets you - it lets you think differently and then it informs your next decision that's my expectation here this is not to go measure and come up with a bunch of firm conclusions not at all I have some speculative questions some some possible things to think about but this is really about measurement and so I'm not going to try to push past that okay so let's talk about the survey methodology so what I want to do is talk about what the survey is so you have an idea of what I was asked of curiosity how many people filled the survey and this is the Earling survey 100k there's five thank you that's in so this is a big community we got a lot of results and I deliberately went outside the community in within the community outside and we have the data on you know sort of different collectors how the original messages went out and we can differentiate that so if you'll want to dive in the data sets are available the summarized data sets are available so they're anonymized if somebody wants to go do more harder science on this it's available but the methodology in general is fairly simple I didn't want to prescribe a bunch of I didn't want to make this difficult so I just said type this in so the questions that are freeform questions so the content that we're gonna look at today is his freeform apart from demographics I wanted this to be completed in five five minutes or less I didn't want to burden people I wanted enough people to get into this and provide input so that we would have something it was significant in size so I have demographics as I said for control I tried to create questions that I felt were a minimal set so basically every question was was was you know the answers could theoretically be useful so I didn't want to ask something that was was not useful okay so here are freeform questions very simply what is your general impression of Erlang so this allows somebody it's just to type but there's no there's no prescription good or bad what's your impression some people said great and other people wrote you know for parents for detailed paragraphs so that was the goal whatever's on your mind tell me for what situation is the second question for what situations would you consider using your lane so was interested to understand how people perceived our land so yes a general impression but more specifically how would you apply this so what problems do you do you see Erlang as being useful for and that would sort of inform you know helped me to understand help us to understand where folks are coming from when they look at our line so what's the messaging and what's the perception about how you'd use this thing what challenges do you see in adopting or allowing for a project and this is this is a very interesting question it's a softly put question I you know it's just challenges I don't want to say what problems you have I say you know in adopting Erlang these are carefully I've thought about these and I just the goal is look just tell me what's our challenge just ease into it and we got everything from from very strong borderline emotional responses to I have no idea why you know you're actually the other one would be too you know no challenges at all absolutely none no barriers so wide range and responses well languages or frameworks would you consider as alternatives to Erlang so interested in what other people are looking at I think this is useful this could help us to look at those communities those languages to you know consider how those are structured functionally technically as well as culturally incidentally this is not necessarily an alternative to airline well it is an alternative generally that's exactly what the question said many people didn't many people said well I would use it use something in addition to it so but that's what that's in the text what about our laying over its ecosystem libraries community governance etc would you change so this is the you know if you can wave a magic wand how would you how would you make things different okay so these are the demographics so those are the qualitative questions of those are all text-based this is the demographics how many years have you been working with software I'm gonna kind of move through this because it's not bad interesting it's more used for control so was interested in like you know narrowing a field this is available less than five years between five and ten and more than 15 basically I want to get an idea are you are you new to software are you experienced over 15 teen years are you someplace in the middle well look at the results in a minute how many programmers do you work with on a regular basis by myself between one and five and more than five so this is my sort of split easily crocked are you working individually on a small team or a large you know I consider more than five to be quite large today historically that is certainly not the case but I think the results are okay what is your role in choosing a language for a project so this is sort of influenced alas I have no implement not much input I provide some input but ultimately someone else decides I consider input from others but usually have the final word and which one of these roles do you plan your organisation are you a programmer sort of a designer or an architect or are you in the business side and people could answer more than one of these all right okay so I had 100 anyone responses and then just four were skipped because they were they didn't either fill information in or that rolls or it's just for though so it wasn't bad okay how many years this is a demographic so the question here is who answered this so this is gonna give you an idea of who participated and I think the result of this will just show us that this is an informed group of people so very few you know very new to software and those who had between 15 years and over 15 years roughly split so he has this is an experienced group of developers how many programs you work with on a regular basis see a relatively small amount by themselves and then between a small team what roughly about a third and then more than five so I would consider a large team about half and then what is the role that you use not much influence I have some input ultimately in the final word you can see that by and large the people either have some influence or they are quite you know they're the decision-maker ultimately so we're talking we're talking about an audience that that can make things happen and finally which of these roles do you play in the organization programmer architect designer and that's the layout so what's the conclusion here of this demographic I think it's reasonable to conclude these things they're very experienced working teams highly influential highly technical articulate one of the things that impressed me by reading through these one you know almost 180 surveys people are very very articulate and respectful and thoughtful I can't believe the quality of these I was it was stunning to see what the community is produced ok so that's some background there let me talk about the free form so this is the methodology avoid biasing with predefined options we talked about that manually summarize the text fields into lists and this took a while so what I did is if somebody took the time to to I read every one and I summarized every one somebody took the time to type something I took the time to write it I also took the time to think fairly hard about what they were saying and map their points into tags and the tags represent sort of a representation of an idea and I'll show you some examples of that so this is a way that I can quantify this qualitative result so the goal again was to get people to input and then I want to build a measure it so this is a fairly labor-intensive process but I think it's worth it so then count the tags for question and then represent these using a tag cloud and we'll see what that looks like in a minute and then finally in the tag cloud you look at some some things had some big outliers and I was interested to see what things look like when you pluck the outliers out sometimes that's that's just as interesting as the as the first result okay here is a sample answer and tag list and this is representative of a quality of the response I'll just read it relying on guess so this is what about the Erlang and it's eco system would you change so this is sort of hey you can have some constructive criticism here relying on github is the de facto go-to location for Erlang libraries is a bit of a weakness having a non-commercial foundation supported master location which can be mirrored for packages would be a major plus an additional concern is the way EEPs are managed and published there's no real status progress indicators etc documentation could be more friendly for users the official documentation structures a bit difficult is it difficult to navigate and makes absolutely no sense when approached when approaching Erlang as a new user I believe relaxed calm is easier to navigate I believe etc so now what I took this I said okay you talked about package management here so I have packaged under manager this is an earlier link term I'll show you the full term in a second so of course I wanted to store the data as Earling terms why wouldn't I package repository mentioned that eep process and so I went through and sort of made these up and then I'd normalize them so that it would be consistency across them it's not perfect I'm sure that there are bugs I'm sure that there are mistakes but I think for practical applications and certainly our discussion it's it's going to be effective this is the the result and this data the the summarized data they are are available on a github project and I'll reference that at the end but this is an example of going from the raw text to a summarized version so this is an early term this is an ID so the collector means where it came from this is the impression loved it bad string support our application didn't mention anything here challenges finding developers alternatives akka Python to change etc okay so with that I can easily run a nice Erlang program in a script which is also available to count these to generate word word list so we can graph them in a clock tag cloud make sense who's interested in the actual results here anyone you guys want me to talk about methodology I can go on about methodology who wants more method I'm just kidding okay results okay what is your general impression of early this is the first tag Klaus who prepare your eyes so again as you're looking at this and absorbing it this is reflecting the number of counts of a particular word the words themselves are normalized so if somebody said I loved it I said love or just loved it so there's some there's some you know combinations here and it's not perfect but for the most part we can see that Erlang loves things that are hard to learn that's interesting no don't interpret it that way this is tempting to think that that early in developers or this community is masochistic it's not the case these are simultaneous things they exist in parallel I love this thing but also it's hard to learn these things jump out that is a big result passionate passionate passionate love I mean you've got other things like brilliant fantastic life-changing is probably in there someplace really overwhelming positive response but also really overwhelming impression that this thing is a to learn all right so let me take these two outliers out these are outliers so I want to take these out of the cloud the tag cloud and then review it and let that sort of make an impact so what do we see when I remove love and remove heart to learn what does it look like Joe Joe's message has apparently gotten across to people it is a concurrency oriented layer you thought I was asking questions it's confused like why are you talking to me and why are you giving a presentation talking to me Joe his book has on there you know a concurrency or a programming for a concurrent world concurrency oriented language this has gotten across people view it as a concurrent language I think that's accurate I think that's good but this is another outlier so what's the next wave here now this is gets a little bit more interesting and things start to become a little bit more balanced but you know simple good yeah that's not bad it's not love but it's good Oh bad syntax that kind of jumps out there functional fault tolerant you know bad documentation scalable so you know the general impression you get a feel of the results here okay remember it's data I'll do some interpreting shortly so for what situations would you consider using airline again this is to understand you know do people what people think of this in terms of application and lo and behold servers really pops up and servers could be referenced as long-running demons demons services backends so I sort of blump these together as servers this just means software that runs on a server someplace it's unattended so we we see some other things but let's pluck servers out because it's such an outlier and we have a more balanced view here and this is generally the mantra right when you talk about Erling when your friends ask you so what's the thing with air lang looks so great well it's fault tolerant or its fault fault tolerant concurrent reliable these are the types of applications that the types of problems people view or lang as being good for and web shows up here as an interestingly large representation so it is I don't think tell coach you know telco may show up someplace but it's very small so we did not pull Ericsson Erlang programmers or necessarily people from this community I think five people raised their hand so the people that let the community at large shows web web is a central you know people have understood that Erlang has a concurrent language is a nice server-based language is good for web applications that's you know will behold what challenges do you see in adopting Erlang for a project so you might have a hard time seeing this because it's buried in the middle but if you look where I'm pointing you see this little thing here it's finding developers when I read through this I knew maybe a third of the way that this was gonna be a huge outlier I just knew it because there's just like finding developers finding developers finding developers but Oh find really finding developers is a problem it's tempting I think right now to think that's great I'm an ER laying developer and obviously there are in super high demand this is actually not what this is saying let's go to the next time we're moving I'm removing the outlier right I'm gonna root so we're gonna look at it with the outliner remove so what is this I believe and this is a bit of an interpretation but it's based on this idea this is a summary of the results that are that are in from this it isn't because there's this huge demand for Erlang programmers and a limited supply it's because there's a very small non volatile market furling programmers it's non-volatile meaning there aren't a lot of transactions going on people hiring and we may think it is because we live in a fairly small insulated community when somebody gets a job like wow that's great there's a great no it's this is this is this is the general complaint hard to learn remember that one it's hard to learn that means it's difficult to get people to become there's friction there's barriers there adoption all right there's a problem people will look at early and say it's not adopted right so that represents risk so there aren't a lot of jobs as a result so there aren't a lot of Erling programmers manager buy-in very very commonly cited as a barrier you know how do I get this sold to my boss when nobody's using it there aren't any programmers so it's a bit of a vicious cycle when you you don't have a robust market you don't have a robust market it's two sides supply and demand so it's difficult to seed a demand when you have a limited supply it's to see to supply when you have limited demand and this show this shows up quite a bit in the survey and then finally I've removed hard to learn here just to see but you can see the same thing developer knowledge manager bian pops out adoption pops out but then you see some of these you know sort of insulator or tertiary results documentation library completeness commonly commonly cited package management build tools complexity type systems etc this is a good slide I think you take the first two outliers out and this sort of gives you a good reflection of sort of the secondary third tertiary of challenges that people have what languages or frameworks would you consider as alternatives this is sort of an interesting point very interesting in that in the popularity index is this was the neighborhood for the most part go came up a lot Scala and closure came up a lot house call came up a lot interestingly not surprisingly none came up a lot Python or Earling is quite different and you'd expect that people understand that it is unique and there is no replacement so that came up quite a bit Python elixir etc elixir is I think this is this yeah acha acha by the way in Scala or we're tied in so that these results are some cases I left out Scala here so Scala could have been a little bit bigger but anyway gives you a feel for what people are looking at as alternative steroline what about Erlang or ecosystem libraries communities governments would you change and the opinions here doesn't matter here these are the results all right so there's an outlier here again buried actually you know there are few here that pop out but this one is quite big documentation it is cited in a huge percentage of the results problems with documentation and in particular when we talking about documentation it's the idea of how do I get started how do I do something very few complaints about reference guides almost all of them had to do with getting started how do I do something tutorials how do I solve a particular problem with Erlang there this if I can speak to my personal experience this is you know lacking I think this is difficult and it's certainly reflected in the results here let's take documentation out what do we see this is really very good represent to me this my intuitive impression and having read this is consistent here this shows up package management package repository the problem people have one of the big problems is how do I get software for my form you know how do I get a JSON library github duh well there's like six of them out there well obviously you've got to try six of them and figure out or you read the history and you ask in the list it's not that hard but for people who are used to you know Ruby or Python where it's just like boom that's done I moved on to my next actually interesting problem no I don't really care that much about parsing JSON that mindset gets frustrated there that is a you know it adds up it's not just JSON it's the next library the next database library etc and it becomes a recurring theme in the objections Champa these things what would I what I'd prove so the package repository is just where can I find something the package manager is how do i download something how do i grab something it shows up in library consistency all over the place I don't think that anybody would would would argue this one inbuilt tools so that's the result okay so with that here's my interpretation now I'm very careful here I know so I've done econometrics and statistics I know how fickle statistics are they're very fickle it's very easy to mislead it's very easy to change a small thing and get a different result this is simply these are some observations user intuition intuitively I agree with this I've experienced all of this so this to me is a confirmation of things that make sense if you have a different experience you can be skeptical but the data is available the results are available the summarized results and at some point if I can successfully anonymize the other data the other to the upstream source is that maybe maybe maybe available I'm sensitive to privacy so I I've committed to keeping people anonymous in this so but the summarized data which is completely anonymous is available on github so this is my interpretation but it's simply some thinking here so we'll see Garrett's general lowercase I impressions of err lang so people generally understand what Earling is about no surprise I think the marketing and the communication that's gone on is good good good job it's extremely positive people are enthusiastic about this language and I mean really enthusiastic shockingly like when I say life-changing I am not exaggerating there are some fans out there that are really personally invested in this technology there is a general belief that Erlang is hard to learn and not learner friendly there is a general belief it's reflected here in the result there are syntax complaints persist this does show up this surprised me a little bit I thought that we would get a very low turnout yes I don't I think syntax the syntax objections are ridiculous but that's my personal opinion with respect but they do show up they show up okay what is really considered for servers not surprising that is network services back-end systems daemons long running processes things believed to be concurrent whether you know what does that mean they use that word things to be requires scalability reliability fault tolerance whatever those things meet and distribute systems so I think that the general jargon and the marketing marketing message has gotten across again one of the apps a bit of a surprise there this is not the telco in you know telecom platform this is viewed as a general purpose platform for these things okay challenges and adopting finding developers is the outlier people are concerned about committing to this technology when they can't find developers that's reasonable right you're gonna go and bet your company on something that you you can't execute on and that's pretty mechanically basic and so if we're frustrated that there isn't much of a market for for programmers this is the concern so think about this when we think about problems that we might define here it's considered hard to learn there's a steep learning curve its arcane some somebody use the term inside baseball which I liked I'm not exactly sure what that means but I think it just means it's it's sort of part of a closed group and it's difficult to understand short of a large investment in learning the concerned over current levels of adoption so that is why am I going to bet my company on something that nobody uses no forget about getting programmers if nobody's using it this doesn't doesn't doesn't work so reliance of cost risk etc convincing management is hard we talked about that and then there's a there is a strong dissatisfaction with libraries documentation tooling often cited as the barriers to adoption okay alternatives jvm languages go haskell none elixir and actor and messaging library so why do i show this let me let me make a point here i think a lot of people assume that Erlang is is is just so unique and it is unique and it's so differentiated it it it is differentiated there's an assumption that people aren't they just can't do do anything with anything else that's just that's where the wealth it whether it's raw right or wrong people disagree with you people are trying and they're investing in other things and as it turns out you know some of the problems that erling is really really really good at our edge cases from for many people they're extreme edge cases edge cases that they may never reach and so when we talk about adoption sort of saying well ruling is really really good for this thing and that thing doesn't resonate or it resonates but the the barriers are too high that we've listed here they don't use it they use the think of things like this should keep us up I think competition's not the bit not a bad thing I think modesty and humility is a good thing so knowing that there are other communities solving hard problems related to servers and concurrency parallelism which we heard talk just in the last session about different concurrency models and how other languages are solving these problems in fact they are and that are attracting brilliant people to invest time and energy in that and there's a general there's a general sort of underlying theme and the results here at say early had some things right early on but there's a lot of catch up that's been done that's been happening very recently this problem with the computing platforms and the need to be concurrent that need to be parallel to mean to be you know support multi-core lots of investment is being made in other areas we don't need to be jealous about that but we should be mindful of it that you know we can't rest on the on the laurels of the last two decades okay implications I'm really starting to interpret here I'm speculating I don't know careful here careful alright documentation is the outlier right so primarily this is the target for change so documentation is the outlier primarily on how to guides and examples package dependency management of repositories there are things that we could think about maybe investing some time and energy and it's not certainly these aren't new people in fact recently there was a very long and extensive thread of documentation and usability and and and you know how do you get started how and there is energy out there but interestingly a lot of people pushback I said it's fine just rolling down or just use that it's difficult and people who are starting find that to be a barrier so let's remove the barrier let's invest in the let's you know maybe spend some time and energy thinking about this stuff all right library consistency build and release tools improve the community and development process there are multiple issues associated with this so what I'm doing here is just targeting based on the results here I don't think it's speculative all right these things jump out so if these are if these are interesting of adoption and growth of your own community getting jobs having a robust volatile market overlaying employment is important these are things that we might consider looking at so these are the this is again a high-level interpretation this is sort of me moving a little bit away from the hard data and giving you what I think is an intuitive feel people are passionate about simplicity and not being complicated and interestingly early has a rich rich rich tradition of not being complicated so how do we find ourselves in a very complicated ecosystem it's understandable but maybe we should return back to this idea of beating beating complexity out of out of the language the tooling the documentation etc until it's easy for people simple for people so all problems that have accumulated over the time so library consistency breath we've been respondent to a certain customer base and a certain demand for very very complex and current systems maybe it is time to be responsive to the community at large or the general programmer and allow that type of profile to drive change so be responsive to people who are at having difficulty and not to say oh you've got to push through this to get to the good stuff because what's going to happen is they're not going to push through to get to good the good stuff they're going to go to go which is very simple and direct go golang which is a tremendous resource for learning the language and using the language and and others like it they want this is interesting this actually surprised a little bit because I don't think about this that much open transparent growing community but people who are making bets on technology look at this today this today is a selling point there's your IBM you know that you know you talk about all this other stuff today you talk about hey is there a vibrant community around a technology that's open and transparent right now I understand that things are in flux things are changing things are moving in a direction I'm highlighting that this is important to people that's all and increase adoption so adoption here will lead to more adoption will lead to more programmers will lead to a richer ecosystem so adoption is a bit important all right I'm gonna get I'm gonna get I'm gonna make sure I have this is getting a little bit repetitive so look I want to get two questions first and I just want to I want this this is what I want because I just want to finish this don't even get the questions a lot of people think who cares right seriously who cares I can solve my problems my colleagues can solve their problems so it's proven so let's move on let's not talk about the color of the bike shed let's solve some real problems and that's a legitimate point of view at the same time the general openness and accessibility of a platform builds other things that are new and innovative it attracts minds it attracts energy attracts investments of time so maybe one of the reasons that something isn't invested in by volunteers is that historically contributions have not made it into a certain area I don't know I'm speculating I've certainly heard results and you know heard stories and the results about difficulties in getting code from moated and used not a criticism it's an observation the easier something it is is to get in those people will stay around it will improve something it will lead to another thing it will lead to more contribution and it'll start to snowball and grow and develop I'm not an expert in this thing incidentally my next one of my next steps is to look into Community Development how have other communities successfully solved the problem of maintaining the culture and integrity of their ecosystem while being open and transparent and inviting and easy for other people to participate very difficult I'm sure that's a difficult problem I just don't know anything about it so I'm gonna I think I would like to add then the next step to go measure that and talk to talk to and perhaps conduct some surveys around commune I think it's interesting and I've spent some time on that so yeah yeah I think it's important that brilliant people not go elsewhere I think it is important to it let me put this way I think it's an important to attract brilliant people III agree with Katie Miller that it is important to have diversity for diversity's sake it's important to have things to choose from it's important to have things to reject you can't do that enclosed modulus circles things that are homogenous and over bred not I mean that's a bit of a drug of choice room too homogeneous right in an ecosystem from an organism standpoint they tend to die you need heterogeneity you need diversity to live and that's a sort of principle from nature has anyone seen the talk on suffers biology we're almost all complex forms of life reproduce sexually sexual sexual reproduction is extremely costly compared to cloning but almost all complex organisms reproduce sexually and the payoff there is diversity that is a fact that is not disputed if we have more diversity within the community I think that will we will continue to improve and and and all of the goodness that we love so much can be used and grow and maybe we can get some summerling good jobs out there so with that I'm going to stop and ask for four questions oh here the reference is your questions yeah no I'm sorry ask the question I will repeat a verb I'll repeat it I we're not using my phone just I will repeat the question no they are they are I don't know why I don't I don't know they are I mean honestly at some point you can't you know I mean there are reasons and we I don't know if we have the time to go through that I don't even know if I know I don't honestly don't know I'm not going to sort of guess but all I know is it's cited frequently it's extreme like the number one outlier yeah sorry yeah yep yeah that's right that's true so just for the record the first question I pulled it and repeat it was you know you were just asking why is finding developer the number one priority and my answer was I didn't mean to be you know I truly you know don't I don't know until you measure so I just know that this is a big result and then the follow-up was an observation that you know managers ultimately make these decisions and if it's difficult to find resources it's really a matter of risk and certainly cost there's risks to the project if the one or two or three individuals who are no airline go away puts the project risk and it's also more expensive to hire and retain Joe so the question from for mr. Armstrong is is how does a community like Ruby managed to get away with a single library for something when in fact there ought to be multiple alternatives and I didn't get the impression that people were complaining about their there being multiple versions they complain about inconsistency and not knowing even what the high performance version would be to get so it isn't a matter of them wanting to be limited to in choice it's a matter of wanting something to be easy to find and easy to understand and easy to use yeah absolutely I don't I didn't get any impression that anyone had an objection with that none and says I want to be limited in what I do that didn't show up I'm sorry I don't mean to imply this so we're moving into so the question is what is sort of what is sort of Howard yeah what is hard to learn mean in this case the granularity of this result does not penetrate that question so I didn't differentiate between you know it was in my experience hard to learn versus it is sort of a you know esoteric or exoteric statement about this is hard to learn they're both grouped into this I think the perception certainly would is is you know either way would would would maintain if somebody may be speaking on on someone else's behalf or themselves so that's I listed that as hard to learn and to be clear about this at least from what I've seen it's really more about how do I get my job done I could have put that a little bit differently it's a general candidate of hard to learn so it was learning curve and learning curves summarize basically you know how learning the low-level parts but not so much that it's more like how do I use this thing how do I you know I have this problem how do I use it I've got oh oh I've got UML I've got all these other things I learned in school and I don't come to Erlang and I've got sort of these things that I get I understand it but really using them putting into practice is a challenge and you have to really commit and penetrate and ask questions and that is that seems to be the heart to learn there so the observation is that it has doesn't have to do with with Erling but it's the the programming model itself it's the higher level abstractions and they approach to building software true but the observations are that the materials out there really don't address that very well so the so the joke so the joke was somebody just asked Joe Armstrong if he found her laying hard to learn and Joe said no well put have you seen the core libraries have you seen so the question was if I could elaborate on what inconsistent libraries meant and then I made a joke which was have you seen the libraries okay so so so so for example if you were if you were to take and I'll make another joke here and I'm actually kind of dead serious about this if you were to take the verb set and you were to do a synonym on that you might say put or store or insert the curling core libraries use every one of them it's true yeah exactly yeah I mean it's a Saurus this is yeah sort of however you pronounce that word yeah it is extra sometimes you put the thing being modified on the front sometimes you put on the back now look this isn't really a criticism in language I mean if you look at C C++ every language has this problem so it isn't to say that this is necessarily bad it's just simply a point of friction and and for most of us myself included the cost of of migrating a library for the sake of consistency is extremely high I mean look at what the Python community has done with Python 3 that was a noble attempt to sort of clean everything up but I don't think that that went as well as I thought it would there's extremely high cost in in changing something for consistency's sake so I'm not for a minute suggesting that oh it's just a matter of cleaning up the libraries I think that's a problem that we can we can and if you go I'll have these slides I skipped through that in the interest of time but but cleaning libraries up is a problem and it there's a trade-off and it's a reason trade-off and when somebody says well why is it so inconsistent you can say well you want consistency or you want stability would you prefer that your code not work or would you prefer to have a few challenges and that's reasonable so I'm not suggesting it's it's there's an obvious this is certainly a problem for people let me let me get what yeah what I try to emulate so the question was the yeah yeah incidentally I as being moderator I have to remind myself that I'm out of time and we have another question so I'm gonna I'm gonna finish this up and one more question I'm I'm in the mic I get the track so then the next guy can go over let's do it that way the palates the perks of being in control so the question was you know if the package manager is listed as a problem what would I you know think of or proposed as an alternative I mean there are certainly attempts have been made to to write a package manager I think one of the one of the problems is that you know people would like these things to be supported in the core so that something like as endemic as you know build tools package dependency dependency manager's package repository that there be some sense of a central supported authoritative source rather than a market of alternatives that might may or may not surface as being the de facto adopted standard that works it has worked we have tools that are generally a de facto standards but they're not officially supported and people coming into the community don't know that so they have to kind of figure out oh what's the what's the trick to build is it a make files a tree bar is that you know early indata m'kay you know what should I do here and then we've got this well-reasoned discussion all the alternatives people don't care about that they want to go build done let me solve my problems so that shows up all over the place alright one more question Joe oh is your question if well you had something before Kenneth yes with Kenneth Kenneth gets 10 questions yeah so so the question is for folks who are sort of making the observation that it's hard to learn and and there are these sort of challenges to adoption are they able to do these systems in Java and C++ I don't have data on that so I'm just gonna I'm gonna wing it I'm gonna I'm gonna make up an answer for you I think it's a reasonable answer so it doesn't matter it doesn't matter it doesn't matter there are the problems that come up in Erickson's ecosystem are outliers to the rest of the world they are there people don't build these systems they don't have this this complexity problem so the answer is yes they actually can they can get a well down the look down the road look at the success of Ruby on the server side look that's proof that people whether they can or can't they do it and and and and that's just a fact so a lot of the times is it doesn't matter they just use it and then they run into the problems along the way Ericsson has a very very different sort of background perspective they understand extraordinarily complex problems and have a huge history of solving them so the answer to your question is no of course not but to most of the people that are conducting the survey it's hmm what are you even talking about I don't know like they don't know they don't get it yeah so the observation is that the productivity gains that I think that you can get will will will help you outstrip the investment in learning I think that it's probably true in a lot of cases but I would say this is there really a problem in making something easier is there really a problem in chipping away at barriers and friction points what's the problem there I think all things equal it'd be easier you you go that much faster right you'd say that much you'd have that much more influx of people using the language and contributing and being feeling like they're part of the community one more Joe so Joe Armstrong's observation is that there's a lifecycle to language development and we're sort of at the point where you know we have a basis and now it's time to start to write higher level books patterns and we're talking about some of the other things how to the domains of concurrent applications etc and I think absolutely to me and I'll wrap up here so we can get on to the next talk it really is about let's let's let's be thoughtful about this this is a form of being thoughtful about this and if we see something maybe this would inspire some next steps we can all let this evolve but let's be rational about it and and and and let's let's I think it would be great if we could all agree that building a rich or more diverse more open community is something that we can strive for and things like this initiatives like this are worthwhile thank you [Applause]
Info
Channel: Erlang Solutions
Views: 89,109
Rating: 4.7802815 out of 5
Keywords: Erlang, Erlang User Conference, Garrett Smith
Id: 3MvKLOecT1I
Channel Id: undefined
Length: 51min 54sec (3114 seconds)
Published: Thu Jun 19 2014
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.