SlideShare una empresa de Scribd logo
1 de 40
Brainwasher
Jerry Tsai / 蔡学镛 ( 孔宣 )
Alipay.com Co. Ltd’
KongXuan@Alipay.com
“Hello“ Made Easy in REBOL!
REBOL[]
View Layout [
Title "Hello"
BTN "OK" [
Quit
]
]
Keep IT
Simple
REBOL is Simple!
1. Downloading & Upgrading
2. Installation
3. All In One, One For All
4. Coding
4. Porting to Other Platforms
5. Maintenance
When It Comes
to Programming,
Are You A
REBEL?[`rebl]
Stand up for Simplicity
and Flexibility, Against Software
Complexityand Software
Obesity, and Want to
Program with Fun.
Hay! You Got to Try Java
!!!
R E B O L
E
L
A
T
I
V
E
X
P
R
E
S
S
I
O
N
A
S
E
D
B
J
E
C
T
A
N
G
U
A
G
E
S T A N D S
F O R
As A Java Programmer,
You Know Objects Already.
But Relative Expression?
can
• auxiliary
• tin
• noun
• pot
Relative-Expression
=>
Context-Sensitive Code
Carl Sassenrath,
The REBOL Creator
3 Ways to Run REBOL Scripts
Operating System
REBOL
Interpreter
REBOL
Script
REBOL
Interpreter
REBOL
Script
REBOL
interactive
Interpreter
REBOL
Script
Portable Scripts
Operating System
REBOL Interpreter
REBOL Script
Operating System
REBOL Interpreter
REBOL Supports Major
Operating Systems
Including…
And
It’s Designed
for Easily Porting
to More Platforms …
REBOL – Tiny Footprint
Small Footprint
Runtime 10x less
than Java
Script Size 10x less
than Java
15.1
~23 MB197 MB
10.3
10.7
14.9
11
50 MB 100 MB10 MB
2x
< 1
Size Does Matter, 2008 Edition
Adobe
AIR
Windowing
Drawing
Networking
Database Accessing
Web Browser Plug-In
External Lib Interface
Small Yet
Powerful
All In One, One For All
REBOL
Data Types You Can Imagine
datatype value
Int! 1
Decimal! 3.1416
Char! #"A"
Logic! True
String! "ABC"
>> ? 1
1 is an integer
>> ? 3.1416
3.1416 is a decimal
>> ? #"A"
#"A" is a char
>> ? True
TRUE is a logic of value: true
>> Type? "ABC"
== string!
Data Types You Cannot Imagine
datatypeURL value
Email! jerry@abc.com
Percent! 32%
Tag! <IMG>
Date! 2009-7-21
Time! 18:00
File! %gdi32.dll
Tuple! 127.0.0.1
URL! http://www.abc.com/
. . . More . . .
Any-TypeSeries
Scalar
Number
Any-Word
Any-String
Any-FunctionAny-Block
REBOL Data Types (& Type Sets)
Char!
// Pseudo-Code
// Include This and That
// Declare This and That
// ...
Class MyApp {
MyApp () {
// …
}
void action() {
System.quit();
}
void layout() {
Label title = new Label("Hello")
Button btn = new Button("OK");
btn.Click = action;
Window win = new Window();
win.add(btn);
win.add(btn);
win.show();
}
}
REBOL[]
View Layout [
Title "Hello"
Btn "OK" [
Quit
]
]
The Magic
Of Dialects
Maintain
Writeable
Succinct
Literals Dialecting
Parsing
Abstraction
Bug-Free
Readable
GUI
Finance
Database
. . .
Mojo of REBO
Functions
REBOL View
is Easy and Fun!
Take a Break
For 10 Mins
Z .. Z .. Z ....
• Extends REBOL
• Are DLLs
• Can Be in C or REBOL
• Only in REBOL 3.0
REBOL Plug-ins
REBOL in Web Server
• CGI (Common Gateway Interface)
• Fast-CGI
• Cheyenne Web Server (300 KB Only)
• REBOL Server Pages (RSP)
REBOL 3.0 Supports
Unicode• String is in Unicode.
• Both In Core and In View
• Will Support Multi CharSets
REBOL/Services (SOA Lite)
XML? Nah!
Dialects are Better.
REBOL/Code
• Talk to REBOL VM Directly
• With Great Performance
• REBOL Dialecting Technology
When to Use REBOL
Spider
Mobile
Agent
Instance
Messenger
Dialect
Artificial
Intelligence
Text
Processing
REBOL is COOL, REBOL is
GREAT, REBOL is
WONDERFUL, REBOL is ONE
of A KIND, REBOL is What I
Want …
Join Us
And
Do Something
REBOL User Group @ China
AliTalk Group: No. 16626148
Host: Jerry Tsai (KongXuan)
REBOL Docs Trans Program
(http://sites.google.com/site/cnrebol/)
Host: CaiMinKui
Rebology Blog
(http://rebollovesjerry.blogspot.com)
Host: Jerry Tsai
REBOL Baby-Step Examples
Q1: Print web page source
print read http://www.rebol.com
Q2: Open a GUI, read web page, sent
it as email
view layout [
u: field "user@rebol.com"
h: field "http://"
btn "Send" [
send to-email u/text
read to-url h/text
alert "Sent“
]
]
Q3: FTP upload all files
foreach file load %./ [
if not dir? file [
write/binary join
ftp://user:pass@example.com/ file
read/binary file
]
]
Q4: TCP port scanner
repeat n 100 [
if not error? try [
close open probe join tcp://localhost: n
] [
print [n "is open"]
]
]
Q5: Save web page text to a file
remove-each tag page:
load/markup http://www.rebol.com
[ tag? Tag ]
write %page.txt page
Q6: Digital Clock
view layout [
origin 0
t: h1 red black (to string! now/time)
rate 1
feel [
engage: [
t/text: now/time
show t
]
]
]
Q7: Picture Viewer
view l: layout [
origin 0x0
b: box "Load" [
error? try [
b/image: i: load first request-file
b/text: ""
l/size: b/size:
i/size show l
]
]
]
Thank You

Más contenido relacionado

La actualidad más candente

Building desktop apps in 2016
Building desktop apps in 2016Building desktop apps in 2016
Building desktop apps in 2016Giovanni Frigo
 
Week 8 intro to python
Week 8   intro to pythonWeek 8   intro to python
Week 8 intro to pythonbrianjihoonlee
 
single pass compiler and its architecture
single pass compiler and its architecturesingle pass compiler and its architecture
single pass compiler and its architecturenoor ul ain
 
The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)Stefan Koopmanschap
 
Merged Automation Talk - Pete Carapetyan - Feb 2016
Merged Automation Talk - Pete Carapetyan - Feb 2016 Merged Automation Talk - Pete Carapetyan - Feb 2016
Merged Automation Talk - Pete Carapetyan - Feb 2016 petecarapetyan
 

La actualidad más candente (9)

C#
C#C#
C#
 
Building desktop apps in 2016
Building desktop apps in 2016Building desktop apps in 2016
Building desktop apps in 2016
 
Week 8 intro to python
Week 8   intro to pythonWeek 8   intro to python
Week 8 intro to python
 
The Power of Refactoring
The Power of RefactoringThe Power of Refactoring
The Power of Refactoring
 
single pass compiler and its architecture
single pass compiler and its architecturesingle pass compiler and its architecture
single pass compiler and its architecture
 
The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)
 
C c#
C c#C c#
C c#
 
Intro to Elixir talk
Intro to Elixir talkIntro to Elixir talk
Intro to Elixir talk
 
Merged Automation Talk - Pete Carapetyan - Feb 2016
Merged Automation Talk - Pete Carapetyan - Feb 2016 Merged Automation Talk - Pete Carapetyan - Feb 2016
Merged Automation Talk - Pete Carapetyan - Feb 2016
 

Similar a Rebol brainwasher

蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈d0nn9n
 
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developersnick_garrod
 
The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84Mahmoud Samir Fayed
 
Pycon 2014
Pycon 2014Pycon 2014
Pycon 2014Tao Zhu
 
JOSA TechTalks - Compilers, Transpilers, and Why You Should Care
JOSA TechTalks - Compilers, Transpilers, and Why You Should CareJOSA TechTalks - Compilers, Transpilers, and Why You Should Care
JOSA TechTalks - Compilers, Transpilers, and Why You Should CareJordan Open Source Association
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular KeynoteLukas Ruebbelke
 
Making CLI app in ruby
Making CLI app in rubyMaking CLI app in ruby
Making CLI app in rubyHuy Do
 
Language-Oriented Business Applications
Language-Oriented Business ApplicationsLanguage-Oriented Business Applications
Language-Oriented Business ApplicationsMarkus Voelter
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)Vincenzo Barone
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)Vincenzo Barone
 
Ruby, the language of devops
Ruby, the language of devopsRuby, the language of devops
Ruby, the language of devopsRob Kinyon
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHPGautam Rege
 
RubyMotion Inspect Conference - 2013. (Without speaker notes.)
RubyMotion Inspect Conference - 2013. (Without speaker notes.)RubyMotion Inspect Conference - 2013. (Without speaker notes.)
RubyMotion Inspect Conference - 2013. (Without speaker notes.)alloy020
 
Data Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol BuffersData Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol BuffersWilliam Kibira
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac xRemote Stacx
 
Ruby And Ruby On Rails
Ruby And Ruby On RailsRuby And Ruby On Rails
Ruby And Ruby On RailsAkNirojan
 

Similar a Rebol brainwasher (20)

蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈
 
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
 
The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84
 
Pycon 2014
Pycon 2014Pycon 2014
Pycon 2014
 
JOSA TechTalks - Compilers, Transpilers, and Why You Should Care
JOSA TechTalks - Compilers, Transpilers, and Why You Should CareJOSA TechTalks - Compilers, Transpilers, and Why You Should Care
JOSA TechTalks - Compilers, Transpilers, and Why You Should Care
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular Keynote
 
Making CLI app in ruby
Making CLI app in rubyMaking CLI app in ruby
Making CLI app in ruby
 
Language-Oriented Business Applications
Language-Oriented Business ApplicationsLanguage-Oriented Business Applications
Language-Oriented Business Applications
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
Ruby, the language of devops
Ruby, the language of devopsRuby, the language of devops
Ruby, the language of devops
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Java server pages
Java server pagesJava server pages
Java server pages
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
RubyMotion Inspect Conference - 2013. (Without speaker notes.)
RubyMotion Inspect Conference - 2013. (Without speaker notes.)RubyMotion Inspect Conference - 2013. (Without speaker notes.)
RubyMotion Inspect Conference - 2013. (Without speaker notes.)
 
Data Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol BuffersData Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol Buffers
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
 
Ruby And Ruby On Rails
Ruby And Ruby On RailsRuby And Ruby On Rails
Ruby And Ruby On Rails
 
Doppl Code Sharing
Doppl Code SharingDoppl Code Sharing
Doppl Code Sharing
 

Más de crazyaxe

Livecode widget course
Livecode widget courseLivecode widget course
Livecode widget coursecrazyaxe
 
Rebol VID STYLE CREATION AND DESIGN
Rebol VID STYLE CREATION AND DESIGNRebol VID STYLE CREATION AND DESIGN
Rebol VID STYLE CREATION AND DESIGNcrazyaxe
 
Introduzione all'open source e Linux
Introduzione all'open source e LinuxIntroduzione all'open source e Linux
Introduzione all'open source e Linuxcrazyaxe
 
Where is Carl?
Where is Carl?Where is Carl?
Where is Carl?crazyaxe
 
Rebol installation
Rebol installationRebol installation
Rebol installationcrazyaxe
 
1 A Chi Appartiene
1 A Chi Appartiene1 A Chi Appartiene
1 A Chi Appartienecrazyaxe
 
Prodotti Biologici Una Grande Truffa
Prodotti Biologici Una Grande TruffaProdotti Biologici Una Grande Truffa
Prodotti Biologici Una Grande Truffacrazyaxe
 
Introduzione all'Open Source e Linux
Introduzione all'Open Source e LinuxIntroduzione all'Open Source e Linux
Introduzione all'Open Source e Linuxcrazyaxe
 
Come Funzianano Internet Email Chat Newsgro
Come Funzianano Internet Email Chat NewsgroCome Funzianano Internet Email Chat Newsgro
Come Funzianano Internet Email Chat Newsgrocrazyaxe
 
Chromium problems
Chromium problemsChromium problems
Chromium problemscrazyaxe
 

Más de crazyaxe (14)

Livecode widget course
Livecode widget courseLivecode widget course
Livecode widget course
 
Livecode
LivecodeLivecode
Livecode
 
Rebol VID STYLE CREATION AND DESIGN
Rebol VID STYLE CREATION AND DESIGNRebol VID STYLE CREATION AND DESIGN
Rebol VID STYLE CREATION AND DESIGN
 
Introduzione all'open source e Linux
Introduzione all'open source e LinuxIntroduzione all'open source e Linux
Introduzione all'open source e Linux
 
Where is Carl?
Where is Carl?Where is Carl?
Where is Carl?
 
Rebol installation
Rebol installationRebol installation
Rebol installation
 
Neo-Sens
Neo-SensNeo-Sens
Neo-Sens
 
Neo-Sens
Neo-SensNeo-Sens
Neo-Sens
 
1 A Chi Appartiene
1 A Chi Appartiene1 A Chi Appartiene
1 A Chi Appartiene
 
Rebol
RebolRebol
Rebol
 
Prodotti Biologici Una Grande Truffa
Prodotti Biologici Una Grande TruffaProdotti Biologici Una Grande Truffa
Prodotti Biologici Una Grande Truffa
 
Introduzione all'Open Source e Linux
Introduzione all'Open Source e LinuxIntroduzione all'Open Source e Linux
Introduzione all'Open Source e Linux
 
Come Funzianano Internet Email Chat Newsgro
Come Funzianano Internet Email Chat NewsgroCome Funzianano Internet Email Chat Newsgro
Come Funzianano Internet Email Chat Newsgro
 
Chromium problems
Chromium problemsChromium problems
Chromium problems
 

Rebol brainwasher