WEBVTT 00:00:16.509 --> 00:00:18.659 Thank you for coming 00:00:18.659 --> 00:00:23.269 and Ruby Conf is always great 00:00:23.269 --> 00:00:30.269 and a keynote make me depressed (laughs) 00:00:32.238 --> 00:00:33.659 You know I'm a programmer 00:00:33.659 --> 00:00:35.260 I'm a language designer 00:00:35.260 --> 00:00:42.260 so you know, my main tasks should be is designing language 00:00:42.920 --> 00:00:43.739 a great language 00:00:43.739 --> 00:00:48.369 I admit that I did great things 00:00:48.369 --> 00:00:49.149 you know 00:00:49.149 --> 00:00:51.829 that influenced 00:00:51.829 --> 00:00:54.819 so many people all around the world 00:00:54.819 --> 00:00:55.889 including you guys 00:00:55.889 --> 00:00:57.899 so I'm pretty happy with it 00:00:57.899 --> 00:00:59.679 but still 00:00:59.679 --> 00:01:01.899 you know 00:01:01.899 --> 00:01:04.250 I'm not really a great presenter 00:01:04.250 --> 00:01:10.159 nor 00:01:10.159 --> 00:01:11.170 I'm very 00:01:11.170 --> 00:01:18.170 I'm not really good at english 00:01:19.380 --> 00:01:21.069 that always makes me nervous 00:01:21.069 --> 00:01:26.789 anyway, today I'm going to talk about the fantasy land 00:01:26.789 --> 00:01:29.759 ok 00:01:29.759 --> 00:01:30.039 this way 00:01:30.039 --> 00:01:33.539 fantasy land 00:01:33.539 --> 00:01:37.970 that is a place being away from reality 00:01:37.970 --> 00:01:43.099 the where the unicorn lives 00:01:43.099 --> 00:01:44.649 in Japanese it is called 00:01:44.649 --> 00:01:46.229 genjitsu-tohi 00:01:46.229 --> 00:01:49.069 which is escaping from reality 00:01:49.069 --> 00:01:50.920 my dictionary says that is escapism 00:01:50.920 --> 00:01:53.899 is that correct word or something 00:01:53.899 --> 00:01:55.280 so for example 00:01:55.280 --> 00:02:00.800 so the starting cleanup right before the deadline 00:02:00.800 --> 00:02:05.420 is kinda like escapism 00:02:05.420 --> 00:02:08.030 starting debuging mruby right before the keynote 00:02:08.030 --> 00:02:10.818 is escapism 00:02:10.818 --> 00:02:12.129 that is what I did 00:02:12.129 --> 00:02:14.980 so today 00:02:14.980 --> 00:02:16.620 I'm going to talk about 00:02:16.620 --> 00:02:19.110 oh excuse me 00:02:19.110 --> 00:02:21.610 two fantasy lands 00:02:21.610 --> 00:02:26.249 the first one is kinda like a distopia 00:02:26.249 --> 00:02:29.590 in 1990 00:02:29.590 --> 00:02:31.590 I graduated from university 00:02:31.590 --> 00:02:36.459 I feel old 00:02:36.459 --> 00:02:39.989 I was hired by a software development company 00:02:39.989 --> 00:02:43.230 which does, which did some kind of enterprise software 00:02:43.230 --> 00:02:48.029 in that, that age 00:02:48.029 --> 00:02:52.799 the software development is totally different from now 00:02:52.799 --> 00:02:58.819 so we had some kind of three year project or something 00:02:58.819 --> 00:03:04.219 from the huge company or huge government department 00:03:04.219 --> 00:03:09.189 we had some kind of analysis for months or even years 00:03:09.189 --> 00:03:13.189 then we wrote some kind of very detailed documentation 00:03:13.189 --> 00:03:14.769 this abstract documentation 00:03:14.769 --> 00:03:16.480 the detailed documentation 00:03:16.480 --> 00:03:19.459 then we code 00:03:19.459 --> 00:03:26.260 which is the translation from natural language to computer language 00:03:26.260 --> 00:03:30.730 so the process was driven by waterfall process 00:03:30.730 --> 00:03:36.299 so the company's decision was very, very, very conservative 00:03:36.299 --> 00:03:42.590 so at that time I felt something was wrong 00:03:42.590 --> 00:03:43.779 but I couldn't explain why 00:03:43.779 --> 00:03:47.419 just because it was so natural 00:03:47.419 --> 00:03:50.930 everyone was doing it that way in software development 00:03:50.930 --> 00:03:52.790 back then 00:03:52.790 --> 00:03:56.389 so I couldn't explain why 00:03:56.389 --> 00:03:57.629 everyone was doing that 00:03:57.629 --> 00:04:01.829 it is quit difficult to tell what is wrong 00:04:01.829 --> 00:04:04.269 when everyone is doing bad things 00:04:04.269 --> 00:04:05.379 right 00:04:05.379 --> 00:04:10.999 so yea I couldn't imagine what was right and what was wrong 00:04:10.999 --> 00:04:14.219 so after more than 20 years of experience 00:04:14.219 --> 00:04:15.999 I was a pretty experienced programmer 00:04:15.999 --> 00:04:16.418 ah maybe 00:04:16.418 --> 00:04:23.419 now I understand, I now understand what was wrong 00:04:23.710 --> 00:04:26.660 we were wrong in software development 00:04:26.660 --> 00:04:31.900 that depends on some false assumptions 00:04:31.900 --> 00:04:37.290 we were depending on such false assumptions 00:04:37.290 --> 00:04:39.010 assumption number one 00:04:39.010 --> 00:04:42.440 we know what we make 00:04:42.440 --> 00:04:49.210 back then we believed we are knowing what we are going to make 00:04:49.210 --> 00:04:54.990 in reality we don't know what software is 00:04:54.990 --> 00:04:59.870 so software does not have any physical entity 00:04:59.870 --> 00:05:03.620 so it is not limited by physical law 00:05:03.620 --> 00:05:08.620 so it can be very, very easily complex 00:05:08.620 --> 00:05:15.620 so, for example, if I were a building architect 00:05:17.490 --> 00:05:21.920 so I design a building like this hotel 00:05:21.920 --> 00:05:25.560 so we need to think about, for example 00:05:25.560 --> 00:05:31.250 about weather, or the strengths of the concrete, 00:05:31.250 --> 00:05:37.560 or iron, or something, the building materials 00:05:37.560 --> 00:05:42.460 then the strength of the building itself can be 00:05:42.460 --> 00:05:47.640 calculated by physically, easily simulated 00:05:47.640 --> 00:05:50.930 but you know 00:05:50.930 --> 00:05:55.670 when we starting developing software it is easy, like 00:05:55.670 --> 00:05:57.140 "hello world" 00:05:57.140 --> 00:05:57.940 that's quite easy 00:05:57.940 --> 00:05:59.720 there is no room for bug 00:05:59.720 --> 00:06:03.110 but the software is getting bigger and bigger 00:06:03.110 --> 00:06:09.370 so it's quite difficult to understand say 10,000 lines of code 00:06:09.370 --> 00:06:14.030 but now days software is so huge 00:06:14.030 --> 00:06:21.030 like if I had a Prius here, it is an automobile, 00:06:24.490 --> 00:06:30.080 it has tons of lines of code, maybe hundreds of lines of code, tons of hundreds 00:06:30.080 --> 00:06:32.560 maybe millions of code 00:06:32.560 --> 00:06:39.560 so it's like, as a software developer, you can imagine how difficult to ensure no bugs 00:06:41.630 --> 00:06:44.800 in the millions of lines of code 00:06:44.800 --> 00:06:45.580 yeah 00:06:45.580 --> 00:06:46.970 I'm sure I cannot do that 00:06:46.970 --> 00:06:53.970 so, the software can be a most complex creation, maybe 00:06:54.860 --> 00:06:59.220 and no document but code can explain the details 00:06:59.220 --> 00:07:06.220 so the, we believe we knew what we were going to make 00:07:06.300 --> 00:07:09.610 but in reality, we didn't 00:07:09.610 --> 00:07:12.020 false assumption number two, which is 00:07:12.020 --> 00:07:16.840 we know what we want 00:07:16.840 --> 00:07:19.580 in reality, it's quite difficult to imagine 00:07:19.580 --> 00:07:26.580 you know, in a waterfall age I write a code (?? 00:07:27.16) with sophistication 00:07:27.360 --> 00:07:31.770 and I give that sophistication to our client 00:07:31.770 --> 00:07:37.240 then clients said, OK, then we started development 00:07:37.240 --> 00:07:41.460 a few weeks, few months, few years later 00:07:41.460 --> 00:07:43.890 the software was finished 00:07:43.890 --> 00:07:44.850 then I wrote 00:07:44.850 --> 00:07:49.330 if we wrote it to the client, then 00:07:49.330 --> 00:07:53.230 can you imagine what the client said? 00:07:53.230 --> 00:07:54.760 it's not what I wanted 00:07:54.760 --> 00:08:00.520 but, they said yes, this is OK 00:08:00.520 --> 00:08:06.750 but, afterwards, they said, this is not what I wanted 00:08:06.750 --> 00:08:11.310 even, I admit, I said OK 00:08:11.310 --> 00:08:18.310 but, you know, we couldn't imagine what the software appears in reality 00:08:19.480 --> 00:08:26.480 so, like a stupid boss says ?? (00:08:23.56) to the client 00:08:28.530 --> 00:08:31.450 yeah, I complained a lot 00:08:31.450 --> 00:08:34.130 I happened to complain so often, back then 00:08:34.130 --> 00:08:41.130 but one day, I asked my colleague to create some kind of software 00:08:43.078 --> 00:08:46.430 at that time I was so busy, so I 00:08:46.430 --> 00:08:49.050 I explained what I want to my colleague 00:08:49.050 --> 00:08:52.240 then he created the software, then back to me 00:08:52.240 --> 00:08:57.470 and I said, this is not what I wanted! (laughs) 00:08:57.470 --> 00:09:01.070 stupid me 00:09:01.070 --> 00:09:06.910 I said I don't know why we should make too maximize business value 00:09:06.910 --> 00:09:13.910 we couldn't, no, we couldn't understand what is gonna bring you success 00:09:15.630 --> 00:09:20.990 so we are stupid, too 00:09:20.990 --> 00:09:23.580 so, false assumption number three 00:09:23.580 --> 00:09:24.480 which is 00:09:24.480 --> 00:09:27.560 the situation will not be changed 00:09:27.560 --> 00:09:33.860 in reality, we don't know the future 00:09:33.860 --> 00:09:36.190 we're not prophets 00:09:36.190 --> 00:09:38.190 we have wrong forecasts 00:09:38.190 --> 00:09:45.190 so yeah, in this technology field, we have a lot of 00:09:46.820 --> 00:09:50.250 we're gonna have this technology, we're gonna have this, too 00:09:50.250 --> 00:09:53.210 we're gonna conquer the world, so 00:09:53.210 --> 00:09:57.090 most forecasts will be wrong 00:09:57.090 --> 00:09:58.920 so let's face it 00:09:58.920 --> 00:09:59.760 we don't know anything 00:09:59.760 --> 00:10:03.980 20 years ago 00:10:03.980 --> 00:10:07.670 we should have admitted our ignorance, but we couldn't 00:10:07.670 --> 00:10:11.390 so instead, we ignored our ignorance 00:10:11.390 --> 00:10:18.370 so, when we know little, we have very few choices, so 00:10:18.370 --> 00:10:23.020 choice number one is a conservative strategy 00:10:23.020 --> 00:10:23.990 learn from the past 00:10:23.990 --> 00:10:29.850 so, this is very good strategy 00:10:29.850 --> 00:10:32.980 and the politicians often take 00:10:32.980 --> 00:10:34.000 conservative 00:10:34.000 --> 00:10:40.810 but it is pretty good unless factors don't change 00:10:40.810 --> 00:10:44.320 unfortunately not in the IT industry, so 00:10:44.320 --> 00:10:50.300 we change a lot, the situation will change drastically, day by day 00:10:50.300 --> 00:10:57.300 so, in our industry it's kind of like the quote from Red Queen in Alice in Wonderland 00:11:02.029 --> 00:11:09.029 "Now, here, you see, it takes all the running you can do, to keep in the same place. 00:11:09.560 --> 00:11:16.560 If you want to get somewhere else, you must run at least twice as fast as that!" 00:11:16.890 --> 00:11:21.550 It's our situation, here 00:11:21.550 --> 00:11:25.880 probably, yeah 00:11:25.880 --> 00:11:26.779 it's our situation 00:11:26.779 --> 00:11:32.480 we have to run as fast as we can to be in the same place 00:11:32.480 --> 00:11:36.190 so, strategy number two is 00:11:36.190 --> 00:11:37.089 ostrich algorithm 00:11:37.089 --> 00:11:43.360 in the ostrich algorithm 00:11:43.360 --> 00:11:49.330 so when the sandstorm comes, ostrich dig in their head into sand 00:11:49.330 --> 00:11:53.660 and wait until the sandstorm ends 00:11:53.660 --> 00:11:58.040 so the, the ostrich strategy is ignore everything, and wait 00:11:58.040 --> 00:12:05.040 it is a good strategy 00:12:08.020 --> 00:12:11.440 only when situations will recover 00:12:11.440 --> 00:12:13.760 so sandstorms will end 00:12:13.760 --> 00:12:20.760 so, we will have the clear skies and we 00:12:21.120 --> 00:12:26.170 we can enjoy our climate again 00:12:26.170 --> 00:12:31.020 but, you know, in our industry 00:12:31.020 --> 00:12:32.230 that's not going to happen 00:12:32.230 --> 00:12:36.850 where the situation will change and change and change and not recover 00:12:36.850 --> 00:12:42.480 so we, we cannot go back to the main frames 00:12:42.480 --> 00:12:47.790 we can go back to the, you know, eighty, fifty years or something 00:12:47.790 --> 00:12:52.080 so we must keep forward, keep going forward 00:12:52.080 --> 00:12:59.080 so the ostrich algorithm is very good strategy in the past 00:12:59.490 --> 00:13:01.440 when the situation will recover 00:13:01.440 --> 00:13:06.310 so the, this strategy, this algorithm, is written in our instincts 00:13:06.310 --> 00:13:10.690 so we are so easy to choose that strategy 00:13:10.690 --> 00:13:17.690 but, otherwise, when the situation will not recover 00:13:19.660 --> 00:13:21.600 it's kind of like the living in the fantasy land 00:13:21.600 --> 00:13:28.560 so, going forward with false assumptions is kind of like living in the fantasy land 00:13:28.560 --> 00:13:35.560 so, ignoring reality 00:13:36.020 --> 00:13:38.279 we had two strategies 00:13:38.279 --> 00:13:42.899 conservative strategy and ostrich algorithm 00:13:42.899 --> 00:13:45.070 which strategy do we take? 00:13:45.070 --> 00:13:48.290 neither of them are good 00:13:48.290 --> 00:13:50.490 20 years ago 00:13:50.490 --> 00:13:56.959 our goal was to create the software, somehow 00:13:56.959 --> 00:13:59.930 having computerized system is the power 00:13:59.930 --> 00:14:05.490 it is so powerful, the computer itself is so powerful, comparing to the human creation 00:14:05.490 --> 00:14:06.190 ??(00:14:05.13) 00:14:06.190 --> 00:14:12.550 so it has great power, so software development was pretty expensive back then 00:14:12.550 --> 00:14:14.480 the computers were expensive 00:14:14.480 --> 00:14:16.720 the network connection was expensive 00:14:16.720 --> 00:14:21.850 the failure never be allowed in that age 00:14:21.850 --> 00:14:26.720 so they needed to optimize, not to fail 00:14:26.720 --> 00:14:28.390 at the cost of satisfaction 00:14:28.390 --> 00:14:33.850 so I don't care you are satisfied our software or not 00:14:33.850 --> 00:14:40.850 but I can re-use some kind of the power of computers with that computerized system 00:14:42.600 --> 00:14:44.100 so everyone was dreaming 00:14:44.100 --> 00:14:48.190 we believed that the only way to create software 00:14:48.190 --> 00:14:52.060 we tried hard to believe that was the only way 00:14:52.060 --> 00:14:54.270 but 20 years later, now 00:14:54.270 --> 00:15:00.020 our goal is not really, not just create a software 00:15:00.020 --> 00:15:02.810 our goal is to create the great software 00:15:02.810 --> 00:15:09.810 you know, nowadays everyone has computer, everyone uses software 00:15:09.920 --> 00:15:15.330 so, mere possession is no longer the power 00:15:15.330 --> 00:15:17.529 everyone has computer, everyone has software 00:15:17.529 --> 00:15:19.880 so we're saved 00:15:19.880 --> 00:15:24.839 to differentiate, to have the power over others 00:15:24.839 --> 00:15:30.209 we need to create great software, we need great software 00:15:30.209 --> 00:15:36.520 we got to create great software, but how? 00:15:36.520 --> 00:15:38.670 of course we don't know 00:15:38.670 --> 00:15:40.279 we have made false assumptions 00:15:40.279 --> 00:15:42.360 admit our ignorance 00:15:42.360 --> 00:15:46.899 but, but there's good news, there's good news 00:15:46.899 --> 00:15:49.200 the computers are cheaper 00:15:49.200 --> 00:15:52.110 cloud computing is even cheaper 00:15:52.110 --> 00:15:54.769 a network connection is cheaper now 00:15:54.769 --> 00:15:55.610 and ubiquitous 00:15:55.610 --> 00:15:57.019 everyone has imagination 00:15:57.019 --> 00:16:00.300 even in this room 00:16:00.300 --> 00:16:01.959 software development is cheaper 00:16:01.959 --> 00:16:04.260 comparing to twenty-something years ago 00:16:04.260 --> 00:16:08.660 so, we can be more productive, more abstract 00:16:08.660 --> 00:16:12.149 and we now have better tools and a better language 00:16:12.149 --> 00:16:19.149 like Ruby 00:16:24.720 --> 00:16:26.980 and we have a lot of open source software 00:16:26.980 --> 00:16:29.360 so we can rely on that kind of software 00:16:29.360 --> 00:16:31.339 we can learn from that software 00:16:31.339 --> 00:16:38.339 so, old days, it is quite difficult to study from the real source source code ?? (00:16:41.91) 00:16:44.529 --> 00:16:50.620 if you would like to learn about the operating system 00:16:50.620 --> 00:16:57.620 so you cannot access to the source code of, say, Microsoft Windows 00:16:59.810 --> 00:17:04.579 or the ?? (00:17:00.68) or some other operating system 00:17:04.579 --> 00:17:09.179 you, you can access through Linux?? (00:17:08.34) 00:17:09.179 --> 00:17:12.409 or the very old version of Linux 00:17:12.409 --> 00:17:15.269 but not the real software 00:17:15.269 --> 00:17:18.010 but nowadays you can access the Linux 00:17:18.010 --> 00:17:23.209 a whole bunch of Linux code and you have tons of operating systems 00:17:23.209 --> 00:17:27.420 and that is used in reality 00:17:27.420 --> 00:17:29.740 and 00:17:29.740 --> 00:17:33.960 you can use some software in your system 00:17:33.960 --> 00:17:37.299 you can learn from that source code 00:17:37.299 --> 00:17:44.299 so it's much easier for us to learn and create the great software 00:17:46.710 --> 00:17:49.960 and we can now have the collaboration via internet 00:17:49.960 --> 00:17:55.320 it's, it's changed the game 00:17:55.320 --> 00:18:00.320 so, 20 years ago, soon after I graduated the university 00:18:00.320 --> 00:18:07.179 I was at the point I was working as a professional programmer in enterprise software 00:18:07.179 --> 00:18:14.179 I was prohibit to write email abroad, outside Japan 00:18:14.760 --> 00:18:18.220 only 20 years ago - not two hundred years ago 00:18:18.220 --> 00:18:25.220 so, yeah, I, when I was a university student 00:18:26.100 --> 00:18:28.640 I wrote some kind of software, free software 00:18:28.640 --> 00:18:35.640 it was distributed by, it was quite minor, you know client on top of ?? (00:18:32.73) 00:18:36.130 --> 00:18:43.130 and, I got to mail from some other guys, probably in the States 00:18:43.700 --> 00:18:46.490 I don't remember quite 00:18:46.490 --> 00:18:47.730 but 00:18:47.730 --> 00:18:52.460 I tried to reply, and soon after that I got error mail 00:18:52.460 --> 00:18:59.460 your company did not pay money to the internet connection 00:19:00.450 --> 00:19:04.809 international internet connection, I mean 00:19:04.809 --> 00:19:10.370 so, I forwarded that reply to my friend in the university 00:19:10.370 --> 00:19:17.370 the university pay that kind of bill so that he could receive the mail 00:19:19.850 --> 00:19:23.490 it was quite awkward corresponding, you know 00:19:23.490 --> 00:19:26.720 he wrote mail to me then I did not respond 00:19:26.720 --> 00:19:30.710 so that, the friend respond because of me or something like that 00:19:30.710 --> 00:19:37.710 but, you know, now we can connect to everyone all over the world 00:19:37.980 --> 00:19:44.380 so we can access through Japan, China, Moscow, everywhere 00:19:44.380 --> 00:19:47.750 so we can now collaborate over the internet 00:19:47.750 --> 00:19:54.750 so, that allows us to do some kind of social coding, so 00:19:55.010 --> 00:19:59.350 so, GitHub changed everything 00:19:59.350 --> 00:20:06.350 so these good things bring up the new fantasy land 00:20:07.049 --> 00:20:09.520 the new perspective 00:20:09.520 --> 00:20:16.520 so we can ignore gory detail of the hardware or the 00:20:17.140 --> 00:20:21.840 and the new operating system, for most of the cases 00:20:21.840 --> 00:20:28.030 we can stand on the shoulders of giants, so we can use the great huge software 00:20:28.030 --> 00:20:35.030 of the operating system, framework, language, the tools, editors 00:20:36.220 --> 00:20:37.419 so a lot of the things 00:20:37.419 --> 00:20:44.419 so we can do great things with very little effort, comparing to the past 00:20:45.470 --> 00:20:52.470 so we can do greater work than our real ability, real power 00:20:54.040 --> 00:21:01.040 so, I think the genius 20 years ago does not recur enough, is not strong enough 00:21:04.919 --> 00:21:09.500 they are almost fame ?? (00:21:05.97), the ability as a human, in genius 00:21:09.500 --> 00:21:16.080 but, now, we can rely, we can collaborate, we can collaborate over internet 00:21:16.080 --> 00:21:22.929 we can collaborate on top of open source software, free software, so 00:21:22.929 --> 00:21:26.200 we can do greater works than our past 00:21:26.200 --> 00:21:30.179 but that does not mean we are greater 00:21:30.179 --> 00:21:32.890 so the situation has changed 00:21:32.890 --> 00:21:38.040 we can have power, we can have more freedom 00:21:38.040 --> 00:21:40.870 we can have more joy in software 00:21:40.870 --> 00:21:47.870 so I remember that the, working on the enterprises software was not fun 00:21:48.419 --> 00:21:55.419 so, it's quite boring, so translating human sophistication 00:21:55.600 --> 00:22:01.360 in human language into the computer language was so boring 00:22:01.360 --> 00:22:07.799 you know, that sophistication once said that, OK, assign this value to this variable 00:22:07.799 --> 00:22:10.990 or something like that, so 00:22:10.990 --> 00:22:17.990 why these kind of genius don't write the code by themselves? 00:22:18.870 --> 00:22:22.429 it was quite boring when I was ?? (00:22:49.51) 00:22:22.429 --> 00:22:29.429 so now, we can do by ourselves, we can have joy in our programming 00:22:29.860 --> 00:22:31.740 it's kind of like engineers' heaven 00:22:31.740 --> 00:22:36.530 that's where we are, and that's why we are here 00:22:36.530 --> 00:22:43.530 but wait, it's still not real 00:22:44.820 --> 00:22:49.720 in reality is as conflict as past 00:22:49.720 --> 00:22:55.650 so, who maintains this fantasy land? 00:22:55.650 --> 00:23:00.730 in reality, we cannot just ignore mess, so we don't need 00:23:00.730 --> 00:23:07.730 something, so, we can ignore or just forget 00:23:08.980 --> 00:23:14.390 but something's got to maintain this kind of a mess 00:23:14.390 --> 00:23:21.390 so, it's, so somebody's got to work on that kind of mess 00:23:23.150 --> 00:23:25.080 garbage collectors 00:23:25.080 --> 00:23:29.160 no, that's not the garbage that you imagine 00:23:29.160 --> 00:23:36.160 for that kind of topic you can go to to the Koichi talk 00:23:37.070 --> 00:23:43.500 so, by the term garbage collector, I meant this (picture) 00:23:43.500 --> 00:23:50.500 and, we have to rely on this kind of people in our daily life 00:23:51.990 --> 00:23:55.040 even in our programming 00:23:55.040 --> 00:24:00.410 without them, we would become mess 00:24:00.410 --> 00:24:02.809 so welcome to the desert of reality 00:24:02.809 --> 00:24:06.809 we rely on garbage collectors 00:24:06.809 --> 00:24:10.280 so we'd better appreciate them 00:24:10.280 --> 00:24:17.280 we rely on a lot of garbage collectors who keep the fantasy land 00:24:19.320 --> 00:24:22.590 who created your favorite language? 00:24:22.590 --> 00:24:25.070 the garbage collector 00:24:25.070 --> 00:24:30.780 or, who created your favorite gems? 00:24:30.780 --> 00:24:34.820 gem creators, raise your hands 00:24:34.820 --> 00:24:38.429 you have to appreciate them (applause) 00:24:38.429 --> 00:24:43.669 thank you 00:24:43.669 --> 00:24:47.350 who created your favorite frameworks? 00:24:47.350 --> 00:24:54.350 who wrote your favorite books? book writers, raise your hand (applause) 00:24:57.130 --> 00:25:04.130 who created your opensource software, we have tons of open source software 00:25:05.750 --> 00:25:07.980 in and out our Ruby community 00:25:07.980 --> 00:25:09.440 so we have to appreciate them 00:25:09.440 --> 00:25:15.620 so appreciation and respect is the key, I believe 00:25:15.620 --> 00:25:19.299 the key to the open source community 00:25:19.299 --> 00:25:22.240 the key to the moving forward 00:25:22.240 --> 00:25:24.460 so open source community is kind of like a shark 00:25:24.460 --> 00:25:25.770 (laughs) 00:25:25.770 --> 00:25:32.770 we need to keep moving forward, or die 00:25:35.090 --> 00:25:36.730 (applause) 00:25:36.730 --> 00:25:43.730 so, we have to, and I would advise to you, keep moving forward 00:25:44.960 --> 00:25:51.630 so you have to run as fast as you can to stay in the same place 00:25:51.630 --> 00:25:58.630 and you have to run twice as fast as that to move forward 00:25:59.039 --> 00:26:04.030 so run fast, try often, fail early 00:26:04.030 --> 00:26:08.020 keep moving forward, yes, that is my message 00:26:08.020 --> 00:26:11.630 and in addition, appreciation is not enough 00:26:11.630 --> 00:26:18.270 so, we are not creative to the gem writers 00:26:18.270 --> 00:26:22.679 we are not creative to the language designer 00:26:22.679 --> 00:26:29.150 we are not creative to the open source software programmers 00:26:29.150 --> 00:26:32.289 so we became one 00:26:32.289 --> 00:26:39.289 so, take the red pill 00:26:41.950 --> 00:26:45.210 so, you can come join us 00:26:45.210 --> 00:26:49.690 if you are a programmer, that's fine, that's fine you're a programmer 00:26:49.690 --> 00:26:54.539 you take a great step to create something 00:26:54.539 --> 00:26:57.210 you know, the programmer is a creator 00:26:57.210 --> 00:27:04.210 so, you create software, then by your creation 00:27:05.530 --> 00:27:09.720 the world will be better, I hope, I really will hope 00:27:09.720 --> 00:27:12.880 the world will be better by your creation 00:27:12.880 --> 00:27:18.450 you programmers, you create soft ware, and you make the world better 00:27:18.450 --> 00:27:25.450 but, but you might still living in the fantasy land 00:27:27.690 --> 00:27:31.910 which is kept by the garbage collectors 00:27:31.910 --> 00:27:37.020 and if you're willing, I'm not forcing you 00:27:37.020 --> 00:27:40.490 if you're willing, you can be one of them 00:27:40.490 --> 00:27:44.630 you can be a garbage collector 00:27:44.630 --> 00:27:46.710 you don't want? 00:27:46.710 --> 00:27:49.309 but this garbage collector is much cleaner 00:27:49.309 --> 00:27:56.309 so, be a garbage collector, take part in keeping the fantasy land 00:27:56.840 --> 00:28:03.840 so this fantasy land, unlike the first one, which ignores everything 00:28:04.860 --> 00:28:11.860 so this fantasy land, we currently enjoy is our result of the effort of the long time 00:28:15.570 --> 00:28:20.350 maybe twenty, forty, fifty years of the great effort of the garbage collectors 00:28:20.350 --> 00:28:27.350 so, I, I invite you guys to take part in keeping the fantasy land 00:28:33.809 --> 00:28:38.640 and for example, so you can join the CRuby 00:28:38.640 --> 00:28:45.640 even in writing some reporting some issues the bug trackers or something like that 00:28:46.840 --> 00:28:53.840 so, once you know what we garbage collectors doing behind the CRuby 00:28:54.980 --> 00:29:01.980 you can take the, that session 00:29:04.049 --> 00:29:11.049 so, again, so I ask you to create a great fantasy land 00:29:18.140 --> 00:29:25.140 currently we enjoy, and it can be even greater with your effort 00:29:25.330 --> 00:29:30.570 so you can do as much, many things, so writing software on top of Ruby on Rails 00:29:30.570 --> 00:29:32.220 or the ?? (00:22:49.51) or something like that 00:29:32.220 --> 00:29:39.220 that will enrich the community and communicate with blogs, twitter and social net, social 00:29:41.580 --> 00:29:41.929 coding 00:29:41.929 --> 00:29:48.929 or even, participate in the community, like the GitHub is our friend 00:29:49.990 --> 00:29:55.150 you can do many things, submit bugs, write documents on the 00:29:55.150 --> 00:29:58.159 you know, have a presentation in the conference, you can 00:29:58.159 --> 00:30:05.159 or, write a small piece of software, write a part in the, submit a ?? (00:31:05.62) 00:30:05.240 --> 00:30:11.260 so, so many things you can do, but in any way create 00:30:11.260 --> 00:30:16.179 and try to keep a great fantasy land that we enjoy 00:30:16.179 --> 00:30:16.929 change the world 00:30:16.929 --> 00:30:23.929 so, I believe we've changed the world in better ways 00:30:24.690 --> 00:30:29.230 in the past, say, ten years, so 00:30:29.230 --> 00:30:33.110 a lot of people in this conference, in the past Ruby conferences 00:30:33.110 --> 00:30:40.110 so presented the great things, so now I expect even more great work will be introduced in 00:30:44.510 --> 00:30:48.200 this conference 00:30:48.200 --> 00:30:55.200 so do not be a just a listener 00:30:55.360 --> 00:31:01.190 do not be a passive receiver of information 00:31:01.190 --> 00:31:08.190 so you hear something in this conference, you learn something, take action 00:31:11.270 --> 00:31:12.909 change the world 00:31:12.909 --> 00:31:19.029 so, this is the key of the open source community 00:31:19.029 --> 00:31:25.390 this is the key of the Ruby community, so 00:31:25.390 --> 00:31:29.250 I know myself, I'm not a great programmer 00:31:29.250 --> 00:31:36.250 so, especially the Ruby commuters in the league knows I'm not a great programmer 00:31:40.080 --> 00:31:42.440 I create so many bugs 00:31:46.240 --> 00:31:56.620 but, but still, I could, I did great job that influenced the world 00:31:57.140 --> 00:32:03.770 and I respect myself by changing the world better 00:32:03.770 --> 00:32:09.400 so I believe you can do that too in someways 00:32:09.400 --> 00:32:10.809 so change the world 00:32:10.809 --> 00:32:11.150 thank you 00:32:11.150 --> 00:32:11.809 domo arigato