those who know history are doomed to watch others repeat it

50
Those Who Know History Are Doomed to Watch Others Repeat It

Upload: guy-royse

Post on 26-Jun-2015

1.114 views

Category:

Technology


1 download

DESCRIPTION

Mark Twain said that history doesn't repeat but that it often rhymes. This is true not only of the history of civilization but also of software development. The history of computing, like anything, has recurring patterns, cycles, and trends. Some of them are quite large, others are tiny. Some are significant and others merely amusing. In this session we will look at some of these from the early days of ENIAC all the way to modern mobile phones. We will plot them out over the decades, observe their cycles, and come to understand them. Then, grounded in that history, we will explore some possible outcomes for the next few years and wax poetic about what the more distant future might bring. If you want to know history and are willing to risk predicting the future, come and join us.

TRANSCRIPT

Page 1: Those Who Know History are Doomed to Watch Others Repeat It

Those Who Know HistoryAre Doomed to Watch Others Repeat It

Page 2: Those Who Know History are Doomed to Watch Others Repeat It

Who Is This Guy?

Guy Royse, Consultant

Pillar Technology

[email protected]

@guyroyse

Page 3: Those Who Know History are Doomed to Watch Others Repeat It

“History doesn’t repeat itself, but it often

rhymes”

—Mark Twain

Page 4: Those Who Know History are Doomed to Watch Others Repeat It

Java is theNew COBOL

Page 5: Those Who Know History are Doomed to Watch Others Repeat It

“COBOL has almost no fervent

enthusiasts. As a programming tool, it has roughly the

sex appeal of a wrench.”

Charles Petzold

Page 6: Those Who Know History are Doomed to Watch Others Repeat It

CompletelyObsoleteBusinessOrientedLanguage

Page 7: Those Who Know History are Doomed to Watch Others Repeat It

I had a problem that I tried tosolve with Java.

Now I have a ProblemFactory.

Page 8: Those Who Know History are Doomed to Watch Others Repeat It

And anAbstractProblemFactoryManager.

Page 9: Those Who Know History are Doomed to Watch Others Repeat It
Page 10: Those Who Know History are Doomed to Watch Others Repeat It
Page 11: Those Who Know History are Doomed to Watch Others Repeat It

ASimple Problem

Page 12: Those Who Know History are Doomed to Watch Others Repeat It

Java Class Diagram

PhoneValidatorboolean validate(Phone)

AddressValidatorboolean

validate(Address)

ContactValidatorboolean

validate(Contact)

Page 13: Those Who Know History are Doomed to Watch Others Repeat It

COBOL System Diagram

CONTACT-VALIDATOR

ADDRESS-VALIDATOR

PHONE-VALIDATOR

Page 14: Those Who Know History are Doomed to Watch Others Repeat It

Java Data Structures

PhoneString areaCodeString exchangeString number

AddressString streetString city

String stateString zipCode

ContactString name

Address addressPhone cell

Phone home

Page 15: Those Who Know History are Doomed to Watch Others Repeat It

COBOL Data Structures

01 CN-CONTACT. 05 CN-NAME PIC X(40). 05 CN-ADDRESS. 10 CN-ADDR-STREET PIC X(30). 10 CN-ADDR-CITY PIC X(20). 10 CN-ADDR-STATE PIC X(2). 10 CN-ADDR-ZIP-CODE PIC X(5). 05 CN-HOME-PHONE. 10 CN-HOME-AREA-CD PIC 9(3). 10 CN-HOME-EXCHANGE PIC 9(3). 10 CN-HOME-NUMBER PIC 9(4). 05 CN-CELL-PHONE. 10 CN-CELL-AREA-CD PIC 9(3). 10 CN-CELL-EXCHANGE PIC 9(3). 10 CN-CELL-NUMBER PIC 9(4).

Page 16: Those Who Know History are Doomed to Watch Others Repeat It

01 CN-CONTACT. 05 CN-NAME PIC X(40). 05 CN-ADDRESS. 10 CN-ADDR-STREET PIC X(30). 10 CN-ADDR-CITY PIC X(20). 10 CN-ADDR-STATE PIC X(2). 10 CN-ADDR-ZIP-CODE PIC X(5). 05 CN-HOME-PHONE. 10 CN-HOME-AREA-CD PIC 9(3). 10 CN-HOME-EXCHANGE PIC 9(3). 10 CN-HOME-NUMBER PIC 9(4). 05 CN-CELL-PHONE. 10 CN-CELL-AREA-CD PIC 9(3). 10 CN-CELL-EXCHANGE PIC 9(3). 10 CN-CELL-NUMBER PIC 9(4).

public class Contact { private String name; private Phone home; private Phone cell; private Address address;

public String getName() { return name; } public void setName(String name) { this.name = name; }

... more setters and getters here ...}

public class Phone { private String areaCode; private String exchange; private String number;

... setters and getters here ...}

public class Address { private String street; private String city; private String state; private String zipCode;

... setters and getters here ...}

Page 17: Those Who Know History are Doomed to Watch Others Repeat It

IDENTIFICATION DIVISION.PROGRAM-ID. CONTACT-VALIDATOR.

PROCEDURE DIVISION USING CN-IS-VALID, CN-CONTACT.

