Download - Programmering efter PC-eran
Programmering efter PC:n
Frn von Neumann till Marc Weiser
Eller
Datorn r dd lnge leve datorn!
Vilka r ni?
Med p KTH i vras?
Lst mina blogginlgg p keryx.se?
Vem r jag?
Borsare, 66:a, gift med @penilla
itpastorn
WaSP Education Task Force
OWEA Web Education Community Group
mnesexpert t SkolverketWebbteknik
Grnssnittsdesign
Fjrde ret (mjukvarudesign)
Parallell exekvering
Forka processer
Trdar
Fibrer
Callbacks (Node)
Actors (Erlang)
Funktionell programmering utan sidoeffekter
x = f1(y) + f2(z)
Vi brjar med ett litet kollektivt test
Hur hade din undervisning
ndrats nd?
Om inte Gy-11 hade hnt...
Ambient Computing
Ubiquitous computingPervasive computingAmbient computing
Miljmedveten programmering
Spara strm med effektiv kod
Anvndarmiljn
Programkrningsmiljn
Utvecklingsmiljn
Samhllsmiljn
Anvndaren r KUNG!
I vart fall har upproret brjat
Oanvnda affrssystem kostar miljarder
Programmering nra slutanvndaren
Varje ny funktion som i sig r bra gr ofta helheten smre!
Kunden imponeras inte lngre av mnga funktioner. Less is more!
Hrdvarans utveckling
1980 2005 = scale upFrn 5 Mhz till 2 Ghz
Frn 16 Kb till 2 GB RAM
Frn 10 MB (PC XT) till 500 GB
2000 = scale outMulticore (Power5 kom 2000)
Viktigaste fartkningen under 2000-talet:PipeliningIcke-sekvensiell exekvering: Out of order execution/spekulativMMX/SSE/SIMD
X86 CPU klockfrekvens
Scale up r evolution
More of the same
Scale out r revolution
Game changing
Motiv till bilden:
Gretzky = frste kanadensaren som anvnde hjrnan nr han spelade hockey + omrdet bakom kassen
Han ndrade p spelet (i NHL)
CPU-verfld
Stordator = 1:n
Mikrodator = 1:1
Marc Weiser frutspdde n:1
Multicore
Kluster
GPGPU
Distribuerade systemnoSQL
Hrdvarans utveckling (in/ut)
1980 2005 = scale up
8 tum s/v 22 tum miljoner frger
1 sida p 5 minuter (matris)
5 sidor/minut (laser)
2000 = scale out
Frn tangentbord + mus till touch och gester
GPS, accelerometer, gyroskop
Paradigm
Sekvens vnta sekvens vnta...
STDIN STDOUT STDERR
Hndelsedriven
Event loopen
Abstraktion
Koda fr hrdvaran
Koda fr operativsystemet
Koda fr virtuell maskin
Koda fr webbmiljnWebben r framtidens RTE
Cloud computing/distribuerade system
80-talet = Hrdvaran
(klonerna hrmade IBM:s BIOS)90-talet = Operativsystemet tog ver
(api:er)00-talet = Virtuella maskiner (JVM, CLR)
Hnt i veckan
Flash lggs ned fr mobiler
Det blir ingen SilverLight 6
Klart sedan tidigare:- Ingen Flash p iOS- Ingen Flash i Windows 8 Metro
Sa du kompilering?
Till maskinkod
Till bytekodJVM, CLR
Scala, Clojure, Jython, JRuby, etc
Till ett annat sprkEmscripten (via LLVM)
HipHop
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
Utvecklingstempo slr allt
Korta slpp-cykler
Dagliga uppdateringar
Misstag tolereras inte lngre!
Nu r vi p utvecklingsmilj
Viktiga kompetenser
VersionskontrollAnstllningsfrga: Konto p Github?
Skriva buggrapporter och testerIngng fr fjrde ret
Profiling (sluta gissa!)Mter du rtt sak?
Pageing the one true metric?
Nst efter i/o wait
Github som gesllarbete!
Framtiden = en massa grnssnitt
WIMP Touch
No Touch
Rst + natural languange (Siri)
Sensorer av alla slag verallt
Socialt ansvariga ingenjrer
Skerhet
Integritet
Reklam!
Distanskurs p HV
Frgor och mothugg!
http://keryx.se/
@itpastorn
http://www.slideshare.net/itpastorn/
Vad forskar USA:s militr om?
ARPANET Internet
GPS fr atomubtar location aware services
Augmented Reality brjade som HUD i Corsair II
Rst-grnssnitt
Multitouch (Nej, Apple uppfann detta... heller!)
Framtiden
Datavisualisering och urvalF22/F35 piloterna ser ett dataurval
BeslutsstdF22 piloten hr och ser shoot nr det r dags att trycka p avtryckaren
Tolkning av ostrukturerad dataUAV:er producerar flera TB data per minut
Lokalisera en prickskytt med akustiska metoder i en stridsmilj med flera ekon...
Prestandagapet?
Frn mer n 100 x till mindre n 10 x
Dagens JavaScript r snabbare n C++ var fr 5 r sedan
Gapet kommer minska ytterligare
Matematisk grns p 2-3 x (?)
Hur gapet minskas
JIT-kompileringMethod-JIT (JgerMonkey, Nitro, V8, IonMonkey)
Trace-JIT (TraceMonkey, Crankshaft)
Statisk analys
Web Workers och andra asynkrona tekniker
Tillgng till GPU:n
Typed Arrays
Kompetensen hos utvecklarna och verktygen de anvnder (Ex. DOM-fragment, profileringsverktyg)
Lpbandet p gymmet...
Identifierar mitt ansikte och loggar mina prestationer
Lagrar i molnetIntegrerad med Nike+
Youtube (underhllning)
Skall den komma t/lagra medicinsk data?
Skall frskringsbolaget eller arbetsgivaren f veta?
Lisp and Fortran were the trunks of two separate evolutionary trees, one rooted in math and one rooted in machine architecture. These two trees have been converging ever since.
(Hrdvarunra - abstrakt)
Lisp started powerful but is getting fast
Fortran started fast and is getting powerful
Abstraktion 1
Assembler
Hgniv med peek och poke
Kompilera till maskinkod
Virtuella maskiner med garbage collection
Program i programJavaScript i Webblsaren
PHP som en modul till Apache (eller CGI)