26
How did we build Koding? @devrimyasar Tuesday, August 6, 13

How We Look At Software

Embed Size (px)

Citation preview

Page 1: How We Look At Software

How did we build Koding?

@devrimyasar

Tuesday, August 6, 13

Page 2: How We Look At Software

Endless debates

• 1980 Assembly vs C

• 1990 C++ vs C

• 2000 Java vs C++

• 2005 Ruby vs Java

• 2012 Everything vs Everything.

• there is a reason these don’t end

Tuesday, August 6, 13

Page 3: How We Look At Software

Programming Languages

• are not neighboring enemy states.

• because each and every one of them came about to solve a specific problem that arised in a particular domain.

• let’s look at the real map.

Tuesday, August 6, 13

Page 4: How We Look At Software

Techland

Tuesday, August 6, 13

Page 5: How We Look At Software

Techland

Tuesday, August 6, 13

Page 6: How We Look At Software

TechlandAssembly

Tuesday, August 6, 13

Page 7: How We Look At Software

TechlandAssembly

C

Tuesday, August 6, 13

Page 8: How We Look At Software

TechlandAssembly

C C++

Tuesday, August 6, 13

Page 9: How We Look At Software

TechlandAssembly

C C++

Java

Tuesday, August 6, 13

Page 10: How We Look At Software

TechlandAssembly

C C++

Java

RoR

Tuesday, August 6, 13

Page 11: How We Look At Software

TechlandAssembly

C C++

Java

RoR

JS

Tuesday, August 6, 13

Page 12: How We Look At Software

TechlandAssembly

C C++

Java

RoR

JS

JS

Tuesday, August 6, 13

Page 13: How We Look At Software

TechlandAssembly

C C++

Java

RoR

JS

JS

Where do you live?

Tuesday, August 6, 13

Page 14: How We Look At Software

TechlandAssembly

C C++

Java

RoR

JS

JS

Where do you live?Do you respect others?

Tuesday, August 6, 13

Page 15: How We Look At Software

next endless debate

• semicolons! (just kidding! :))

• classes vs functional

• just like the previous point, they are both valid arguments

Tuesday, August 6, 13

Page 16: How We Look At Software

actually,

• 424 BC

• Plato’s “Theory Of Forms”

• 1990 we adopted it as OOP

Tuesday, August 6, 13

Page 17: How We Look At Software

if Plato was a developer...

class Animal

this.canMakeNoise = yes

class Human

this.nrOfLegs = 2

class Person

constructor:(name)->

this.name = name

Tuesday, August 6, 13

Page 18: How We Look At Software

‘class’ is not magic...

Tuesday, August 6, 13

Page 19: How We Look At Software

Darwin figured it out

• Around 1800s

• Human is a Mammal, Mammal is an AnimalAnimal is ...

• Let’s use them like Darwin would...

Tuesday, August 6, 13

Page 20: How We Look At Software

if Darwin was a developer...

class Animal

this.canMakeNoise = yes

class Human extends Animal

this.nrOfLegs = 2

class Person extends Human

constructor:(name)->

this.name = name

Tuesday, August 6, 13

Page 21: How We Look At Software

or else

• a cute mule is never born.

Tuesday, August 6, 13

Page 22: How We Look At Software

we love javascript

• but we use coffeescript to write javascriptTuesday, August 6, 13

Page 23: How We Look At Software

we architect the frontend

latest status: http://d.pr/i/o7oFTuesday, August 6, 13

Page 24: How We Look At Software

and we architect the backend

Koding.com

IRC Server

SSH Terminal

Storage Server

Kite Kite

Kite

Kite

Kite

Kite

Kite

KiteKite

with Bongo.Tuesday, August 6, 13

Page 25: How We Look At Software

expect to see

• Bongo and KDFramework open sourced soon.

• Kites taking over the world

• doThisWith(cpu:500,ram:5TB,function(){ veryHeavyComputingThatWouldOtherwiseTakeForever(function(){ console.log(“done in msecs”);

});

Tuesday, August 6, 13

Page 26: How We Look At Software

Thank you.Any questions?

or reach me at [email protected]

Tuesday, August 6, 13