MAIN-LINE. PERFORM VALIDATE-NAME. CALL ADDRESS-VALIDATOR USING CN-ADDRESS, WS-ADDRESS-IS-VALID. CALL PHONE-VALIDATOR USING CN-HOME-PHONE, WS-HOME-PH-IS-VALID CALL PHONE-VALIDATOR USING CN-CELL-PHONE, WS-CELL-PH-IS-VALID. PERFORM DETERMINE-IF-VALID. GOBACK.

VALIDATE-NAME. MOVE ‘Y’ TO WS-NAME-IS-VALID. IF CN-NAME IS SPACES MOVE ‘N’ TO WS-NAME-IS-VALID.

DETERMINE-IF-VALID. MOVE ‘N’ to CN-IS-VALID. IF WS-NAME-IS-VALID IS ‘Y’ AND WS-HOME-PH-IS-VALID IS ‘Y’ AND WS-CELL-PH-IS-VALID IS ‘Y’ AND WS-ADDRESS-IS-VALID IS ‘Y’ MOVE ‘Y’ TO CN-IS-VALID.

public class ContactValidator {

private PhoneValidator phoneValidator = new PhoneValidator(); private AddressValidator addrValidator = new AddressValidator();

public boolean validate(Contact cntct) {

boolean valid = validateName(cntct.getName());

valid &= addrValidator.validate( cntct.getAddress());

valid &= phoneValidator.validate( cntct.getHome());

valid &= phoneValidator.validate( cntct.getCell());

return valid;

}

private void validateName(String name) { return !StringUtils.isEmpty(name); }

}

Page 18: Those Who Know History are Doomed to Watch Others Repeat It

Automating the Process

Page 19: Those Who Know History are Doomed to Watch Others Repeat It
Page 20: Those Who Know History are Doomed to Watch Others Repeat It
Page 21: Those Who Know History are Doomed to Watch Others Repeat It

Node isSingle-

Threaded

Page 22: Those Who Know History are Doomed to Watch Others Repeat It
Page 23: Those Who Know History are Doomed to Watch Others Repeat It

So Why Do We Keep Reinventing the Past and Calling it the Future?

Page 24: Those Who Know History are Doomed to Watch Others Repeat It

Peoplein thePastWere Dumb

Page 25: Those Who Know History are Doomed to Watch Others Repeat It

“I’m just a cave man. Your world frightens and confuses

me.”

Page 26: Those Who Know History are Doomed to Watch Others Repeat It

“Look back over the past, with its changing empires that rose and fell,

and you can foresee the future

too.”

― Marcus Aurelius,

Meditations

Page 27: Those Who Know History are Doomed to Watch Others Repeat It

“If history is deprived of the

Truth, we are left with nothing but an

idle, unprofitable tale.”

― Polybius,The Rise of the Roman Empire

Page 28: Those Who Know History are Doomed to Watch Others Repeat It

Anacyclosis

Page 29: Those Who Know History are Doomed to Watch Others Repeat It

Basic Cycle

Page 30: Those Who Know History are Doomed to Watch Others Repeat It

How Projects Run

Page 31: Those Who Know History are Doomed to Watch Others Repeat It

How We Code

Page 32: Those Who Know History are Doomed to Watch Others Repeat It

How We Design Applications

Page 33: Those Who Know History are Doomed to Watch Others Repeat It

The 40s and 50s

Page 34: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

UNIVAC

Z3Mark 1

Page 35: Those Who Know History are Doomed to Watch Others Repeat It

The 60s and 70s

Page 36: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

Page 37: Those Who Know History are Doomed to Watch Others Repeat It

The Late 70s

Page 38: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

Early PCs

Page 39: Those Who Know History are Doomed to Watch Others Repeat It

The 80s

Page 40: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

PCs

Early PCs

Page 41: Those Who Know History are Doomed to Watch Others Repeat It

The 90s

Page 42: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

PCs

Early PCs

ClientServer

Browser

Internet

Page 43: Those Who Know History are Doomed to Watch Others Repeat It

In The Year 2000

Page 44: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

PCs

Early PCs

ClientServer

Browser

Mobile

Internet

AJAX

Page 45: Those Who Know History are Doomed to Watch Others Repeat It

2010s

Page 46: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

PCs

Early PCs

ClientServer

Browser

Mobile

Internet

HTML5

Cloud

PiAJAX

Page 47: Those Who Know History are Doomed to Watch Others Repeat It

Computing Timeline40s & 50s 60s & 70s 80s 90s 2000s 2010s ???

Server-side

Client-side

ENIAC

Mainframes

TeletypesTerminals

CICS

UNIVAC

Z3Mark 1

UNIX

PCs

Early PCs

ClientServer

Browser

Mobile

Internet

HTML5

Cloud

Pi

?

AJAX

Page 48: Those Who Know History are Doomed to Watch Others Repeat It

“It is not worthwhile to try to keep history from repeating itself, for man's character will

always make the preventing of the

repetitions impossible.”

— Mark Twain

Page 49: Those Who Know History are Doomed to Watch Others Repeat It
Page 50: Those Who Know History are Doomed to Watch Others Repeat It

Guy Royse, Consultant

Pillar Technology

[email protected]

@guyroyse