00:00:16.960
one of my favorite parts of the conference which is a q a session with the creator
00:00:22.400
ruby the creator of happiness in the programming world max
00:00:34.399
is if you have a question now if you have a question there's a mic here and we'll line up with that mic to
00:00:41.600
ask a question and then he'll be up here and answer any questions we need some people to line up now
00:00:48.719
to ask some questions it was really impressive to see
00:00:54.559
do you think that that kind of sets the stage for uh or might be a vehicle for looking to
00:01:00.879
i don't think so that movie is it couldn't have said feature-wise so
00:01:07.680
it's not intended to be replaced any
00:01:14.880
would any of that coincide with maybe simplifying some of what would be yes yeah the
00:01:21.119
emerald brought all together
00:01:38.880
so
00:01:47.840
uh
00:01:55.200
hi hi um two questions
00:02:02.880
yes i'm totally ranked right now to ask two questions actually i'll ask one then we'll get back in line
00:02:08.560
so the first question is is um are there plans for um
00:02:15.040
heroku salesforce to sponsor slash pay for more full-time
00:02:21.760
people to work on c ruby or mri i'd like to call
00:02:35.280
fiscal it of the this year we are not going to hire in this this whole year
00:02:41.040
but we yeah yes we are able to hire more at least one more two so i would have to
00:02:47.360
buy one with
00:03:14.720
um what is your favorite uh ruby 193 and
00:03:20.000
ruby 200 feature uh your favorite two one the your
00:03:25.440
favorite feature of the release that's coming up right now and your favorite feature of that you hope will be in
00:03:43.360
uh
00:03:58.239
and then
00:04:07.840
afterwards so that if we don't we do not have to use the dialectic
00:04:20.479
and the ruby's back it says a conforming processor may omit any invocation of a method of a built-in cluster module for
00:04:26.800
optimization purpose and do the same calculation as the method instead in this case even if a program redefines
00:04:33.840
the method the behavior of the program might not change oh sorry
00:04:43.040
there might no change because the redefine redefined method might not actually be invoked
00:04:48.240
this is for some uh core methods the case in ruby at the
00:04:53.360
moment is there any chance we can get rid of that so
00:04:58.479
we so so that if you call the method that is defined in c
00:05:03.680
in c ruby it often calls just calls the c method
00:05:09.440
another c method instead of going through the dispatch again is there any chance of always going
00:05:15.199
through the dispatch again so you can actually refine any method if i ask them correctly so i need that
00:05:23.360
think so the project providing redefinition of the department
00:05:28.639
is the decreased possibility of the language
00:05:34.160
instead so if some guys like romanians and their
00:05:39.680
future the 194 would have some kind of
00:05:45.199
the inline gas which fits avoid these parts in sense
00:05:54.000
or maybe we can do some kind of specialization which is the specific version for specific type of
00:06:00.639
arguments so if the precondition like that these arguments
00:06:06.160
are integers that is this file that we call the specialized version the specific
00:06:13.280
possible integer of arguments and then it's not so called the generic version
00:06:18.880
so that kind of optimization can be implemented in the future so that we
00:06:24.160
will have to so you would see it as in the future it would be possible to
00:06:29.919
move more like actually recording methods and optimizing
00:06:43.280
hello hi so uh i believe in some past interviews you um
00:06:49.120
when you were asked if there were any features of ruby that you wish you had done differently um you said something
00:06:55.199
along the lines of i wish i had asserted something like actors or something like that some sort of more
00:07:00.800
advanced parallelizing construct into the language um since ruby 2.0 will be a new major
00:07:08.400
version do you think we will see something like that but at the language level or do you think it will still be done with libraries
00:07:28.319
i don't want to
00:07:42.720
on
00:07:55.520
it would be done by language okay great thank you
00:08:02.400
hello hi uh is the next ruby going to be 194 or 2.0
00:08:09.120
okay after releasing one and three we are able to make strong to be one to all so
00:08:17.919
even maybe we could have one like four in the future but it's
00:08:26.000
caused by the sometimes that there are so many dogs or something like indian one and three so we cannot do that too
00:08:33.839
okay so after 193 is released trump will beat 2.0 yep
00:08:41.039
hi um this is not a criticism directed at you
00:08:49.600
i say this just to try to explain some like recently
00:08:55.600
i was trying to i've been advocating ruby at my company and teaching my
00:09:00.800
co-workers how to use it in various things and we have a number of cucumber tests for a product we're
00:09:07.440
working on that and many of the developers or or qa
00:09:13.279
people like prefer to use windows and i was shocked when a
00:09:19.440
a system we were running on 192 took like 10 times longer to run our
00:09:24.959
cucumber tests on windows due to a required problem i think i think it was a required problem i'm not
00:09:31.360
totally sure what it was but we all had to just flee to jruby
00:09:37.600
and it was really i'm just wondering if how my question is
00:09:43.600
do you think it's important that we focus on more on windows and
00:09:48.800
windows performance or do you think that's just it's okay for us to just sort of say use mac or linux
00:09:57.760
okay i i believe that particular problem was called entry
00:10:03.279
okay but and the the the reason the
00:10:09.040
our windows port is not as good as the linear zone map is just just
00:10:14.959
due to our lack of resource so if somebody are willing to help us to include the
00:10:22.240
food on windows so we are very welcome so
00:10:28.720
you know maybe some companies some individuals
00:10:34.959
raise their hand to help us improve
00:10:40.399
so we out of 32 our
00:10:54.399
it's just an issue you can't find the people who are interested in contributing in that area is that
00:11:01.600
thanks hello hi um i actually also had a ruby 2.0
00:11:08.720
question although aaron's question covered some of it but i'm wondering just especially since there's a lot of
00:11:13.920
new people here that haven't heard previous keynotes i don't want to make you give another keynote but can you
00:11:19.200
just sum up very quickly kind of three or four things about that you've got planned for ruby 2.0 just for benefit of
00:11:25.760
people might not have you
00:11:38.800
so we are going to add the module prepared which i explained to
00:11:44.320
even and the module mix which replaced the uh
00:11:49.920
people you include which we can avoid
00:11:57.040
priority order of that included method and then
00:12:02.240
we are going to have the keyword actions in the in the world language so we
00:12:07.839
for example ruby uh rails use this for documents to perform inside
00:12:13.120
but you know we have to decompose the hash in the
00:12:18.160
receiving side but i i'm going to add the
00:12:36.880
which can isolate the monkey pattern in a certain module
00:12:42.399
so that we can safely the tree
00:12:48.160
safely change the existing class without affecting the
00:12:53.200
code outside of the specific namespace and i think these
00:13:00.320
big features with
00:13:16.399
i believe that the act of using sign code is a good idea but the idea of
00:13:22.800
forcing developers to sign their code is a data what are your thoughts on
00:13:28.959
quote signing in the ruby community non-existent as it is
00:13:43.440
correctly right now but you know for james so signing might be
00:13:48.480
very interesting so some you know some basic articles of the video would be
00:13:56.959
dangerous in some cases so we often use this get installed something that is your
00:14:03.120
network from the you know third-party calls so that would be dangerous
00:14:10.000
that can be dangerous exactly so both signing money will
00:14:26.800
good morning morning so uh that's a very short question but when people say mri i'm usually saying matt's
00:14:33.920
ruby interpreter when you say do you are you meaning my ruby interpreter
00:14:47.519
well i don't think so just because you know mri often include ruby one nine
00:14:53.360
which core is done by the koichi so
00:15:10.800
originally
00:15:25.279
that's a good question this is a good setup for me um what name what would you have us call it because i think
00:15:32.399
media and charlie started started calling it mri because we needed a new name i think that was before
00:15:38.399
uh ruby core started calling it c ruby so it was a long time ago so do you have a name should we should we come up with
00:15:45.680
a name maybe suggest some names yeah okay
00:15:56.240
uh is there something that the ruby community can do or a few things so that
00:16:01.759
to make uh ruby 200 and further things easier or better or
00:16:07.199
whatever so like uh something that these people can on monday when they go back to their real jobs they can think about
00:16:13.839
and help with yeah last night i i talked with brian fold that
00:16:19.440
regarding ruby bag and then we started yeah we
00:16:27.040
we talked about we do something to
00:16:33.600
absolute development
00:16:49.040
time i will see some mountains much better than um but still we
00:16:56.160
you know it's it's quite difficult to set up some kind of documentation or something like that so
00:17:02.839
we uh we had no idea at that time that we
00:17:08.000
have to say that it's important for our washington alongside the ifc
00:17:14.720
business i don't know i think
00:17:28.640
so these people should go home and write ruby spreads
00:17:45.120
hello hi uh i was curious if um if right the ruby light uh project yes
00:17:52.880
is uh is that um is that continuing uh with sponsorships or is that all
00:17:58.720
you know uh the the project that was originally called ibm and we
00:18:04.400
now i call it rain and ruby which is exported by the japanese government
00:18:09.840
so it's just separation is it a subset of ruby 2 or is it what
00:18:15.919
is it
00:18:22.720
and then after yeah this is
00:18:29.520
will be available in six months so after that it could it will be on
00:18:35.440
sale so everyone can even uh
00:18:42.400
improving six months all right
00:18:50.720
so the other day on the panel somebody had mentioned in standard library
00:18:55.760
something called sync so i looked it up and the wi-fi being spotty here i checked
00:19:01.360
the pickaxe the pickaxe said this isn't a direct quote but it's
00:19:07.440
broken we're not including it so my question is for ruby 2.0 instead of
00:19:13.760
adding new features what's your opinion about cleaning up what's already there uh
00:19:19.440
yeah as i i told you before that ruby 200 would not be a big
00:19:25.919
step so that we are going i think we are going to remove sometimes the dedicated
00:19:31.600
libraries like what english or something
00:19:36.799
some and we might separate some the santa barbara
00:19:43.039
into jams but we are not going to you know make the big big change but we might
00:19:50.960
remove something and we might separate some part of the sun
00:19:59.840
so if you thought about some things to remove what would some of those libraries be yeah we
00:20:18.960
hey um one of the things that i find in general is ruby is really nice and intuitive to use um
00:20:26.160
one thing that surprised me was um like japanese tech support is not quite so
00:20:31.520
straightforward and easy and i just processing text using japanese text
00:20:38.640
and stuff is is not as natural as i might have expected so i just wondered like is that because
00:20:45.200
you've got a strong international focus so yeah yeah it was too difficult to
00:20:52.080
implement wow actually in japanese expression is so
00:20:58.320
so difficult it's too big that me a programmer like me
00:21:04.640
but you're japanese well
00:21:12.760
yeah how difficult it is okay
00:21:18.400
but yeah if somebody maybe japanese willing to help me to have a better
00:21:25.200
text hunting library so we knew that this should
00:21:33.120
hi thanks um i don't have so much of a question
00:21:43.520
so you mentioned before with ruby 20 the module boxing or class boxing i forget
00:21:49.120
what we're calling it and um i wonder if you would give any thought to um
00:21:55.039
there was a language called dylan which had multiple inheritance so a little different but one of the things
00:22:01.360
that they did was the mechanism to find methods or constants
00:22:07.520
was implemented in w so it was sort of a method resolution
00:22:12.960
constant resolution algorithm in dylan and i was wondering if we could
00:22:18.320
i mean again this is more of a suggestion request but could we maybe think about
00:22:23.360
ways of describing constant lookup in ruby instead of relying on
00:22:28.799
the seed well for example to come up with the system as the map
00:22:35.600
made out from protocol which you can find your own
00:22:40.880
lookup folder and right here which is yeah english everything matter
00:22:50.480
and then yeah i don't know just because you know
00:22:55.520
by doing so it will slow down for months
00:23:01.280
very badly yes my guess is
00:23:06.799
so
00:23:14.720
yeah even just as a reference if it ends up being informative yeah that's the experiment
00:23:19.840
okay thank you how about you i'm sure why not
00:23:25.440
yeah he said that i'm just curious do you remember a root
00:23:31.360
choke with the dash values with the w flat
00:23:45.520
so matt i'm wondering how old your kids are now if you taught any of them ruby
00:23:51.600
well i have four kids and uh the oldest one is always 19 but she has
00:23:58.559
no interest in the program
00:24:13.520
so my parents did not force me to do any programming
00:24:24.080
so you know they it is very important to have some kind
00:24:31.200
of the internal motivation to program so not even from outside so
00:24:39.520
if if any of my children have that kind of motivation to progress in
00:24:46.799
in some language i would definitely help them and then even i would make some
00:24:52.080
kind of tools to help to help them but until now
00:24:57.760
they didn't they haven't shown any motivation
00:25:03.039
would you would you just own them and use python
00:25:27.200
uh well the the basic in the functionality of mrb is is as defined in
00:25:32.960
the iso so if they are actually
00:25:38.640
described so the the standardization actually describes both of them and the way they
00:25:44.880
are yes yeah yeah yeah yeah so the first version of the standard covers the very
00:25:50.159
subset of the ruby language and then mrp also confirms uh
00:25:55.520
most of the standards except that the enemy doesn't have i o by people
00:26:00.799
and then i i suspect that it's quite reliable
00:26:05.919
but are we trying to differentiate within the standard what qualifies as you know what you described as movie
00:26:11.760
versus the whole thing or is it just going to be a subset of sorry i just wanted to actually be a
00:26:18.000
delineation in the standard of this is zen ruby and this is the full ruby or is it if you're gonna have a guess yeah uh
00:26:25.279
we are not going to add that that kind of like in the description in the standard so
00:26:32.159
that it will be in general should work like this that
00:26:44.960
is the next thing that implements a c ruby interpreter in movie no okay
00:27:04.559
when you're running a lot of ruby processes to measure performance or kind of
00:27:09.919
introspect on the runtimes there are plugins and various things that you use inside the environment which kind of
00:27:16.799
disrupts the environment there are different run times now with videos and jruby is there um
00:27:23.120
some goal like jvm has uh johnny but where protocol and different uh you know uh
00:27:29.600
kind of wire protocols to actually introspect the jvm is there anything that you're looking at
00:27:34.880
to say can we provide a similar function to uh ruby run times such that things
00:27:40.720
can collect data on them performance data you know things like object space type
00:27:45.919
data and for for measurement and or debugging well the
00:27:52.480
weird in this separate neverness we discussing we are discussing about
00:27:58.240
that's a grouping like a proving api that we for the
00:28:04.880
near future version here the database into the language and
00:28:12.240
along with some kind of other program
00:28:23.679
okay
00:28:29.200
um yesterday during ryan ford's talk on nikita he was talking about making your videos magnitude faster
00:28:36.480
than it is now i wonder if there are any hard goals of performance
00:28:42.960
and if so how you're kind of measuring those and going about like getting there yeah i think actually i'm not the
00:28:49.760
performer but the the koichi
00:28:55.760
told me that he would love to spend his time on
00:29:01.200
improving performance so i expect him
00:29:09.840
thanks uh what is the most important thing that
00:29:17.840
groovy programmers misunderstand about ruby that we should study and learn better
00:29:24.080
yeah maybe
00:29:29.120
yeah people very easy to complain about the performance of the language
00:29:38.960
but you know the microbes work doesn't tell anything about the real application so that so you have to
00:29:44.880
yeah i i want there will be programmers to learn about the common behavior on the real
00:29:51.120
application so
00:30:03.600
so it's you know performance tuning is kind of like science so you have to you have
00:30:10.399
to you know analyze there so
00:30:16.399
learn love learn about
00:30:35.760
all right well let's give max
00:31:21.440
you