a szoftver társadalomtörténete
DESCRIPTION
A szoftver társadalomtörténete. Porkoláb Zoltán [email protected] http://gsd.web.elte.hu. OOPSLA 2004 Vancouver. > 1500 résztvevő 54 tutorial 28 workshop 27 előadás (173-ból kiválasztva) Demók, bemutatók, panel-beszélgetések. Keynote #1. The Future of Programming Richard F. Rashid - PowerPoint PPT PresentationTRANSCRIPT
1
A szoftver társadalomtörténete
Porkoláb Zoltán
http://gsd.web.elte.hu
2
OOPSLA 2004Vancouver
• > 1500 résztvevő
• 54 tutorial
• 28 workshop
• 27 előadás (173-ból kiválasztva)
• Demók, bemutatók, panel-beszélgetések
3
Keynote #1
The Future of ProgrammingRichard F. RashidMicrosoft Research alapítója és vezetőjehttp://research.microsoft.com/
C.A.R (Tony) Hoare Lovász László
4
A piramis
• Épült: -2476 (Khufu)
• 20 – 30 év
• Hérodotosz: 100.000 (inkább 5-20.000) munkás
• kb 160 méter magas
5
A katedrális
• Épült:
1248-1560-1880
• Méretei: 144x86x157 m
6
A felhőkarcoló
• Épült: 1930-31
• 1 év 42 nap
• 7 millió munkaóra
• 443 m magas
7
ACM Alan Turing előadás
Association for Computing Machinery1947-ben alapították Turing díj 1966 óta
Alan Key
KiddiKomp Smalltalk 1970-72--Xerox PARC
8
Piramis?• Alulfizetett munkások építették.• Kőburkolattal ellátott szeméthegy.• A piramisok a sivatag közepén álló
pontszerű képződmények. Mint temetkezési helyek, az első példák az u.n. bloatware-re. A nagyravágyás emlékművei.
• A használati utasítás hieroglifákkal lett megadva. (És fel kell tépni a borítékot, mielőtt elolvashatnánk).
• A Fáraók, akik az építést vezényel-ték, Isten megtestesülésének képzelték magukat.
Niklaus Wirth:Software becomes slower faster than hardware becomes faster.
9
Mi a szoftver?
• elsőként John Tukey használta 1958-ban– (Tukey: bit)
• a „hardver” ellentéte – a számítógép által végrehajtható program, vagy programok összessége
• nem triviális a megkülönböztetés– firmware
10
Abakusz
Babilónia cca. -2500
11
Antikythera-i gépezet
Cca. -80
12
Újkori mechanikus számológépek I
• Kereskedelem fellendülése
• Számítási táblázatok– Kézi számítás– Komoly hibaszázalék
• John Napier– Napier-csontok (1617)– Logaritmus– Tizedespont
13
Újkori mechanikus számológépek II
• Wilhelm Schickard 1623
• Blaise Pascal 1645
• Gottfried Leibniz ~1670Staffelwalze
• Charles Xavier Thomas de Colmar
1820
14
A program megjelenése
Joseph Marie Jacquard
A szoftver
A hardver fizikai átalakítása nélkül módosítja annak működését
1801
15
• Difference Engine– 1822-es levél– Adat és program szétválasztva– Utasítás-bázisú vezérlés
• Feltételes ugrás– Külön I/O egység– Printer
• Analitical Engine– Lyukkártya-vezérlés– Az első Turing-teljes mechanikus gép
(lett volna…)
Charles Babbage
16
Ada Byron
• Augusta Ada King,sz: Augusta Ada Byron, Lovelace grófnéja
• Lefordította Luigi Menabrea feljegyzéseit az Analitical Engine-ről, saját jegyzetekkel látta el, pl. a Bernouli számok kiszámításának módjáról
• ADA programozási nyelv
17
A 20. század első fele
• Alonzo Church, Stephen Cole Kleene– Lambda kalkulus
• Alan Turing– Bletchley Park– Turing-teljesség
• Konrad Zuse (Plankalkül)
18
Neumann János
•Von Neumann – elv
•Neumann architechtúra
•Tárolt programvezérlésű számítógép
19
Programozási paradigmák
• Automatikus programozás– 1950-1970
• Strukturált programozás– 1970-1990
• Objektumelvű– 1990-?
20
A bazár• Önszerveződő
rendszer
• Alapvető szabályok betartása
• Evolúciós mechanizmusok
Eric Steven Raymond 1996
21
Minicomputer• Microcode
– Hardver programozása
• 1968 MULTIX– General Electrics – AT&T Bell Laboratory
• 1969 UNIX– Ken Thompson, Dennis Ritchie – C nyelv
22
Unix
Ken Thompson
Space traveller
DEC PDP-7 assembly
UNICSUniplex Information and
Computing System
Brian Kernighan
23
Portabilitás
• Portabilitás– Forrás szintű– Byte-kód szintű– Bináris szintű
• 1973: A UNIX átírása C nyelvre– 13000 sor C kód– 800 sor assembly kód
24
GUI• Grafikus felhasználói
felület
• Ivan Sutherland – Sketchpad
• Doug Engelbart – NLS (oN Line System)
– Egér
– hipertext
25
Xerox PARC
• XEROX Palo Alto Research Center– GUI Douglas Engelbart– Smalltalk Alan Key– Bravo Charles Simonyi– Lézernyomtató– Ethernet hálózat
– Aspektus-Orientált Programozás • Gregor Kitzales
26
Apple
• Steve Jobs, Steve Wozniak
• Apple II. TV output 1977
• 1979 december:– Látogatás a Xerox-nál– 1983: LISA
• 1984: Macintosh
• Superbowl hirdetés
27
Microsoft
• Bill Gates, Paul Allen, 1975– BASIC interpreter Altair
8800– Fortran, COBOL CP/M
• 1981 IBM PC – Operációs rendszer (CP/M)– Tim Paterson QDOS $50.000– Quick and Dirty OS
28
OS2 és Windows
• 1985: Windows 1.0
• 1992: Windows 3.1
29
GNU
• Richard Stallman (RMS)• GNU mozgalom
– GNU is NOT UNIX– Kernel+GCC+Utilities
• Free Software Foundation• GPL licenc• Free software vs Open Source
30
LINUX
• Linus Thorvalds (1969-)
• 1991 augusztusa – Usenet levél
• 1995 Linux név levédése
• Linux kernel
• Monolitikus
• 2% kód
31
Szoftverkrízis
• Az 1960-as évektől• Mythical men-month• No silver bullett
• Módszertanok (SSADM …)• CASE eszközök• Programozási nyelvek• Progrmam-ellenőrző és bizonyító eszközök
32
Az emberi tényező
• Hungarian notation LPSzFun
• Kódkonvenciók
• Hallgatók számának rohamos csökkenése
• Harmadik világ szoftveresei
• Outsourcing?– Yourdan
• Automatizálás?– Simonyi
33
A felhőkarcoló
• Épült: 1930-31
• 1 év 42 nap
• 7 millió munkaóra
• 443 m magas
34
Cristopher Alexander
• (Bécs, 1936-)
• Cambridge:
Matematikus-építész
• Építész
• Tervezési minták
(Design Patterns)
• A Pattern Languages
35
Szoftveres Tervminták
• A „négyek bandája”Erich Gamma, Richard Helm,
Ralph Johnson, John Vlissides
• Jim Coplien
• Martin Fowler
36
Új paradigmák
• Generikus programozás– STL
• Genetikus programozás• Aspektus-orientált programozás
– Kiczales
• Szándékalapú (intentional) programozás– Simonyi
• Multiparadigma– Coplien
37
Az ingyen vacsora vége