Suche senden
Hochladen
Why Ruby?
•
1 gefällt mir
•
699 views
Robbin Fan
Folgen
Matz keynote speech of Rubyconf China 2009
Weniger lesen
Mehr lesen
Technologie
Bildung
Melden
Teilen
Melden
Teilen
1 von 100
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Fwdays
The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.5.1 book - Part 173 of 180
Mahmoud Samir Fayed
Fine tuning large LMs
Fine tuning large LMs
SylvainGugger
The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.9 book - Part 97 of 210
Mahmoud Samir Fayed
MT and Translator's Tools
MT and Translator's Tools
Jim O'Regan
Python overview
Python overview
Haroon Karim
[PACLING2019] Improving Context-aware Neural Machine Translation with Target-...
[PACLING2019] Improving Context-aware Neural Machine Translation with Target-...
Hayahide Yamagishi
Statistical machine translation for indian language copy
Statistical machine translation for indian language copy
Nakul Sharma
Empfohlen
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Fwdays
The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.5.1 book - Part 173 of 180
Mahmoud Samir Fayed
Fine tuning large LMs
Fine tuning large LMs
SylvainGugger
The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.9 book - Part 97 of 210
Mahmoud Samir Fayed
MT and Translator's Tools
MT and Translator's Tools
Jim O'Regan
Python overview
Python overview
Haroon Karim
[PACLING2019] Improving Context-aware Neural Machine Translation with Target-...
[PACLING2019] Improving Context-aware Neural Machine Translation with Target-...
Hayahide Yamagishi
Statistical machine translation for indian language copy
Statistical machine translation for indian language copy
Nakul Sharma
"Machine Translation 101" and the Challenge of Patents
"Machine Translation 101" and the Challenge of Patents
Iconic Translation Machines
Machine Translation: What it is?
Machine Translation: What it is?
Multilizer
Hyoung-Gyu Lee - 2015 - NAVER Machine Translation System for WAT 2015
Hyoung-Gyu Lee - 2015 - NAVER Machine Translation System for WAT 2015
Association for Computational Linguistics
Developing Korean Chatbot 101
Developing Korean Chatbot 101
Jaemin Cho
Chatbot ppt
Chatbot ppt
Manish Mishra
BERT
BERT
Sang Hyun Jeon
Past, Present, and Future: Machine Translation & Natural Language Processing ...
Past, Present, and Future: Machine Translation & Natural Language Processing ...
John Tinsley
Python enterprise vento di liberta
Python enterprise vento di liberta
Simone Federici
Natural language processing
Natural language processing
Birger Moell
2013 ALC Boston: Your Trained Moses SMT System doesn't work. What can you do?
2013 ALC Boston: Your Trained Moses SMT System doesn't work. What can you do?
tauyou
The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88
Mahmoud Samir Fayed
Moses
Moses
Nikhil Patteri
NLP Deep Learning with Tensorflow
NLP Deep Learning with Tensorflow
seungwoo kim
Large Scale Text Processing
Large Scale Text Processing
Suneel Marthi
Embracing diversity searching over multiple languages
Embracing diversity searching over multiple languages
Suneel Marthi
Semi-supervised Prosody Modeling Using Deep Gaussian Process Latent Variable...
Semi-supervised Prosody Modeling Using Deep Gaussian Process Latent Variable...
Tomoki Koriyama
Big Data Spain 2017 - Deriving Actionable Insights from High Volume Media St...
Big Data Spain 2017 - Deriving Actionable Insights from High Volume Media St...
Apache OpenNLP
Li Deng at AI Frontiers: Three Generations of Spoken Dialogue Systems (Bots)
Li Deng at AI Frontiers: Three Generations of Spoken Dialogue Systems (Bots)
AI Frontiers
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
Jeongkyu Shin
ruby on rails pitfalls
ruby on rails pitfalls
Robbin Fan
Web并发模型粗浅探讨
Web并发模型粗浅探讨
Robbin Fan
Social Game的技术挑战
Social Game的技术挑战
Robbin Fan
Weitere ähnliche Inhalte
Was ist angesagt?
"Machine Translation 101" and the Challenge of Patents
"Machine Translation 101" and the Challenge of Patents
Iconic Translation Machines
Machine Translation: What it is?
Machine Translation: What it is?
Multilizer
Hyoung-Gyu Lee - 2015 - NAVER Machine Translation System for WAT 2015
Hyoung-Gyu Lee - 2015 - NAVER Machine Translation System for WAT 2015
Association for Computational Linguistics
Developing Korean Chatbot 101
Developing Korean Chatbot 101
Jaemin Cho
Chatbot ppt
Chatbot ppt
Manish Mishra
BERT
BERT
Sang Hyun Jeon
Past, Present, and Future: Machine Translation & Natural Language Processing ...
Past, Present, and Future: Machine Translation & Natural Language Processing ...
John Tinsley
Python enterprise vento di liberta
Python enterprise vento di liberta
Simone Federici
Natural language processing
Natural language processing
Birger Moell
2013 ALC Boston: Your Trained Moses SMT System doesn't work. What can you do?
2013 ALC Boston: Your Trained Moses SMT System doesn't work. What can you do?
tauyou
The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88
Mahmoud Samir Fayed
Moses
Moses
Nikhil Patteri
NLP Deep Learning with Tensorflow
NLP Deep Learning with Tensorflow
seungwoo kim
Large Scale Text Processing
Large Scale Text Processing
Suneel Marthi
Embracing diversity searching over multiple languages
Embracing diversity searching over multiple languages
Suneel Marthi
Semi-supervised Prosody Modeling Using Deep Gaussian Process Latent Variable...
Semi-supervised Prosody Modeling Using Deep Gaussian Process Latent Variable...
Tomoki Koriyama
Big Data Spain 2017 - Deriving Actionable Insights from High Volume Media St...
Big Data Spain 2017 - Deriving Actionable Insights from High Volume Media St...
Apache OpenNLP
Li Deng at AI Frontiers: Three Generations of Spoken Dialogue Systems (Bots)
Li Deng at AI Frontiers: Three Generations of Spoken Dialogue Systems (Bots)
AI Frontiers
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
Jeongkyu Shin
Was ist angesagt?
(19)
"Machine Translation 101" and the Challenge of Patents
"Machine Translation 101" and the Challenge of Patents
Machine Translation: What it is?
Machine Translation: What it is?
Hyoung-Gyu Lee - 2015 - NAVER Machine Translation System for WAT 2015
Hyoung-Gyu Lee - 2015 - NAVER Machine Translation System for WAT 2015
Developing Korean Chatbot 101
Developing Korean Chatbot 101
Chatbot ppt
Chatbot ppt
BERT
BERT
Past, Present, and Future: Machine Translation & Natural Language Processing ...
Past, Present, and Future: Machine Translation & Natural Language Processing ...
Python enterprise vento di liberta
Python enterprise vento di liberta
Natural language processing
Natural language processing
2013 ALC Boston: Your Trained Moses SMT System doesn't work. What can you do?
2013 ALC Boston: Your Trained Moses SMT System doesn't work. What can you do?
The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88
Moses
Moses
NLP Deep Learning with Tensorflow
NLP Deep Learning with Tensorflow
Large Scale Text Processing
Large Scale Text Processing
Embracing diversity searching over multiple languages
Embracing diversity searching over multiple languages
Semi-supervised Prosody Modeling Using Deep Gaussian Process Latent Variable...
Semi-supervised Prosody Modeling Using Deep Gaussian Process Latent Variable...
Big Data Spain 2017 - Deriving Actionable Insights from High Volume Media St...
Big Data Spain 2017 - Deriving Actionable Insights from High Volume Media St...
Li Deng at AI Frontiers: Three Generations of Spoken Dialogue Systems (Bots)
Li Deng at AI Frontiers: Three Generations of Spoken Dialogue Systems (Bots)
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
Andere mochten auch
ruby on rails pitfalls
ruby on rails pitfalls
Robbin Fan
Web并发模型粗浅探讨
Web并发模型粗浅探讨
Robbin Fan
Social Game的技术挑战
Social Game的技术挑战
Robbin Fan
Java Eye Architecture
Java Eye Architecture
Robbin Fan
Curriculum Night 2009-10
Curriculum Night 2009-10
Bret Biornstad
Problems of the Week
Problems of the Week
Glenn Kenyon
How to start? The Product
How to start? The Product
Ido Green
Millennial media smart-august-2010
Millennial media smart-august-2010
François Avril
5 things MySql
5 things MySql
sarahnovotny
IRL: How Geeks Undermine Their Presentations & Conversations With Body Language
IRL: How Geeks Undermine Their Presentations & Conversations With Body Language
sarahnovotny
Estandares aprendizaje mcs
Estandares aprendizaje mcs
Geovanny Armijos
Jan 4 Sermon
Jan 4 Sermon
Geo Acts
Challenge of SHIMANE - Example of use Ruby in Japanese regional government an...
Challenge of SHIMANE - Example of use Ruby in Japanese regional government an...
Robbin Fan
BizTalk Practical Course Preview
BizTalk Practical Course Preview
MoustafaRefaat
Les 2 Informatieverzorging
Les 2 Informatieverzorging
Mediena Business School
Bideo-Jolasak
Bideo-Jolasak
olatzucin
Abhigyaan
Abhigyaan
Aalap Tripathy
PDF
PDF
fudy9015
Scaling my sql_in_3d
Scaling my sql_in_3d
sarahnovotny
International Social Media Trends
International Social Media Trends
SueGrant
Andere mochten auch
(20)
ruby on rails pitfalls
ruby on rails pitfalls
Web并发模型粗浅探讨
Web并发模型粗浅探讨
Social Game的技术挑战
Social Game的技术挑战
Java Eye Architecture
Java Eye Architecture
Curriculum Night 2009-10
Curriculum Night 2009-10
Problems of the Week
Problems of the Week
How to start? The Product
How to start? The Product
Millennial media smart-august-2010
Millennial media smart-august-2010
5 things MySql
5 things MySql
IRL: How Geeks Undermine Their Presentations & Conversations With Body Language
IRL: How Geeks Undermine Their Presentations & Conversations With Body Language
Estandares aprendizaje mcs
Estandares aprendizaje mcs
Jan 4 Sermon
Jan 4 Sermon
Challenge of SHIMANE - Example of use Ruby in Japanese regional government an...
Challenge of SHIMANE - Example of use Ruby in Japanese regional government an...
BizTalk Practical Course Preview
BizTalk Practical Course Preview
Les 2 Informatieverzorging
Les 2 Informatieverzorging
Bideo-Jolasak
Bideo-Jolasak
Abhigyaan
Abhigyaan
PDF
PDF
Scaling my sql_in_3d
Scaling my sql_in_3d
International Social Media Trends
International Social Media Trends
Ähnlich wie Why Ruby?
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212
Mahmoud Samir Fayed
Java And Community Support
Java And Community Support
William Grosso
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
Thinkful
Learning to code in 2020
Learning to code in 2020
Nicholas Sterling
The Ring programming language version 1.5.3 book - Part 186 of 194
The Ring programming language version 1.5.3 book - Part 186 of 194
Mahmoud Samir Fayed
Specification Of The Programming Language Of Java
Specification Of The Programming Language Of Java
Kim Moore
The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84
Mahmoud Samir Fayed
Computer Programming
Computer Programming
Syed Zaid Irshad
alex presentation (1).pptx
alex presentation (1).pptx
GilGuerrero7
Agile development with Ruby
Agile development with Ruby
khelll
notes on Programming fundamentals
notes on Programming fundamentals
ArghodeepPaul
Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...
Laura Martin
Intro1
Intro1
phanleson
Go fundamentals
Go fundamentals
Ron Barabash
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
streambase
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?
Syed Hassan Raza
Proglangauage1.10.18
Proglangauage1.10.18
Thinkful
The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.7 book - Part 89 of 196
Mahmoud Samir Fayed
Lecture 1-3.ppt
Lecture 1-3.ppt
HafeezullahJamro
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
Tharindu Weerasinghe
Ähnlich wie Why Ruby?
(20)
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212
Java And Community Support
Java And Community Support
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
Learning to code in 2020
Learning to code in 2020
The Ring programming language version 1.5.3 book - Part 186 of 194
The Ring programming language version 1.5.3 book - Part 186 of 194
Specification Of The Programming Language Of Java
Specification Of The Programming Language Of Java
The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84
Computer Programming
Computer Programming
alex presentation (1).pptx
alex presentation (1).pptx
Agile development with Ruby
Agile development with Ruby
notes on Programming fundamentals
notes on Programming fundamentals
Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...
Intro1
Intro1
Go fundamentals
Go fundamentals
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?
Proglangauage1.10.18
Proglangauage1.10.18
The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.7 book - Part 89 of 196
Lecture 1-3.ppt
Lecture 1-3.ppt
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
Mehr von Robbin Fan
精益创业讨论
精益创业讨论
Robbin Fan
运营专业型社区的经验和反思
运营专业型社区的经验和反思
Robbin Fan
缓存技术浅谈
缓存技术浅谈
Robbin Fan
Ruby In Enterprise Development
Ruby In Enterprise Development
Robbin Fan
Maximes Presentation For Rubyconf China 2009
Maximes Presentation For Rubyconf China 2009
Robbin Fan
Design Pattern From Java To Ruby
Design Pattern From Java To Ruby
Robbin Fan
Mehr von Robbin Fan
(6)
精益创业讨论
精益创业讨论
运营专业型社区的经验和反思
运营专业型社区的经验和反思
缓存技术浅谈
缓存技术浅谈
Ruby In Enterprise Development
Ruby In Enterprise Development
Maximes Presentation For Rubyconf China 2009
Maximes Presentation For Rubyconf China 2009
Design Pattern From Java To Ruby
Design Pattern From Java To Ruby
Kürzlich hochgeladen
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
LoriGlavin3
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Rick Flair
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Nicole Novielli
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
blackmambaettijean
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
Nathaniel Shimoni
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Zilliz
Kürzlich hochgeladen
(20)
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Why Ruby?
1.
RubyConf China Why Ruby? Yukihiro
"Matz" Matsumoto まつもと ゆきひろ matz@ruby-lang.org Copyright (c) 2008 Yukihiro "Matz" Matsumoto, No rights reserved thou
2.
Moore’s Law The number
of Transistors in LSI Doubles Every 18 Months
3.
Moore’s Law Means: Computer
Grows Exponentially Faster Cheaper More Common
4.
Faster Computer PCs are
Faster than Super Computers of 20 Years Ago
5.
Cheaper Computers We can
Buy a PC for $400 Now
6.
Common Computers Now Everyone
Owns Computers Personal Computers Cell Phones
7.
Cell Phone as
a Computer
8.
Cell Phone as
a Computer
9.
Everyone is Connected Broadband WiFi Mobile
Networks
10.
Influence in Programming Moore’s
Law Changes Software Complexity Programming Languages
11.
Software Complexity No Business
Can Be Run without Software We Need More Software Quicker Cheaper
12.
Humans Don’t Improve Moore’s
Law Does Not Apply to Humans
13.
Productivity We Need More
Software with Limited Resources
14.
Productivity We Have Faster
Computers Development Efficiency At the Cost of Runtime Efficiency
15.
Productivity The Most Important
Factor of Language Evolution Languages are One of the Tools for Productivity
16.
How Languages Help Productivity
17.
Sapir-Whorf hypothesis Language determines
the way we think.
18.
Theorem #1 Languages influence human
thought, more than you think
19.
Programming Languages Do programming languages influence
human thoughts?
20.
Thinking in Programming Language Natural
languages are too ambiguous. Or, too verbose. Or, too indirect.
21.
Thinking in Programming Language. If
programmers think in programming languages, They must influence thoughts as much as natural languages do.
22.
Theorem #2 "languages" in Theorem
#1 includes programming languages.
23.
Why don’t you
choose a good language? Programming langugages are so easy to learn.
24.
What is a
good language? The language that helps thinking
25.
Recursion BASIC did not
allow recursion
26.
Factorial def fact(n) if n
== 0 1 else n * fact(n - 1) end end print "6!=", fact(6), "n" 6!=740
27.
A good Language does
not restrict our thought
28.
Factorial Again print "200!=",
fact(200), "n" 200!=78865786736479050355236321393218506 2295135977687173263294742533244359449963 4033429203042840119846239041772121389196 3883025764279024263710506192662495282993 1113462857270763317237396988943922445621 4516642402540332918641312274282948532775 2424240757390324032125740557956866022603 1904170324062351700858796178922222789623 7038973747200000000000000000000000000000 00000000000000000000
29.
Less Restriction print "200!=",
fact(200), "n" 200!=788657867364790503552363213932185062295 13597768717326329474253324435944996340334292 03042840119846239041772121389196388302576427 90242637105061926624952829931113462857270763 31723739698894392244562145166424025403329186 41312274282948532775242424075739032403212574 05579568660226031904170324062351700858796178 92222278962370389737472000000000000000000000 0000000000000000000000000000 Ruby
30.
A good language Consise
31.
Succinctness is Power by
Paul Graham Fred Brooks’ Law Less Lines ≒ Effective
32.
Succinctness is Power Less
Code, Less Bugs Less Bugs, You Feel Yourself Smarter. You can be 10 times (or even 1000 times) more productive
33.
More Factorial class Factorial
{ private static int fact(int n) { if (n == 1) return 1; return n * fact(n - 1); } public static void main(String[] argv) { System.out.println("6!="+fact(6)); } } 6!=740
34.
Succinctness Example def fact(n) if
n == 1 1 else n * fact(n - 1) end end print "6!=", fact(6), "n" 6!=740 Ruby
35.
A good language Inspiring
36.
Functional Factorial def fact(n) (1..n).inject(:*) end print
"6!=", fact(6), "n" 6!=740
37.
A good language makes
better programming experience
38.
For Better Programming Experience Learnability Efficiency Memorability Errors Satisfaction According
to Dr. Jacob Nielsen
39.
Learnability How easy is
it for users to accomplish basic tasks the first time they encounter the design?
40.
Learnability Usability for Beginners Important
to Acquire New Users "Common Sense" is the Key
41.
Efficiency Once users have
learned the design, how quickly can they perform tasks?
42.
Efficiency More important than
learnability Efficiency is the top purpose of languages
43.
Memorability When users return
to the design after a period of not using it, how easily can they reestablish proficiency?
44.
Memorability Association Consistency Orthogonality Common Sense No Radical
45.
Errors How many errors
do users make, how severe are these errors, and how easily can they recover from these errors?
46.
Errors When you see
repeated errors, you have to do something. Errors are the source of design inspiration.
47.
Satisfaction How pleasant is
it to use the design?
48.
Satisfaction We program to
have fun. Even when we program for money, we want to have fun as well.
49.
How Ruby Serves Learnability Efficiency Memorability Errors Satisfaction
50.
How Ruby Serves Learnability Efficiency Memorability Errors Satisfaction
51.
Learnability Ruby is very
conservative except for a few places Quick to learn Quick to try
52.
Learnability Example Hello World! print
"Hello Worldn" Hello World
53.
How Ruby Serves Learnability Efficiency Memorability Errors Satisfaction
54.
Efficiency No Run-Time Efficiency Ruby
focuses on the cost of programming.
55.
Devlopment Efficiency Ruby focuses
on the cost of programming by Simplicity Consistency Smartness
56.
Simplicity Do you like
programming language to be simple? Probably you do.
57.
Simplicity Does language simplicity
really help you? not always. need more complex tool sometimes
58.
Need More Complex
Tool Knife vs Chain Saw Bicycle vs Airplane
59.
Human Heart: No
Simple We love simplicity We love complexity We love easy problems We hate easy problems
60.
Pseudo-Simplicity Ruby is NOT
a simple language.
61.
Simplicity Example Rakefile Rake =
Ruby Make task :default => [:test] task :test do ruby "test/unittest.rb" end
62.
Simplicity Example In Simpler
Syntax task({:default => [:test]}) task(:test, lambda(){ ruby "test/unittest.rb" })
63.
Solution-Simplicity Tool Complexity is
OK if it makes the Solution Simple
64.
Efficiency Example /bin/cat in
Ruby puts ARGF It would be more than 50 lines of code in C
65.
How Ruby Serves Learnability Efficiency Memorability Errors Satisfaction
66.
Memorability Conservativeness helps here
too Easy-to-remember syntax Ruby looks like other languages
67.
Memorability Example Can you
write /bin/cat -n without looking anything? I can, if I use Ruby. ARGF.each_with_index{|line,i| printf "%4d %s",i,line }
68.
How Ruby Serves Learnability Efficiency Memorability Errors Satisfaction
69.
Errors You will see
less errors due to Consistent Syntax Rules Succinct Code Less code, Less bug.
70.
How Ruby Serves Learnability Efficiency Memorability Errors Satisfaction
71.
Satisfaction As a result,
Ruby is fun to use. It makes you feel smarter.
72.
Ruby the Language
73.
Ruby is Good
for Text Processing Web Programming XML Programming GUI Applications
74.
Ruby is Good
for Bioinformatics eXtreme Programming "I love it. Conceptually it is really clean and sweet." -- Kent Beck
75.
Why I created
Ruby Just for Fun Tool for me myself Ideal tool for Everyday Task
76.
How I created
Ruby Combine Good Things from the Past Design Conservative Design a Tool I Want to Use To Have Fun
77.
The History of the
Ruby Language
78.
Pre-History OO Fanboy Language Geek
79.
In 1993 Project Started Mere
Hobby
80.
Goals Scripting a la Perl Nice
Clean Syntax With OO
81.
Real Goal To Enjoy Making
Language Implementation Programming
82.
Process Lisp Semantics Smalltalk OO Conservative
Syntax
83.
Process Deconstruct Perl Reorganize into
Class Library
84.
Process Iterators from CLU Higher-order
Functions using Blocks
85.
Process Some Spice from
Python ..and other languages
86.
Released 1995-12-21 fj.sources
87.
In 1997 Hired by
NaCl Became Full-time OSS Developer
88.
In 1999 First Book
89.
In 2000 First English
Book
90.
Ruby in early
2000s Became a Language for Geeks
91.
In 2004 Ruby on
Rails
92.
Ruby on Rails Web
Application Framework Web development that doesn’t hurt
93.
Ruby on Rails 10x
Productive than Java 15 Minutes to code Blog
94.
Enterprise Ruby Ruby started
to be used in the Enterprise Environment
95.
Enterprise Ruby Concerns Fast Enough? Scales?
96.
Enterprise Ruby Issues are
Matters of Resource/Money We Put in.
97.
Ruby’s Mindshare From Java
To Ruby
98.
What’s "Enterprise"? What Major
Players Recommend: Sun Microsystems Microsoft Apple Etc.
99.
Why Ruby? Ruby is
Productive Ruby is Motivating Ruby is Fun
100.
A Message from
Ruby Enjoy Programming!
Jetzt herunterladen