Programmering efter PC-eran

download Programmering efter PC-eran

If you can't read please download the document

Transcript of 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/

[email protected]

@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+

Facebook

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)