Your SlideShare is downloading. ×
Ruby 124C41+  - Matz
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ruby 124C41+ - Matz

1,637
views

Published on

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,637
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ruby 124C41+ Yukihiro "Matz" Matsumoto まつもと ゆきひろ Powered by Rabbit 0.6.4
  • 2. FAQ What's 124C41+? 1/54 Powered by Rabbit 0.6.4
  • 3. Ralph 124C41+ A romance of the year 2660 2/54 Powered by Rabbit 0.6.4
  • 4. Ralph 124C41+ ✓ The very early science fiction story ✓ In the year 2660, a genius inventor Ralph 124C41+ saves his girlfriend kidnapped by a bad Martian. 3/54 Powered by Rabbit 0.6.4
  • 5. Ralph 124C41+ ✓ Written by Hugo Gernsback ✓ in 1911 ✓ Predicted a lot of modern inventions ✓ Television ✓ Solar power ✓ and lot more 4/54 Powered by Rabbit 0.6.4
  • 6. Ralph 124C41+ Check Wikipedia 5/54 Powered by Rabbit 0.6.4
  • 7. Ralph 124C41+ ✓ One to foresee for one ✓ means if we have enough input and insight, we can foresee the future. ✓ The future of Ruby 6/54 Powered by Rabbit 0.6.4
  • 8. Ruby 124C41+ We try to foresee the future of Ruby the language 7/54 Powered by Rabbit 0.6.4
  • 9. Moore's law The number of transistors in LSI doubles every 24 months 8/54 Powered by Rabbit 0.6.4
  • 10. the CPU Moore's law means the power of CPU grows exponentially 9/54 Powered by Rabbit 0.6.4
  • 11. Faster Computers PCs are faster than super computers of 20 years ago 10/54 Powered by Rabbit 0.6.4
  • 12. Cheaper Computers We can buy a laptop PC at appliance stores for $400 or less 11/54 Powered by Rabbit 0.6.4
  • 13. Cheaper Connection $50 or less for 100M optic fiber connection in Japan 12/54 Powered by Rabbit 0.6.4
  • 14. Bigger Storage ✓ Bigger RAM ✓ Bigger HDD 13/54 Powered by Rabbit 0.6.4
  • 15. The end of Clock grow 14/54 Powered by Rabbit 0.6.4
  • 16. Many Cores ✓ Dual core ✓ Quad core ✓ Many core ✓ or even DC in a chip 15/54 Powered by Rabbit 0.6.4
  • 17. Ubiquitous Computer Japanese cell phone from Panasonic 16/54 Powered by Rabbit 0.6.4
  • 18. Hardware Trend ✓ Faster ✓ Cheaper ✓ More ubiquitous ✓ More cores 17/54 Powered by Rabbit 0.6.4
  • 19. Software Trend ✓ hardware changes ✓ cause software changes 18/54 Powered by Rabbit 0.6.4
  • 20. Runtime Efficiency ✓ Less important ✓ CPUs are fast 19/54 Powered by Rabbit 0.6.4
  • 21. No More Assembler ✓ haven't heard lately? 20/54 Powered by Rabbit 0.6.4
  • 22. Software Becomes ✓ More important ✓ More complex ✓ We just need more software 21/54 Powered by Rabbit 0.6.4
  • 23. Abstraction ✓ Object-oriented programming ✓ Functional programming 22/54 Powered by Rabbit 0.6.4
  • 24. Software Trend ✓ Runtime efficiency less important ✓ We can emphasize human factor ✓ More abstraction ✓ More confortable tools 23/54 Powered by Rabbit 0.6.4
  • 25. Information Explosion ✓ We will produce 988 Exabytes in the year 2010 ✓ Bigger data than human kind have ever produced 24/54 Powered by Rabbit 0.6.4
  • 26. Summary ✓ Machines are faster ✓ Connections are cheaper ✓ We need more software ✓ We have huge amount of data 25/54 Powered by Rabbit 0.6.4
  • 27. Ruby in the Past ✓ back in 1993 ✓ mc68000 200MHz ✓ 200MB HDD ✓ BSD UNIX 26/54 Powered by Rabbit 0.6.4
  • 28. The year 1993 ✓ C / C++ ✓ Windows 3.1 / SunOS / MacOS ✓ Perl4 / AWK ✓ No one use OOP in scripting 27/54 Powered by Rabbit 0.6.4
  • 29. The year 1993 ✓ OOP fanboy ✓ Language geek ✓ UNIX hacker 28/54 Powered by Rabbit 0.6.4
  • 30. OO Scripting ✓ Too slow ✓ Too complex ✓ Too much 29/54 Powered by Rabbit 0.6.4
  • 31. No One Stopped Me ✓ Project started on February 24, 1993 ✓ The day I choose the name Ruby ✓ The name is so important for software ✓ one thing I regret Googlability 30/54 Powered by Rabbit 0.6.4
  • 32. No One Stopped Me ✓ Took me 6 months for simple "hello world" ✓ that made me realized GC needs ✓ Released publicly December 21, 1995 31/54 Powered by Rabbit 0.6.4
  • 33. Ruby the Language Ruby has proven ✓ OOP for scripting is useful ✓ OOP can be simple and easy ✓ Programming can be fun again 32/54 Powered by Rabbit 0.6.4
  • 34. Extreme Language Design ✓ if OOP is good, make everything OOP ✓ if scripting is good, make everything scripting ✓ if DSL is good, make everything DSL 33/54 Powered by Rabbit 0.6.4
  • 35. Extreme Language Design ✓ if higher order function is good, allow every method to be higher order function ✓ if mixin is good, disallow multiple inheritance 34/54 Powered by Rabbit 0.6.4
  • 36. Background ✓ Machines are faster / cheaper / ubiquitous ✓ More cores ✓ Connections are cheaper 35/54 Powered by Rabbit 0.6.4
  • 37. Background ✓ We need more software ✓ Productivity become more important ✓ We have huge amount of data (988 Exabytes) 36/54 Powered by Rabbit 0.6.4
  • 38. Background ✓ Ruby focus on programmers ✓ Ruby focus on productivity ✓ Ruby tend to choose extreme design 37/54 Powered by Rabbit 0.6.4
  • 39. The Future of Ruby What do you think? 38/54 Powered by Rabbit 0.6.4
  • 40. The Future of Ruby Faster ✓ Multiple VM ✓ GC improvement ✓ JIT? 39/54 Powered by Rabbit 0.6.4
  • 41. The Future of Ruby More Powerful ✓ Distributed programming ✓ dRuby / Rinda ✓ Message Queue ✓ faster IPC (messagepack) ✓ Multi-core aware (via MVM) 40/54 Powered by Rabbit 0.6.4
  • 42. The Future of Ruby Broader ✓ small → embedding ✓ large → HPC 41/54 Powered by Rabbit 0.6.4
  • 43. Embedding Smaller Implementation ✓ Alternative (not planned yet) ✓ Atomic Ruby 42/54 Powered by Rabbit 0.6.4
  • 44. HPC High Performance Computing ✓ improve NArray (w/ libjit) ✓ MPI Ruby ✓ AOT compiler ✓ and other HPC stuff 43/54 Powered by Rabbit 0.6.4
  • 45. The Future of Ruby More Modular ✓ Selector namespace ✓ classbox ✓ Traits 44/54 Powered by Rabbit 0.6.4
  • 46. Selector Namespace ✓ limit the effectiveness of name overriding ✓ scoped mathn, for example 45/54 Powered by Rabbit 0.6.4
  • 47. Traits ✓ Operational combination of features (methods) ✓ module operation +, - 46/54 Powered by Rabbit 0.6.4
  • 48. The Future of Ruby More Functional ✓ Explicit lazy evaluation ✓ Enumerator as Lazy List 47/54 Powered by Rabbit 0.6.4
  • 49. Functional Ruby explict vs implicit ✓ obj.foo vs obj.method(:foo) ✓ foo() vs foo.call() ✓ or foo[] or foo.() 48/54 Powered by Rabbit 0.6.4
  • 50. Functional Ruby explict vs implicit ✓ (take 10 (lines f)) vs f.each.take(10) ✓ not f.lines.take(10) 49/54 Powered by Rabbit 0.6.4
  • 51. Functional Ruby (to be) ✓ map etc. do not work for infinite enumerable ✓ mapx (assumed name) would return enumerator 50/54 Powered by Rabbit 0.6.4
  • 52. The Future of Ruby ✓ Faster ✓ More powerful ✓ Broader ✓ More modular ✓ More functional 51/54 Powered by Rabbit 0.6.4
  • 53. The Future of Ruby ✓ We will keep moving forward ✓ Stay tuned 52/54 Powered by Rabbit 0.6.4
  • 54. We need you ✓ Help us ✓ Let's make Ruby even better! ✓ See you at ruby-core 53/54 Powered by Rabbit 0.6.4
  • 55. Make the World Better Thank you 54/54 Powered by Rabbit 0.6.4

×