70
Cappuccino @JSConf 2009

Cappuccino @ JSConf 2009

Embed Size (px)

DESCRIPTION

Slides from my Cappuccino Presentation @ JSConf 2009

Citation preview

Page 1: Cappuccino @ JSConf 2009

Cappuccino@JSConf 2009

Page 2: Cappuccino @ JSConf 2009
Page 3: Cappuccino @ JSConf 2009
Page 4: Cappuccino @ JSConf 2009
Page 5: Cappuccino @ JSConf 2009

0.7

Page 6: Cappuccino @ JSConf 2009

Objective-J

Page 7: Cappuccino @ JSConf 2009

forEach"JavaScript 1.6", committed 2005

Page 8: Cappuccino @ JSConf 2009

JavaScript 1.6

Page 9: Cappuccino @ JSConf 2009

ECMAScript 4

Page 10: Cappuccino @ JSConf 2009

ECMAScript 3.1

Page 11: Cappuccino @ JSConf 2009

ECMAScript 5

Page 12: Cappuccino @ JSConf 2009

ECMAScript

Page 13: Cappuccino @ JSConf 2009

Ruby, Python, Java, Scala, ...

Page 14: Cappuccino @ JSConf 2009

Objective-J• Code importing• Classical Inheritance• Dynamic Dispatch• method_missing• Open Source!

Page 15: Cappuccino @ JSConf 2009

JavaScript

Objective-J

Page 16: Cappuccino @ JSConf 2009
Page 17: Cappuccino @ JSConf 2009
Page 18: Cappuccino @ JSConf 2009
Page 19: Cappuccino @ JSConf 2009
Page 20: Cappuccino @ JSConf 2009
Page 21: Cappuccino @ JSConf 2009
Page 22: Cappuccino @ JSConf 2009
Page 23: Cappuccino @ JSConf 2009
Page 24: Cappuccino @ JSConf 2009
Page 25: Cappuccino @ JSConf 2009

Desktop Class

Applications

Page 26: Cappuccino @ JSConf 2009
Page 27: Cappuccino @ JSConf 2009
Page 28: Cappuccino @ JSConf 2009
Page 29: Cappuccino @ JSConf 2009
Page 30: Cappuccino @ JSConf 2009
Page 31: Cappuccino @ JSConf 2009
Page 32: Cappuccino @ JSConf 2009
Page 33: Cappuccino @ JSConf 2009

0.7

Page 34: Cappuccino @ JSConf 2009

Debugging

Page 35: Cappuccino @ JSConf 2009
Page 36: Cappuccino @ JSConf 2009
Page 37: Cappuccino @ JSConf 2009
Page 38: Cappuccino @ JSConf 2009

myArray.forEach(function(object){//...});

Page 39: Cappuccino @ JSConf 2009

myArray.forEach(function NAME(object){//...});

Page 40: Cappuccino @ JSConf 2009

MyClass.prototype.myMethod = function(){ //...}

OtherClass.prototype.myMethod = function(){ ///...}

Page 41: Cappuccino @ JSConf 2009
Page 42: Cappuccino @ JSConf 2009

function generate(iterations){ return function() { for (var i = 0; i < iterations; ++i) doSomething(); }}

generate(10)();generate(100)();generate(1000)();

Page 43: Cappuccino @ JSConf 2009
Page 44: Cappuccino @ JSConf 2009

function generate(iterations){ return function iterating() { for (var i = 0; i < iterations; ++i) doSomething(); }}

generate(10)();generate(100)();generate(1000)();

Page 45: Cappuccino @ JSConf 2009

function.displayName

Page 46: Cappuccino @ JSConf 2009

function generate(iterations){ var f = function() { for (var i = 0; i < iterations; ++i) doSomething(); }

f.displayName = "function with " + iterations + " iterations"; return f;}

Page 47: Cappuccino @ JSConf 2009
Page 48: Cappuccino @ JSConf 2009
Page 49: Cappuccino @ JSConf 2009

Top Down Profile

Page 50: Cappuccino @ JSConf 2009

Top Down Profile

Page 51: Cappuccino @ JSConf 2009

Bottom Up Profile

Page 52: Cappuccino @ JSConf 2009

Bottom Up Profile

Page 53: Cappuccino @ JSConf 2009

View

Focus

Exclude

Page 54: Cappuccino @ JSConf 2009
Page 55: Cappuccino @ JSConf 2009
Page 56: Cappuccino @ JSConf 2009
Page 57: Cappuccino @ JSConf 2009

What's Next?• Firebug• More Tools - Profile Memory• More Dynamic Interaction

Page 58: Cappuccino @ JSConf 2009

Themes

Page 59: Cappuccino @ JSConf 2009

CPTheme

Page 60: Cappuccino @ JSConf 2009

madebysofa.com

Page 61: Cappuccino @ JSConf 2009
Page 62: Cappuccino @ JSConf 2009
Page 63: Cappuccino @ JSConf 2009
Page 64: Cappuccino @ JSConf 2009
Page 65: Cappuccino @ JSConf 2009

nib2cib

Page 66: Cappuccino @ JSConf 2009

Demos

Page 67: Cappuccino @ JSConf 2009

http://github.com/280north/cappuccino/tree/0.7b

Page 68: Cappuccino @ JSConf 2009

cappuccino.org

Page 69: Cappuccino @ JSConf 2009

More•cappuccino.org/learn

•github.com/280north/cappuccino

•groups.google.com/group/objectivej

•#cappuccino on irc.freenode.net

Page 70: Cappuccino @ JSConf 2009

[email protected]

@tolmasky