History of ICT @ DDVE
-
Upload
alvar-lumberg -
Category
Education
-
view
571 -
download
1
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
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