Why Hasn't Ruby Won? - Sarah Mei @sarahmei - Ministry of Velocity - Introduction - [work plug] - Co-founder of RailsBridge - Whipping boy of hackernews (*hackernews you cray*) - Ruby often pokes out too - Thought process of switching languages (learning from that) - often come into the new language w/ baggage from old - you speak Ruby with a Java accent - Programming choices are more Social than Technical - Code location, object model, etc. > Gems and Libraries > Frameworks > Languages - Evaluation of Gems - httparty and faraday ... most people look at the interface when deciding.. but it may not be enough information - enumeration - read README - look at date of last commit - look at bug tracker freshness and quantity - comments on pull requests - blog posts - relative popularity (rubytoolbox) - date of least release - the enumeration changes based on community and individual needs - broadly - interface (README, use gem, etc) - activity (commits, issues, PRs, releases, docs - popularity (SO, HN, Google) - familiarity (look at code) - conversation w/ 4 year old - pattern matching on "Why?" - artificial neural networks - learning parameters, developing a sense of familiarity - the idea of 10k hours (talent versus skill) - The myth of the 10x programmer - if you look at the 10k hours skill as a learning curve, there are some people who go up it faster... others stall - like most myths it's partly true... research shows that talent does matter - but... there is no research which shows that skill can not make up for no talent - vast oversimplifications of a process which deserves deeper understanding - not the complete picture - comparison w/ gender disparity RE differences in cognitive ability - Pair programming - interesting experience in other people's decision making process - masters poke around and learn actively -- curious - novel information in learning - people who's imaging included novel information averaged much greater recall than those who were presented with accustomed information - mixing new information into your work increases your learning rate - Back to gem selection / back to language decision - categories and applications to languages (back to ruby decision) - interface (gc, threading models, syntax) -- where most people focus on - activity (community information, reactions around the language -- personalities involved with the project... how does the leadership respond to criticism) - popularity - familiarity (at the language level -- how familiar are your assumptions in the new paradigm? e.g. JavaScript has prototypes but Ruby has classes) - at the scale of languages, familiarity is about everyone who is working on the project -- not the individual - the capabilities of your team are the strongest determiner of what language you choose - Ruby won't win -- we can't save them - not because it's slow or anything - language choices are about familiarity.. not everyone will be a match - there is losing however... - like smalltalk ... a niche language - but the learning curve can be accelerated - the best thing to do is to go learn something else and then come back - Speaker will save you an otter pop / Thank you