 Video equipment rental costs paid for by peep code screencasts Training philosophy and and the future forecast more than 400 years ago. We had a one language and That we think the one true language. It was not great so some people think about K How about emulating the natural language? but it It was great at that time, but not not multiple so it's it's a business or a common business or a language, you know so Let's steal from mathematics but Some people just hate the parentheses too much So they made up the less palestinist version with algorithmic language and it's somehow Evolved or Disolving to See or I mean it's this industry for cloth and then It's stale some ideas from list and prior a small talk Then you became the job and she shot but they're very They're started or they're heavy More flexible language like pearl Python came out then I Don't I don't claim the Ruby as a one true language, but let it close I Started when making Ruby 15 years ago, but before that I was all fan boy and the right and in 1993 the February 24th started and At that time it was me a hobby, you know I was I really like to program and I really like the language. So I thought the programming language It's it's kind of amazing the building the Lego block that can Influenced the world that this much, you know, it's kind of a part of the expectation and The goal of the language is the scripting or with nice clean-sheen tax and The real goal is to enjoy my That's to enjoy myself making making language designing language and its implementation and Any programming and the resulting one And it's design process is the I took the list them out eggs with the smaller object oriented system and with some service and the top top the features in pro and the really good I think you cross viable with and some interest from Clue and higher with the functions from functional languages and some fighters from Python and that is and I released it to the public in 1995 December 21st in FG sources. It's the Japanese news group and In 1997 I was hired company named NSEL salt The real name is network applied communication level level three, but it's going to make up the NSE And I mean it is it's the company. I'm working for and it's an open source software integrator and I was I Became a full-time or open-source software developer And in 1995 in Japanese possible was public And next year we have the English version. This is the second second version cover, but Yeah, 2000 and in 2004 we on rails came in a lot About ten years ago the Ruby was that language Five years ago Ruby. Oh, I've heard it, but I haven't used it yet It's difficult Ruby, I know it's for rails Isn't it or can I use Ruby without rails? Is it possible? But but situation Like we have a book from Java to Ruby my birthday and And If the reason behind Ruby is of course rails, you know, yeah Ruby is not for rails, but rails help us a lot and Joy the program that join the programming is a very important factor, but which is like a but Not the fish has been has not been emphasized a lot in the industry and the productivity is And then think about the rails the popularity is That's due to its productivity and we can consider it as a Domain specific language for web application on top of Ruby So In a sense rails on Ruby. This is the right order. I guess It's as Evan told the VSA is very popular among recently and We have their aspect for test a rate for software build so like like this kid it this is in Ruby and but it's described that the express Expression for the specific domain and with the language the syntax helpful It goes like this, you know, it's pretty Yeah, the language itself is simpler, but you know the program appears the complex So Ruby helps DSL to appear cleaner appearance well And if I remember correctly Dave Thomas once said the programming is the process of designing DSL for your own application This is where I did yeah or something and I Proposed that the concept of the meta DSL Which is a good language to help you design a DSL for your application, right? and Even though I coined up the meta DSL recently actually in the plane from Japan But the deal they have been you have been Meta DSL for a long time the oldest met the DSL is a list by And this the meta DSL has a simple basic things out which is that expression and Flexible structure with macro and a flexible notation with reader macro and with method met the program Simple and the flexible since Simplicity and the flexibility of the language makes less a topic language for language experiment for new language, you know There are a bunch of languages or the dialects of this and the list the DSL stop on list But The notation is too simple, but don't worry reader macro can't help you see this this called Dude, can you tell which languages in written in it? It's not Ruby. It's in less By reader macro, you can replace the something so if you read the Shown URL, you can see the reader macro. It's the Japanese itself in Japanese But but macro itself in living less. So I think you can read it you have to If your language is too flexible, you have to start all over all over again again for each DSL So learning new language is very costly. So, you know newbies Don't want to learn new languages. So We have to keep it balanced of the flexibility or simplicity and the common sense that we can use to Use as a clue to understand the program. So sometimes smart people like behind Something language, just don't understand the nature of ordinary brain and If I consider myself as a talented, I I'm talented at having a ordinary brain. I I am the representative of the ordinary brain and We should bring back a balance to the meta DSL the flexibility and the understandability So Yeah, as a meta DSL Ruby has a very comprehensive model. It's object and Natural stable syntax Without macro, you know with macro we can define Whatever syntax you like That which means that what if you have to learn whatever syntax someone some other guy defines to use that DSL that Ruby does not have a macro or so the new DSL defined on top of Ruby Just follow the basic Ruby syntax that Ruby syntax is Very flexible with blocks and other Metaprogramming features or something so you can read the syntax and to get start to guess the Symantics and the meaning of the DSL This is this is the first, I don't know first step to understand that the DSL as a probability of the DSL grows there The power of Ruby as a meta DSL can be enhanced Value that's why we love Ruby and From the job double to the weekend. Oh, this is Japanese version And Ruby became enterprise years these days a lot of big names using Ruby some Microsoft Oracle IBM yellow pages And in the Gartner level report, there are under one million professional Ruby developers now one million developers the huge number that We are projecting there will be four million plus by 2013 Whoa million incredible Mac driver and I noticed that Gartner in wee weeks Four million no way But you know no matter how Gartner project and Forecast at we are we are Increasing and it is good thing that probably we can have read we can meet here but The the number is not the first priority. We put the program out first, you know the joy of the programming and the the productivity of the programmer comes fast It is dangerous Then the increasing number of the Ruby programmer can be dangerous and maybe Then Ruby is not well, you know Many people consider Ruby as a young one just like a few years old, but actually Ruby is a 15 years old And the world gives a lot of people who don't know about Ruby and it it can change the community So we have to keep up the good attitudes even after the a lot of a lot of if Java programmer came in or if Something language I came in We have to keep up the good attitude and Programming language has very long life cycle like a full term. It's our lives and We must survive, you know Yeah, you know the applications and frameworks Has a lot of shorter life cycle than the languages. So I think the Yeah, real is very popular now, but maybe in 10 years Or 5 years post rail something will come or the post web thing will come But Ruby will survive then we must survive. We must do something and So we have to do something for the future that Before that talking about before talking about the future. We have to talk about the present Now we have so many implementations MRI which I did and there will be Rubenius Evan I will be y'all but live which is Virtualia before we are yet and MRI stands for mass will be and There will be Ruby on the JVM 1.8 compatible faster than MRI This one line why everybody beats myself my my products anyway There will be people claim that if they will be run slow slower than one not one eight It's official. I we consider it officially a bug You know and the Rubenius people beat these one eight as well anyway, and there will be people just started to cover one line Rubenius right there ask him ask Evan somewhere And the y'all y'all is that the core of the one nine It it stands for yet another Ruby VM after the Even after integrated into the off shell core It's still It's still them y'all yet We we we are so used to that And it's body called a stock VM fast fastest Ruby on Earth right now and 50 times faster on some benchmark some benchmark can be even faster And one line language is splitting as and classifying as in the corner of the line and I presented the Google Tech talk in a February so You can watch the video on YouTube and the one line Significance the enamel with a fiber block of one that name something and but One yeah one edge is maintained by the other guy already and he He merged the stuff in one not one eight It's not the one Fivers Well, there's some some level is using fibers like never never block or Rebacter is kind very interesting technology level is so They might be a killer killer applications of Fivers at one line and We are very looking forward how it goes and M70 and it stands for multi-lingualization and the same 17 characters between M&M and M70 and means a lot in a Depends on context Yeah, the handling of the world lock hails how many characters, how many glyphs, how many cultures but in It means handling characters And then how does there are some way to handle characters Like by ignoring tough cases like using ASCII There's we have 26 characters. That's enough Or Okay, okay, we have the room for 256 characters that's enough for all the people all over the world But it's not good for Japanese and me any unicode Unicode is very good good uproar. We have several encoding In the UDT-8, UDT-15, if it starts 32, and the most one is to do the multi-lingualization by this scheme Jabber, Pro, Python, does that And UDT-8 is an ASCII compatible schema. It has variable character length and For N for random access, but for use and for UDT-8 UDT-16 is used by Jabber, Python, and other languages But remember it still has the all-in complexity of random access. Yeah, good old UCS, UCS two days are gone UDT-32 has three bits for character and it is all one complexity for random access But from our experience, we don't have much application of the random access in the string So it's not that important And the factor language is UDT-32, I apologize The unicode is not the perfect solution and Just because you know the unicode we have bunch of legacy data I.S. Latin 1 or the 5th S or UC JP, KL, the dynamic encoding, NEI encoding, Vietnamese encoding we have a lot of legacy data and We have to convert back and forth from to Unicode and sometimes the data is broken or lost So it's kind of valid for us and Unfortunately, it's unsolvable due to history reasons. I don't know how to get into the detail, but Many people made a very bad mistake in the history in a character sense. So it is unsolvable So until we We uniformly have the unicode data and We still facing some problems by the unicode And some researchers of historical people Uses the extra unicode character that character does not include it in unicode Now Unicode defines the 100,000 characters Right now, but it's still we have some characters We don't have in unicode like all characters or the old Vietnamese characters or something like that or even Klingon characters So and there's some people really really really need to process these test data Unicode sense make up the language That's not help them So if there's no perfect encoding, how about making it pruggable? That's our approach so we need to we we don't have to convert back and forth in the Universal encoding no encoding breakage and It is possible to extra in code characters can be hung Yeah, honey the issues is it possible and Is it okay for and Yes, it's possible with it is long time with reggae 1-8 reggae has the as trees and ASCII and the unit UDF-8 Changes an eucjp at the same time without without Recompiling we can dynamically switch the encoding and based on that Experience we made it in one line And the poor performance We we have all in a complexity of the random axis, but But we do anyway, you know the UDF 16 with UDF-8 has you all in complexity as well so It's not the issue Like then things like goes like this, but we had a the next really session this morning So we I keep this So okay, they I'm going to tell you about the near future It will be one night will be better will be than would be improved performance and fix your future bugs and We finally will have a stable one night at December 20th, hopefully and we are going to have a feature freeze tweak stator 20 September 25th, so We have been there the last minute mode we are putting in So you you are going to expect the stable one night by Christmas Unless something very bad happen And then this year we gonna we did assign the The release manager out of the me more reliable person so the schedule will will going going smoothly, I hope than the previous release is There a little bit from of you We're after releasing will be one night stable So we are going to work on the will be to all which is the innovation by And then in Office of software the community matters and the most patient matters Just because in an office of software should move forward or die you know if you if you don't change anything for stability or the Reliable day or something, but it's not fun So we have to keep some doing something in housing language to fix in language So If you really really need this stability or the reliability of the language you can speak with one day Yeah, we we declared it They are gonna be any big change in one day any longer and if We need there's something to focus on to have fun with open source activity and the the keyword for a future Ruby Gonna be a scalability. I think Scalability and data size or the number of CPUs or the program size or team even team size For this size and CPU number we have to begin power and distributed technology like actors or the like In we've asked or I feel related technology or something like that. We started the The branch which is named the MVM multiple VM in the process So in from these technologies that we Will Utilize more CPUs to France more huge data And as a Ruby grows in the IT market so the program size or team size will Will grow as well. So current Ruby is Kind of focused on the small number of team like five people four people who are the single single person but so to enhance the productivity with in a bigger team We are thinking about the keyword arguments What's the name space the method combination? aspect-alented programming or a more functional ish programming There the fields we are going to work Keyboard free means the order free This specification of the options in the method It it makes method call more readable And a open class is very Useful and the interesting technology, but it is pretty dangerous You know it can break the existing class even a building class for example, they call that our be which makes the strings works on work based on Characters, but it it could break so many Existing software so the global side effect is basically bad thing The often class is fundamentally a global side effect so if it I want to work on the statically sculpt of by By the technology name the selector name space or club that It's it's easy to say say that but it is pretty difficult to design Imprimanded it efficiently. Yeah, I don't want to make Ruby slower with By merging select the name space in there will be to all so we have to work on efficient implementation of the selector name And that's a combination is the method replacement hack using alias it's pretty common among the open class in a metaphor again, but it's it's kind of dangerous. It's easy to conflict. So We allow future Ruby to Add a screen and before and after a book after around the method and it Be a stockable like Book and free food Like this, you know You may know you may remember the method combination in class now come on list and We are thinking about the more functional programming like the lazy array and the delay and pose But I don't remember the world, you know, the the lazy evolution But there's very big ideas for the future, but we are thinking about the future already and summary Ruby server the 15th birthday on 28th, February 24th, 2008 this year And we'll be focused on program out something And it really has been recently established in the IT market. That's fine but don't forget our primary goal to have it and to enjoy programming and Ruby is made a DSL with good balance and We have the multiple implementation of them interpreters and they are all great and our interpreter The Yalvin's improving so are others that's fine And the future is in scale of a day, I think we keep the language evolving to Since motivation matters, we need to move forward or die. So I don't I don't want to die. I Don't want to kill the community. I don't want to die yet Maybe I'm going to work on Ruby for the next 40 years So, okay, that's almost all I have. Thank you Video equipment rental costs paid for by peep code screencasts