380 likes | 525 Views
A szoftver társadalomtörténete. Porkoláb Zoltán gsd@inf.elte.hu 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
E N D
A szoftver társadalomtörténete Porkoláb Zoltán gsd@inf.elte.hu http://gsd.web.elte.hu
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
Keynote #1 The Future of Programming Richard F. Rashid Microsoft Research alapítója és vezetője http://research.microsoft.com/ C.A.R (Tony) Hoare Lovász László
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
A katedrális • Épült: 1248-1560-1880 • Méretei: 144x86x157 m
A felhőkarcoló • Épült: 1930-31 • 1 év 42 nap • 7 millió munkaóra • 443 m magas
ACM Alan Turing előadás Association for Computing Machinery 1947-ben alapították Turing díj 1966 óta Alan Key KiddiKomp Smalltalk 1970-72--Xerox PARC
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.
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
Abakusz Babilónia cca. -2500
Antikythera-i gépezet Cca. -80
Ú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
Újkori mechanikus számológépek II • Wilhelm Schickard 1623 • Blaise Pascal 1645 • Gottfried Leibniz ~1670 Staffelwalze • Charles Xavier Thomas de Colmar 1820
A program megjelenése Joseph Marie Jacquard 1801 A szoftver A hardver fizikai átalakítása nélkül módosítja annak működését
Charles Babbage • 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…)
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
A 20. század első fele • Alonzo Church, Stephen Cole Kleene • Lambda kalkulus • Alan Turing • Bletchley Park • Turing-teljesség • Konrad Zuse (Plankalkül)
Neumann János • Von Neumann – elv • Neumann architechtúra • Tárolt programvezérlésű számítógép
Programozási paradigmák • Automatikus programozás • 1950-1970 • Strukturált programozás • 1970-1990 • Objektumelvű • 1990-?
A bazár • Önszerveződő rendszer • Alapvető szabályok betartása • Evolúciós mechanizmusok Eric Steven Raymond 1996
Minicomputer • Microcode • Hardver programozása • 1968 MULTIX • General Electrics • AT&T Bell Laboratory • 1969 UNIX • Ken Thompson, Dennis Ritchie • C nyelv
Unix Ken Thompson Space traveller DEC PDP-7 assembly UNICS Uniplex Information and Computing System Brian Kernighan
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
GUI • Grafikus felhasználói felület • Ivan Sutherland • Sketchpad • Doug Engelbart • NLS (oN Line System) • Egér • hipertext
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
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
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
OS2 és Windows • 1985: Windows 1.0 • 1992: Windows 3.1
GNU • Richard Stallman (RMS) • GNU mozgalom • GNU is NOT UNIX • Kernel+GCC+Utilities • Free Software Foundation • GPL licenc • Free software vs Open Source
LINUX • Linus Thorvalds (1969-) • 1991 augusztusa • Usenet levél • 1995 Linux név levédése • Linux kernel • Monolitikus • 2% kód
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
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
A felhőkarcoló • Épült: 1930-31 • 1 év 42 nap • 7 millió munkaóra • 443 m magas
Cristopher Alexander • (Bécs, 1936-) • Cambridge: Matematikus-építész • Építész • Tervezési minták (Design Patterns) • A Pattern Languages
Szoftveres Tervminták • A „négyek bandája” Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides • Jim Coplien • Martin Fowler
Ú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
Köszönöm a figyelmet! gsd@inf.elte.hu