History of ICT @ DDVE

Post on 16-Jan-2015

569 views 1 download

Tags:

description

 

Transcript of History of ICT @ DDVE

Alvar Lumberg

10 years in SW developmentactive Agile proponent for 5 years and XP practitioner

Helped start two online communities:

minut.eecafe.ee

hiking, bicycle touring, photography

Introduction to Information and

Communication Technology

or actually...

Brief history of IT

Software platforms

Hardware platforms

Deployment

Software development methodology

... or ...

How to Build Working Software And Keep Your Customers Happy

A little bit of programming

Software platforms

Hardware platforms

Deployment

Brief history of IT

Charles Babbage (1791-1871)

Tried to build the first automated computer - the “difference engine“...

Invented the first programmable computer -the “analytical engine”...

...but neither was built until much laterbecause parts couldn't be manufactured

at that time

Herman Hollerith (1860-1929)

In 1889 he developed an electrical machine to quickly tabulate data on punch cards...

...that was successfully used for the 1890 US Census, which was completed in a year (in contrast, 1880 Census took 8 years)

His Tabulating Machine Company merged with 3 others in 1911 to form a company that later became IBM

Alan Turing (1912-1954)

Turing is considered to be the first computer scientist

Described an a(utomatic)-machine in 1936 thatis now known as the Turing machine

Von Neumann architecture (1945)

still shared by all well-known processors to this date

Analog computers

slide rule, astrolabe, rangekeeper, MONIAC, …

Development peaked during WW II (and died after)

Rise of The Digital

Atanasoff-Berry Computer (ABC), 1937

Zuse Z3, 1941

ENIAC, 1946

Integrated circuits

First successful demo of an IC by Jack Kilby 1958

Made production of digital computers cheaper and more reliable by an order of magnitude

Moore'sLaw

Mainframes (50s .. )

Big computers (room-size) used in big corporations and government agencies

Initially built from vacuum tubes, quite unreliable

Multi-user, connected to multiple terminals

Have evolved into servers running hundreds of virtual computers

Minicomputers (60s .. 90s)

“mini” (fridge-sized) compared to

mainframes

Usually single user, meant for solving

complex problems (early CAD)

Slowly replaced by PCs during the 90s

Intel 4004 (1971)

First modern microprocessor

Hard to design, easy & cheap

to produce

Xerox Alto (1973)

First computer with a GUI, a mouse and

a “desktop” concept

Not a commercial product but a

proof-of-concept

Inspired Steve Jobs to create Lisa and

Macintosh

Altair 8800 (1975)

The true start of home computer

revolution

Had it all – programming environment,

floppy drive onboard memory

Altair BASIC by Micro-Soft

IBM PC (1981)

More or less the great grandfather

of the PC we know today

Open platform – peripherals from

other vendors welcome &

encouraged

Design was soon copied by others

Time Magazine named “the computer” its “Man of the Year” a year later

Osborne 1 (1981)

First commercially successful

portable (“draggable”) computer

Soon surpassed by portable PC clones and

other competitors with larger screens

A really brief history of the Internet

1969 ARPANET founded (4 nodes)RFC 1 published (Request for Comment)

1971 E-mail invented

1973 ARPANET goes internationalEthernet outlined

1976 Queen Elizabeth sends an e-mail

1982 internet defined as networks connected using TCP/IP and Internet as connected internets

1983 Name server developed

1984 Number of hosts breaks 1 000

1988 “The” Internet worm is born, affecting 6 000 of 60 000 active hosts

1989 Number of hosts goes from 80 000 to 160 000 in less than a year

1990 ARPANET ceases to existFirst commercial dial-up provider The World(world.std.com, still alive)

1990 ARPANET ceases to existFirst commercial dial-up provider The World(world.std.com, still alive)

1991 Wide Area Information Servers (WAIS)Large bodies of knowledge, first indexing and search tools

1991 WWW released

1993 2 million hosts, 600 WWW sitesMosaic – first browser with a GUI

1994 3 million hosts, 10 000 WWW sitesMosaic – first browser with a GUIYou can order pizza from Pizza Hut on-lineFirst internet bank goes on-lineJeff Bezos writes the business plan for amazon

1995 6.5 million hosts, 100 000 WWW sitesWWW becomes service with greatest traffic

1996 tv.com sold for $15000Browser wars begin (Netscape vs Microsoft)

1999 Peter Merholz coins the word blog, although what we call blogs had been around since 1994

2000 DOS attack on Yahoo! and eBay

2001 Court shuts down NapsterForwarding email becomes illegal in Australia – personal copyright infringement

http://www.stedmundsbury.gov.uk/sebc/live/egov.cfm

Internet bench launched 10:43am 6 August 2001

2002 Having a blog becomes hip

2003 RIAA sues ~250 people for distributing music

