Func.is at VisuFlow 2/12/13

13
Func.is Simple > Complex

Transcript of Func.is at VisuFlow 2/12/13

Page 1: Func.is at VisuFlow 2/12/13

Func.isSimple > Complex

Page 2: Func.is at VisuFlow 2/12/13

Why is coding sodifficult?

2

Page 3: Func.is at VisuFlow 2/12/13

Two types of Complexity

3

Page 4: Func.is at VisuFlow 2/12/13

Types Essential complexity The problem itself System integration Differential usage

Accidental complexity Frameworks, language features Architectural (anti)-patterns Object oriented programming?

4

Page 5: Func.is at VisuFlow 2/12/13

How do we eliminate

accidental complexity?

Func.is

5

Page 6: Func.is at VisuFlow 2/12/13

In terms of a framework Remove features untill there is nothing left (to

take away) Abstract and generalize what’s left Make it as simple as possible to use

6

Page 7: Func.is at VisuFlow 2/12/13

Simple just ain’t

easy!

7

http://www.infoq.com/presentations/Simple-Made-Easy

Rich Hickey

Page 8: Func.is at VisuFlow 2/12/13

The causal event

-flow

8

Page 9: Func.is at VisuFlow 2/12/13

Let’s get practical

9

{Where}{What} {Input}

{Output}{When}

Page 10: Func.is at VisuFlow 2/12/13

Pure functions The same input will always yield the same output It doesn’t cause any side effects Simple to test, simple to reuse!

11

Page 11: Func.is at VisuFlow 2/12/13

Side effects Conceptually difficult to handle with code Any computer program is irrelevant without

[side] effects. Side effects is an essential complexity

12

Page 12: Func.is at VisuFlow 2/12/13

So where does it leaves Func.is? Separation between what/when and how Good for building distributed systems The union between functional and flow-based

programming A better way to combine computer programs and

build big systems

13

Page 13: Func.is at VisuFlow 2/12/13

Live Demo!

14