Date post: | 17-Oct-2014 |
Category: |
Technology |
View: | 3,262 times |
Download: | 0 times |
The Tao gave birth to machine language
Machine language gave birth to the assembler
söndag, 2010 mars 21
The assembler gave birth to the compiler
Now there are ten thousand languages
söndag, 2010 mars 21
Each language has its purpose, however humble
Each language expresses the Yin and Yang of software
Each language has its place within the Tao
söndag, 2010 mars 21
But do not program in COBOL if you can avoid it
söndag, 2010 mars 21
söndag, 2010 mars 21
söndag, 2010 mars 21
Greenspun's Tenth Rule of Programming
söndag, 2010 mars 21
General purpose languages
Special purpose languages
Domain specific languages
söndag, 2010 mars 21
Where are we now?
söndag, 2010 mars 21
Java
söndag, 2010 mars 21
söndag, 2010 mars 21
“Scripting” languages
söndag, 2010 mars 21
“Scripting” languagesPragmatic languages
söndag, 2010 mars 21
Where did we come from?
söndag, 2010 mars 21
Ruby lineage
söndag, 2010 mars 21
a, b, c = 42, 69, 25
söndag, 2010 mars 21
def foo yield 42 3.times do |n| yield n*25 endend
foo { |x| puts x }
söndag, 2010 mars 21
CLU
söndag, 2010 mars 21
/^(\d{3})-(\d{4})$/ =~ phone_number
söndag, 2010 mars 21
$x = 42@me = other@@foo += 2
söndag, 2010 mars 21
Global swearing
$/ = “%”$= = trueputs $!
söndag, 2010 mars 21
puts “hello” unless moon == :full
söndag, 2010 mars 21
Perl
söndag, 2010 mars 21
class MyNumber < Number; end
söndag, 2010 mars 21
foo.send :answer?, 42
söndag, 2010 mars 21
puts obj.methods.grep /=$/
söndag, 2010 mars 21
Smalltalk
söndag, 2010 mars 21
class Foo include ExampleMethodsend
baz.extend ExampleMethods
söndag, 2010 mars 21
Lisp Machine Lisp
söndag, 2010 mars 21
def incrementor(x) lambda do next, x = x, x+1 next endend
i = incrementor(10)i.call # => 10i.call # => 11i.call # => 12
söndag, 2010 mars 21
Scheme
söndag, 2010 mars 21
Ruby
söndag, 2010 mars 21
Good design is not innovation
Good design is choosing what to include - and what to not include
söndag, 2010 mars 21
söndag, 2010 mars 21
Imperative programming
söndag, 2010 mars 21
Functional programming
söndag, 2010 mars 21
Logic programming
söndag, 2010 mars 21
Object oriented programming
söndag, 2010 mars 21
Domain specific languages
söndag, 2010 mars 21
Multiparadigm languages
söndag, 2010 mars 21
Ceremony vs Essence
söndag, 2010 mars 21
Typing
söndag, 2010 mars 21
söndag, 2010 mars 21
Natural languages?
söndag, 2010 mars 21
söndag, 2010 mars 21
Design
söndag, 2010 mars 21
Communication
söndag, 2010 mars 21
Abstraction
söndag, 2010 mars 21
Expressiveness
söndag, 2010 mars 21
First class
söndag, 2010 mars 21
Focused or multiparadigm?
söndag, 2010 mars 21
Where are we going?
söndag, 2010 mars 21
Is concurrency really a large problem?
söndag, 2010 mars 21
söndag, 2010 mars 21
More programming languages - not fewer
söndag, 2010 mars 21
Language leverage
söndag, 2010 mars 21
söndag, 2010 mars 21
Higher level
söndag, 2010 mars 21
Slowness and wastefulness
söndag, 2010 mars 21
Virtual machines
söndag, 2010 mars 21
Text based languages?
söndag, 2010 mars 21
AST languages?
söndag, 2010 mars 21
Language workbenches
söndag, 2010 mars 21
NBL?
söndag, 2010 mars 21
Other paradigms?
söndag, 2010 mars 21
söndag, 2010 mars 21
söndag, 2010 mars 21
It’s going to be interesting
söndag, 2010 mars 21
Where is Ruby going?
söndag, 2010 mars 21
Ruby 2.0
söndag, 2010 mars 21
I don’t know
söndag, 2010 mars 21
Easier to modify the language
söndag, 2010 mars 21
Canonical AST
söndag, 2010 mars 21
Simplify the core?
söndag, 2010 mars 21
Scoped extensions
söndag, 2010 mars 21
DSLs
söndag, 2010 mars 21
Concurrency?
söndag, 2010 mars 21
Typing?
söndag, 2010 mars 21
RubyX
söndag, 2010 mars 21
The future
söndag, 2010 mars 21