future programming languages
DESCRIPTION
TRANSCRIPT
![Page 1: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/1.jpg)
The Future ofProgramming Languages
Alcides FonsecaTambém lança búziose cura mau olhado.
Monday, November 14, 11
![Page 2: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/2.jpg)
Disclaimer
These opinions are my own and may not reflect future events.
Monday, November 14, 11
![Page 3: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/3.jpg)
Roadmap
Monday, November 14, 11
![Page 4: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/4.jpg)
RoadmapWhy is language X successful?
Monday, November 14, 11
![Page 5: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/5.jpg)
RoadmapWhy is language X successful?
Systems
Monday, November 14, 11
![Page 6: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/6.jpg)
RoadmapWhy is language X successful?
Systems
Java.Next
Monday, November 14, 11
![Page 7: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/7.jpg)
RoadmapWhy is language X successful?
Systems
Java.Next
Browser
Monday, November 14, 11
![Page 8: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/8.jpg)
RoadmapWhy is language X successful?
Systems
Java.Next
Browser
Parallel
Monday, November 14, 11
![Page 9: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/9.jpg)
RoadmapWhy is language X successful?
Systems
Java.Next
Browser
Parallel
DSL
Monday, November 14, 11
![Page 10: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/10.jpg)
RoadmapWhy is language X successful?
Systems
Java.Next
Browser
Parallel
DSL
Esoteric
Monday, November 14, 11
![Page 11: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/11.jpg)
Why is language X successful?
Monday, November 14, 11
![Page 12: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/12.jpg)
Why is language X successful?
• Portability (C, Java, Python, ...)
Monday, November 14, 11
![Page 13: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/13.jpg)
Why is language X successful?
• Portability (C, Java, Python, ...)
• Abstraction and Simplicity (Java, Python)
Monday, November 14, 11
![Page 14: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/14.jpg)
Why is language X successful?
• Portability (C, Java, Python, ...)
• Abstraction and Simplicity (Java, Python)
• Killer app/framework (Ruby)
Monday, November 14, 11
![Page 15: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/15.jpg)
Why is language X successful?
• Portability (C, Java, Python, ...)
• Abstraction and Simplicity (Java, Python)
• Killer app/framework (Ruby)
• Batteries Included (Python, Matlab)
Monday, November 14, 11
![Page 16: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/16.jpg)
Why is language X successful?
• Portability (C, Java, Python, ...)
• Abstraction and Simplicity (Java, Python)
• Killer app/framework (Ruby)
• Batteries Included (Python, Matlab)
• Tooling (VB, Java)
Monday, November 14, 11
![Page 17: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/17.jpg)
Why is language X successful?
• Portability (C, Java, Python, ...)
• Abstraction and Simplicity (Java, Python)
• Killer app/framework (Ruby)
• Batteries Included (Python, Matlab)
• Tooling (VB, Java)
• Company Support (VB, C#, ABAP)
Monday, November 14, 11
![Page 18: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/18.jpg)
Systems
Monday, November 14, 11
![Page 19: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/19.jpg)
Rust
Monday, November 14, 11
![Page 20: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/20.jpg)
Rust
Monday, November 14, 11
![Page 21: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/21.jpg)
Rust
•No null
Monday, November 14, 11
![Page 22: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/22.jpg)
Rust
•No null•Closures
Monday, November 14, 11
![Page 23: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/23.jpg)
Rust
•No null•Closures•Blocks
Monday, November 14, 11
![Page 24: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/24.jpg)
Rust
•No null•Closures•Blocks•Generics w/ Type Inference
Monday, November 14, 11
![Page 25: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/25.jpg)
Rust
•No null•Closures•Blocks•Generics w/ Type Inference•Crates
Monday, November 14, 11
![Page 26: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/26.jpg)
Rust
•No null•Closures•Blocks•Generics w/ Type Inference•Crates
Monday, November 14, 11
![Page 27: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/27.jpg)
Rust
•No null•Closures•Blocks•Generics w/ Type Inference•Crates
Monday, November 14, 11
![Page 28: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/28.jpg)
Plaid
Monday, November 14, 11
![Page 29: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/29.jpg)
Plaid
Monday, November 14, 11
![Page 30: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/30.jpg)
Plaid
•Lambdas
Monday, November 14, 11
![Page 31: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/31.jpg)
Plaid
•Lambdas•Closures
Monday, November 14, 11
![Page 32: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/32.jpg)
Plaid
•Lambdas•Closures•Access Permissions
Monday, November 14, 11
![Page 33: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/33.jpg)
Plaid
•Lambdas•Closures•Access Permissions
• immutable, unique, full
Monday, November 14, 11
![Page 34: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/34.jpg)
Plaid
•Lambdas•Closures•Access Permissions
• immutable, unique, full•Pattern Matching
Monday, November 14, 11
![Page 35: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/35.jpg)
Plaid
•Lambdas•Closures•Access Permissions
• immutable, unique, full•Pattern Matching
Monday, November 14, 11
![Page 36: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/36.jpg)
Rust vs Plaid
Monday, November 14, 11
![Page 37: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/37.jpg)
Rust vs Plaid
Research-level
Monday, November 14, 11
![Page 38: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/38.jpg)
Rust vs Plaid
Research-levelCompany-supported
Monday, November 14, 11
![Page 39: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/39.jpg)
Rust vs Plaid
Research-levelCompany-supported
C/LLVM
Monday, November 14, 11
![Page 40: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/40.jpg)
Rust vs Plaid
Research-levelCompany-supported
JVMC/LLVM
Monday, November 14, 11
![Page 41: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/41.jpg)
Rust vs Plaid
Research-levelCompany-supported
JVMC/LLVM
Verbose on permissions
Monday, November 14, 11
![Page 42: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/42.jpg)
Rust vs Plaid
Research-levelCompany-supported
JVMC/LLVM
Verbose on permissionsLimited on permissions
Monday, November 14, 11
![Page 43: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/43.jpg)
Rust vs Plaid
Research-levelCompany-supported
JVMC/LLVM
Verbose on permissionsLimited on permissions
Crates
Monday, November 14, 11
![Page 44: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/44.jpg)
Rust vs Plaid
Research-levelCompany-supported
JVMC/LLVM
Verbose on permissionsLimited on permissions
Rust vs C
Crates
Monday, November 14, 11
![Page 45: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/45.jpg)
Java.next()
Monday, November 14, 11
![Page 46: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/46.jpg)
ATM
Monday, November 14, 11
![Page 47: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/47.jpg)
ATM
• JRuby
Monday, November 14, 11
![Page 48: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/48.jpg)
ATM
• JRuby
• Mirah (Duby)
Monday, November 14, 11
![Page 49: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/49.jpg)
ATM
• JRuby
• Mirah (Duby)
• Gosu
Monday, November 14, 11
![Page 50: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/50.jpg)
ATM
• JRuby
• Mirah (Duby)
• Gosu
• Scala
Monday, November 14, 11
![Page 51: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/51.jpg)
Kotlin
By Jetbrains
Monday, November 14, 11
![Page 52: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/52.jpg)
Kotlin• Reified Generics
By Jetbrains
Monday, November 14, 11
![Page 53: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/53.jpg)
Kotlin• Reified Generics
• NullablesBy Jetbrains
Monday, November 14, 11
![Page 54: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/54.jpg)
Kotlin• Reified Generics
• Nullables
• Type Inference
By Jetbrains
Monday, November 14, 11
![Page 55: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/55.jpg)
Kotlin• Reified Generics
• Nullables
• Type Inference
• Pattern Matching
By Jetbrains
Monday, November 14, 11
![Page 56: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/56.jpg)
Kotlin• Reified Generics
• Nullables
• Type Inference
• Pattern Matching
• Extension Functions
By Jetbrains
Monday, November 14, 11
![Page 57: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/57.jpg)
Kotlin• Reified Generics
• Nullables
• Type Inference
• Pattern Matching
• Extension Functions
Only with support from other IDEs
By Jetbrains
Monday, November 14, 11
![Page 58: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/58.jpg)
XtendBy Eclipse
Monday, November 14, 11
![Page 59: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/59.jpg)
Xtend
• Pattern Matching
• Extension Functions
• Multi dispatch (visitor)
By Eclipse
Monday, November 14, 11
![Page 60: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/60.jpg)
Xtend
• Pattern Matching
• Extension Functions
• Multi dispatch (visitor)
By Eclipse
Monday, November 14, 11
![Page 61: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/61.jpg)
Xtend
• Pattern Matching
• Extension Functions
• Multi dispatch (visitor)
By Eclipse
Monday, November 14, 11
![Page 62: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/62.jpg)
Xtend
• Pattern Matching
• Extension Functions
• Multi dispatch (visitor)
By Eclipse
Monday, November 14, 11
![Page 63: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/63.jpg)
Xtend
• Pattern Matching
• Extension Functions
• Multi dispatch (visitor)
Only with a great framework
By Eclipse
Monday, November 14, 11
![Page 64: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/64.jpg)
CeylonBy Redhat
Monday, November 14, 11
![Page 65: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/65.jpg)
Ceylon
• Syntax similar to Java
By Redhat
Monday, November 14, 11
![Page 66: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/66.jpg)
Ceylon
• Syntax similar to Java
• Tree-like DSLs
By Redhat
Monday, November 14, 11
![Page 67: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/67.jpg)
Ceylon
• Syntax similar to Java
• Tree-like DSLs
• Better macro/annotations
By Redhat
Monday, November 14, 11
![Page 68: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/68.jpg)
Ceylon
• Syntax similar to Java
• Tree-like DSLs
• Better macro/annotations
By Redhat
Monday, November 14, 11
![Page 69: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/69.jpg)
Ceylon
• Syntax similar to Java
• Tree-like DSLs
• Better macro/annotations
No chance
By Redhat
Monday, November 14, 11
![Page 70: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/70.jpg)
Java.next conclusions
Monday, November 14, 11
![Page 71: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/71.jpg)
Java.next conclusions
• Java.next needs good tooling
Monday, November 14, 11
![Page 72: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/72.jpg)
Java.next conclusions
• Java.next needs good tooling
• There are too many choices
Monday, November 14, 11
![Page 73: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/73.jpg)
Java.next conclusions
• Java.next needs good tooling
• There are too many choices
• They are all similar
Monday, November 14, 11
![Page 74: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/74.jpg)
Java.next conclusions
• Java.next needs good tooling
• There are too many choices
• They are all similar
Java 8
Monday, November 14, 11
![Page 75: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/75.jpg)
Java.next conclusions
• Java.next needs good tooling
• There are too many choices
• They are all similar
Java 8 Scala for niches
Monday, November 14, 11
![Page 76: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/76.jpg)
Browser
Monday, November 14, 11
![Page 77: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/77.jpg)
Harmony
Monday, November 14, 11
![Page 78: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/78.jpg)
Harmony
Monday, November 14, 11
![Page 79: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/79.jpg)
Harmony
Monday, November 14, 11
![Page 80: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/80.jpg)
Harmony
Monday, November 14, 11
![Page 81: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/81.jpg)
DartBy Google
Monday, November 14, 11
![Page 82: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/82.jpg)
DartBy Google
Monday, November 14, 11
![Page 83: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/83.jpg)
Dart vs Harmony
Monday, November 14, 11
![Page 84: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/84.jpg)
Dart vs Harmony
• Tooling
Monday, November 14, 11
![Page 85: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/85.jpg)
Dart vs Harmony
• Tooling
• Other browsers
Monday, November 14, 11
![Page 86: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/86.jpg)
Dart vs Harmony
• Tooling
• Other browsers
• Complex projects
Monday, November 14, 11
![Page 87: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/87.jpg)
Dart vs Harmony
• Tooling
• Other browsers
• Complex projects
• Fast operations
Monday, November 14, 11
![Page 88: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/88.jpg)
Dart vs Harmony
• Tooling
• Other browsers
• Complex projects
• Fast operations
Language heterogeneity
Monday, November 14, 11
![Page 89: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/89.jpg)
Parallel languages
Monday, November 14, 11
![Page 90: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/90.jpg)
Fortress
Monday, November 14, 11
![Page 91: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/91.jpg)
Fortress
Monday, November 14, 11
![Page 92: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/92.jpg)
Fortress
Wrong development approach
Monday, November 14, 11
![Page 93: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/93.jpg)
Parasailfor Phil in Philosopher_Index concurrent loop const Left_Fork := Phil; const Right_Fork := Phil mod Num_Phils + 1;
while True loop // Until overall timer terminates procedure Display(Context.IO.Standard_Output, "Philosopher " | Phil | " is thinking\n"); Delay(Clock, Next(Context.Random)); // Think then Pick_Up_Fork(Forks[Left_Fork], #is_left_fork); || Pick_Up_Fork(Forks[Right_Fork], #is_right_fork); then Display(Context.IO.Standard_Output, "Philosopher " | Phil | " is eating\n"); Delay(Clock, Next(Context.Random)); // Eat then Put_Down_Fork(Forks[Left_Fork]); || Put_Down_Fork(Forks[Right_Fork]); end loop; end loop; end procedure Dinner_Party;
Monday, November 14, 11
![Page 94: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/94.jpg)
Parasailfor Phil in Philosopher_Index concurrent loop const Left_Fork := Phil; const Right_Fork := Phil mod Num_Phils + 1;
while True loop // Until overall timer terminates procedure Display(Context.IO.Standard_Output, "Philosopher " | Phil | " is thinking\n"); Delay(Clock, Next(Context.Random)); // Think then Pick_Up_Fork(Forks[Left_Fork], #is_left_fork); || Pick_Up_Fork(Forks[Right_Fork], #is_right_fork); then Display(Context.IO.Standard_Output, "Philosopher " | Phil | " is eating\n"); Delay(Clock, Next(Context.Random)); // Eat then Put_Down_Fork(Forks[Left_Fork]); || Put_Down_Fork(Forks[Right_Fork]); end loop; end loop; end procedure Dinner_Party; Syntax + Tooling
Monday, November 14, 11
![Page 95: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/95.jpg)
Æminiumval (immutable Integer >> immutable Integer) -> immutable Integer fib = fn (immutable Integer >> immutable Integer n) => { match (n <= 2) { case True { 1; } case False { fib(n - 1) + fib(n - 2); } } };
outside/inside RW R
-
R
RW
unique unique
full immutable
share pure
Monday, November 14, 11
![Page 96: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/96.jpg)
Æminiumval (immutable Integer >> immutable Integer) -> immutable Integer fib = fn (immutable Integer >> immutable Integer n) => { match (n <= 2) { case True { 1; } case False { fib(n - 1) + fib(n - 2); } } };
outside/inside RW R
-
R
RW
unique unique
full immutable
share pureHard to write
Monday, November 14, 11
![Page 97: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/97.jpg)
DSLs
Monday, November 14, 11
![Page 98: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/98.jpg)
Opabroadcast(author) = do Network.broadcast({~author text=Dom.get_value(#entry)}, room) Dom.clear_value(#entry)
start() = author = Random.string(8) <div id=#header><div id=#logo></></> <div id=#conversation onready={_ -> Network.add_callback(user_update, room)}></> <div id=#footer> <input id=#entry onnewline={_ -> broadcast(author)} /> <div class="button" onclick={_ -> broadcast(author)}>Post</> </>
server = Server.one_page_bundle("Chat", [@static_resource_directory("resources")], ["resources/css.css"], start)
Monday, November 14, 11
![Page 99: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/99.jpg)
Opabroadcast(author) = do Network.broadcast({~author text=Dom.get_value(#entry)}, room) Dom.clear_value(#entry)
start() = author = Random.string(8) <div id=#header><div id=#logo></></> <div id=#conversation onready={_ -> Network.add_callback(user_update, room)}></> <div id=#footer> <input id=#entry onnewline={_ -> broadcast(author)} /> <div class="button" onclick={_ -> broadcast(author)}>Post</> </>
server = Server.one_page_bundle("Chat", [@static_resource_directory("resources")], ["resources/css.css"], start)
Hard to separate concerns
Monday, November 14, 11
![Page 100: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/100.jpg)
Frink(6 years + 9 months)
Monday, November 14, 11
![Page 101: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/101.jpg)
Frink(6 years + 9 months)
tw[v0, alpha, h0 = 1 meter, hw = 10 feet, g=gravity] := { vy0 = v0 sin[alpha] radical = (2 g (h0 - hw) + vy0^2)
if (radical < 0 mph^2) return["No solution"]
radical = radical^(1/2)
return [(vy0 - radical)/g, (vy0 + radical)/g]}
Monday, November 14, 11
![Page 102: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/102.jpg)
Frink(6 years + 9 months)
tw[v0, alpha, h0 = 1 meter, hw = 10 feet, g=gravity] := { vy0 = v0 sin[alpha] radical = (2 g (h0 - hw) + vy0^2)
if (radical < 0 mph^2) return["No solution"]
radical = radical^(1/2)
return [(vy0 - radical)/g, (vy0 + radical)/g]}
Best calculator ever!
Monday, November 14, 11
![Page 103: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/103.jpg)
Magpie
Monday, November 14, 11
![Page 104: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/104.jpg)
Magpie
• Dynamic language (Similar to Mirah)
Monday, November 14, 11
![Page 105: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/105.jpg)
Magpie
• Dynamic language (Similar to Mirah)
• Multi-methods
Monday, November 14, 11
![Page 106: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/106.jpg)
Magpie
• Dynamic language (Similar to Mirah)
• Multi-methods
• Syntax extensions
Monday, November 14, 11
![Page 107: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/107.jpg)
Magpie
• Dynamic language (Similar to Mirah)
• Multi-methods
• Syntax extensions
Too dynamic
Monday, November 14, 11
![Page 108: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/108.jpg)
OMeta
Monday, November 14, 11
![Page 109: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/109.jpg)
OMeta
Great for DSLs
Monday, November 14, 11
![Page 110: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/110.jpg)
Esoteric
Monday, November 14, 11
![Page 111: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/111.jpg)
Wheeler
Monday, November 14, 11
![Page 112: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/112.jpg)
Wheeler
Monday, November 14, 11
![Page 113: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/113.jpg)
Wheeler
Monday, November 14, 11
![Page 114: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/114.jpg)
Wheeler
?!?!
Monday, November 14, 11
![Page 115: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/115.jpg)
Clay
Monday, November 14, 11
![Page 116: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/116.jpg)
Clay
Winner
Monday, November 14, 11
![Page 117: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/117.jpg)
C will not dieanytime soon.
Monday, November 14, 11
![Page 118: Future Programming Languages](https://reader034.vdocuments.site/reader034/viewer/2022052617/540563e38d7f729e768b4c22/html5/thumbnails/118.jpg)
Thank you
Alcides Fonsecahttp://alcidesfonseca.com
Monday, November 14, 11