2005 Estonia offers Internet voting for local elections

2006 Youtube.com launches

2006 Estimated 92 million websites online

2007 1.114 billion people use the InternetGoogle becomes the most valuable global brandEstonia offers online parliament elections

2009 US Government asks Twitter to postponeplanned maintenance as Iranian protestors are using it to communicate

2010 First live Internet link to low orbit – ISS astronaut T.J. Creamer updates his Twitter account

2012 First projects founded by DDVE students go live, taking the world by storm

Brief history of IT

Software platforms Deployment

Hardware platforms

Blurring lines between device categories – a device for every need and taste

PCs, laptops, netbooks

+ Most powerful (games, CAD)+ Lots of screen estate (productivity & office tools,

specialized software)

- Not really portable (no use for location-based and always-on stuff)- Different OSs

http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Desktop_and_laptop_computers

Windows MacOS + iOS Linux + Android Other (Symbian, Blackberry etc)0

10

20

30

40

50

60

70

80

90

% of web clients

Smartphones (& tablets)

iPhone/Android made mobile phones a serious platform

Even graphics performance almost on par with prev gen game consoles

+ Tends to be with you + Good battery life compared to netbooks/notebooks

- Different OSs- Different hardware capabilities even on the same platform

Cool stuff

Kinect

Flex screens (Samsung AMOLED)

...

Hardware platformsBrief history of IT

DeploymentSoftware platforms

Front-end

Back-end

Web

+++ Very common standard (PC, tablets, phones, STB+TV)+ Very low barrier for entry (text editor + browser)

- Differences in browsers- Visual hard to do well (skills and experience needed)

Google Apps, Facebook

RIA (Flash, Silverlight)

+ Easy to do web/desktop apps+ Good UI design tools+ Identical picture in every browser

--- Users really don't like RIA on desktop (Evernote, TweetDeck)- Proprietary tech & tools- Users must install extra browser plugins

TweetDeck, SlideRocket

Native

+ Best desktop integration+ Fast, lightweight

- Many platforms to support (however, situation is improving)- Deployment complicated (environment not under your control)- Hard to distribute new versions

Dropbox, EverNote

Front-end

Back-end

Server platforms 2011

Two Unix servers per 1 MS server, most of it Linux distros

Language/platform usage:

PHPASP.NETJavaColdFusionPerlRubyPython

PHP

+ Quick to start with+ Multitude of ready components (blog engines, wikis, forums)

+/- Language and a framework at the same time

- scaling up needs skills and experience- no support for Unicode- development stalling

Wordpress, Facebook

ASP.NET

+ Good tooling support

+/- Lack of choice (the MS way of web programming)

- very proprietary difficult to run on non-MS servertools inevitably cost money

- not open source, development depends on vendor

Java

+ VERY mature, supported on all platforms, loads of re-usable libraries

+ very scalable+ very good IDEs available

- a bit heavyweight & verbose, has an “enterprise” feel to it- out of fashion (community support possibly dropping)- doesn't develop very fast

Google Apps, oprah.com, Sony Ericsson,Swedbank, Elion, Eesti Energia

Adobe ColdFusion

+ good tools+ language easy to learn+ rapid development

- very expensive - not open source, development depends on vendor- heavyweight, resource-hungry

MySpace, eBay, HP

Perl

+ very powerful language

- very complicated language

Slashdot

Python

+ language reasonably easy to learn+ robust, scalable, used in big projects

- smaller ecosystem than Java, PHP, Ruby

OpenERP, Trac, many Estonian government sites

Ruby

+ enables you to get going very quickly+ “new” kid on the block+ less code, more functionality

- power makes it easy to mess up badly- hard to maintain big projects- good extension possibilities need a specific mindset

Twitter, Basecamp, Geni

Software platforms

Hardware platformsBrief history of IT

Deployment

Getting a native app to your customers

For mobile:- iTunes App Store, Android Market

For desktop:- good old installer model, downloaded or hard media

Either way modern apps can self-update over the net, decreasingversion rollout issues

However, no way to force users to upgrade – need to supportold client versions

Getting a web app to your customers

Server in the corner

+ full control (security, maintainability)+ cheaper on large scale

- full control (handling backups, hardware issues)- high up-front cost- more difficult to scale

Getting a web app to your customers

Deployed to the cloud

+ easy to scale incrementally+ mundane maintenance tasks offloaded

- sensitive data sometimes cannot be trusted outside- more expensive for long-term large scale solutions

Amazon EC2 & S3, multitude of other VPS providers (zone.ee)

Logical building blocks of a web app (3-tier)

Back-end (business logic)

Database

Front-end (GUI)

Deployment model of a web app

Databaseserver

the Net

server

Deployment model of a web app

Databaseserver

Databaseserver

Databaseserver

the Net

serverserver server

Server cluster

Database cluster

Load balancer