mboost-dp1

newz.dk

Hvad er fremtiden for HTML5, Silverlight og Flash?

- Via Microsoft.dk - , redigeret af Net_Srak , indsendt af danielovich

Igennem de seneste måneder har der været stor fokus på fremtiden for teknologier som Flash og Silverlight, især i takt med at nye browserer får bedre og bedre understøttelse af HTML5.

Nogle hælder til, at HTML5 skal overtage det meste af arbejdet fra Flash og Silverlight, men med en endelig færdiggørelse af standarden, der først er programsat til 2022, så er der endnu lang vej, til alle detaljer er på plads.

Det er også muligt, alle tre teknologier kan sameksisterer, og for at kaste lidt lys på situationen inviterer Microsoft Danmark nu til en snak om emnet, hvor de lover, der ikke vil være noget marketingssnak.

Microsoft-indbydelse skrev:
Vi har forsøgt, så godt som netværket tillader det, at finde nogle mennesker der ved noget om teknologierne fra Microsoft, Adobe og selvfølgelig nogle der ved noget om HTML5 og standarden. Lad os hive de informationer ud af dem som vi mener vi ikke har fået.

Begivenheden finder sted hos Microsoft Danmark den 13. december og vil være gratis at deltage i.





Gå til bund
Gravatar #1 - Martin Hintzmann
4. nov. 2010 09:05
Ian Hickson forventer at i 2022 ville 2 eller flere browsere have 100% understøttelse af HTML5.

En tilstand som ikke engang CSS2.1 har endnu.

W3C forventer HTML5 feature-complete i midten af 2011 og Candidate Recommendation i 2012. Det er lige om hjørnet.

Jeg tror ikke flash og silverlight forsvinder forløbigt.

Men vi vil se flere og flere hjemmesider som begynder at bruge HTML5, ligesom YouTube, Scribd og Gmail.
Gravatar #2 - CableCat
4. nov. 2010 09:16
Python support i browseren som erstatning for javascript. Det ville være dejligt!
Gravatar #3 - mfriis
4. nov. 2010 09:23
#2 og utroligt utænkeligt.

JavaScript/ECMAScript er det mest upopulære sprog i verden, en skrækkelig syntax, nogle sindssyge sikkerhedsproblemer og generelt en "hader" for de fleste programmører.

På trods af dette har det er JavaScript også det mest populære sprog i verden, det sprog der fungerer på allerflest platforme og som fungerer både clientside og serverside.

Sandsyneligheden for det bliver skiftet ud er tæt på 0. ECMA script kommiteen arbejder på fuld tryk på at gøre den næste store version klar og der er ingen interresse fra hverken browser udviklerne, w3c eller ECMA for at skifte det ud.

Det kunne være dejligt men det sker bare ikke :) Om 20 år har vi med garanti stadig JavaScript/ECMAscript som clientside sprog i browseren. Det taber ikke tærren, det vinder det.


Gravatar #4 - Ramius
4. nov. 2010 09:35
mFriis skrev:
Det kunne være dejligt men det sker bare ikke :) Om 20 år har vi med garanti stadig JavaScript/ECMAscript som clientside sprog i browseren. Det taber ikke tærren, det vinder det.


Skræmmende men sandt :(
Gravatar #5 - NoXi
4. nov. 2010 09:41
Bare fordi i ikke kan finde ud af at udnytte et sprog gør ikke sproget dårligt, snarere udvikleren.

JS er et fantastisk sprog hvis man forstår at bruge det.
Gravatar #6 - fidomuh
4. nov. 2010 10:02
#5

Jeg tror faktisk at 99% af alle udviklere i verden er uenig med dig.

Syntax og udfoersel af JS er direkte skraemmende i 99% af alle tilfaelde.

Det er brugbart og kan en masse fancy ting, men det goer ikke sproget i sig selv, nice.

#Topic

Very nice move :)
Gravatar #7 - dan1el
4. nov. 2010 10:09
Jeg sad og læste Ars Technicas review af den nye Macbook Air uden flash preinstalleret, de noterede sig 5-6 timers batteri tid uden flash, batteri tid på 4 med flash installeret.

sådanne argumenter vil få flash ned. HTML5 bliver bakket op af flere store spillere på markedet, Apple, YouTube (Google) osv. jeg tror vi vil se meget meget mere HTML5 i de næste par år, som "draft", ligesom vi havde N-wireless i flere år før den endeligt blev færdig (N-draft, remember?)
Jeg er selv webudvikler og har allerede vendt mig til de nye kortere HTML5 tags for javascripts og headers...når noget på den måde bliver nemmere blivere det også brugt hurtigere, samme gælder udskiftning af Flash og Silverlight...det er nemt at lave noget CSS animation osv. uden at skulle have tegnedrengen oppe for at få udvikler værktøj---and I could go on...
Gravatar #8 - h8x0r
4. nov. 2010 10:19
dan1el (7) skrev:
Jeg sad og læste Ars Technicas review af den nye Macbook Air uden flash preinstalleret, de noterede sig 5-6 timers batteri tid uden flash, batteri tid på 4 med flash installeret.

Jeg har nogenlunde samme erfaring i den størrelsesorden når man sidder og surfer på internettet med adblock slået fra og til. (90% flash indhold er reklamer)
Gravatar #9 - Windcape
4. nov. 2010 10:20
fidomuh (6) skrev:
Det er brugbart og kan en masse fancy ting, men det goer ikke sproget i sig selv, nice.
Jo, faktisk er JavaScript et rimelig nice sprog.

Problemet er at de fleste udviklere er så utrolig dårlige til closures :p
Gravatar #10 - fennec
4. nov. 2010 10:25
#6
Kan ikke helt se hvorfor syntaxen i JS skulle være "skræmmende"?

Det er da en ret standard syntax, som ligner de fleste andre sprog (java, php, c#, c+ osv.). Eneste minus jeg har med JS, er at man ikke typecaster variablerne (int, string osv). Men ellers fungere
function miFunktion()
{
}

for(i=0;i<10;i++)

if(i == 10)

i++

og alt andet syntax, som alle andre sprog.

Men jo. Sproget er et niveau under vores "normale" programmeringssprog.
Gravatar #11 - mstify
4. nov. 2010 10:57
#10: På overfladen minder JS syntax om andre C-inspirerede sprog, men prøv at dyk under motorhjelmen og se hvad der foregår - tag bare en ting som at alt er implementeret som dictionaries som man kan udvide efter smag og behag (prototyping), så holder lighederne med de øvrigt nævnte sprog vist ret hurtigt op :p

JS er meget anvendt og har fået stor indflydelse på webindhold, men smukt - det har det sgu aldrig været :)
Gravatar #12 - Windcape
4. nov. 2010 11:16
#11

Syntaksen kan diskutteres. Implemetering af prototyping og closures i JavaScript er virkelig smukt, og ofte meget kort og klart kode i forhold til andre sprog.
Gravatar #13 - fidomuh
4. nov. 2010 11:18
#9/10

What #11 said.

Dertil kommer saa at jeg flere gange har oplevet at noget JS koerte foer noget andet, selvom det kom efter i selve koden.
Ioevrigt baseret paa hvilken browser man brugte.

Det gjorde det ret ubrugeligt til det formaal.

#12

Kort kode?
Oh wait, det er noget med at du godt kan lide Hungarian Notations, ikke? :P

Om kode er kort eller lang er 110000% ligegyldigt. Det vigtige er at du formaar at skrive variabel- og funktionsnavne der giver mening.
Gravatar #14 - cryo
4. nov. 2010 11:28
#11 de fleste andre dynamiske sprog minder en del om JavaScript, inkl. Python og Ruby. Jeg kan heller ikke se problemet; sproget har en lidt pudsig syntaks, men det er der mange andre brugbare sprog som har. Det er et spørgsmål om vane.
Gravatar #15 - fidomuh
4. nov. 2010 11:31
#14

Men nu snakker vi ikek om at alle andre sprog er grimme, blot om at JS er det :D
Gravatar #16 - Bllets
4. nov. 2010 11:42
#14
Og i tillæg til #15, så vidt jeg ved så findes der masser af tilfælde hvor der ikke rigtig er nogen andre muligheder end JS, og derfor har det betydning :)
Gravatar #17 - Windcape
4. nov. 2010 11:49
fidomuh (13) skrev:
#12

Kort kode?
Oh wait, det er noget med at du godt kan lide Hungarian Notations, ikke? :P

Om kode er kort eller lang er 110000% ligegyldigt. Det vigtige er at du formaar at skrive variabel- og funktionsnavne der giver mening.
Det er vigtig at koden er forståelig og læsbar.

F.eks. hvad synes du der er uklart i følgende kode?

var submitButton =
document.getElementById("SubmitButton");

submitButton.OnSubmit = function(event) {
...
}


Det er letlæselig og letforståelig kode. Prøv at sammenligne med f.eks. PHP eller Java, og se hvordan de håndtere events.

Og lidt læsning til jer som ikke forstår closures endnu: http://en.wikipedia.org/wiki/Closure_(computer_sci...
Gravatar #18 - HenrikH
4. nov. 2010 11:53
fidomuh (13) skrev:
Dertil kommer saa at jeg flere gange har oplevet at noget JS koerte foer noget andet, selvom det kom efter i selve koden.
Ioevrigt baseret paa hvilken browser man brugte.

Ligesom det er HTML's skyld, at HTML kode ikke altid opfører sig ens i en gammel IE eller en gammel Mozilla browser, ja det er da en helt fair udlægning, eller noget .... -_-
Gravatar #19 - spejlkugle
4. nov. 2010 11:54
Når man som udvikler siger, at "man hader JS", så er det sjældent selve sprogets syntaks, der er er problemet. Som folk allerede har nævnt et par gange, så er syntaksen stort set det samme som alle andre script sprog.

Min personlige er erfaring er mere, at det kan være næsten umuligt at debugge, når der er er fejl i koden (ingen compiler == debuggin only at runtime). En tastefejl i et variabel navn vil, f.eks. ikke melde fejl, der bliver blot oprettet en lokal variable med det "forkerte" navn, hvor efter resten af koden opfører sig uforudsigeligt, da den så prøver at bruge en uinitialiseret variabel.

Self kan man sagtens steppe igennem sin JS kode, men det kan så kun gøres live - når man har lagt hele skidtet op på den server det skal køre fra :S
Gravatar #20 - Windcape
4. nov. 2010 11:57
#19

Det er straks mere relevant. Og ja, JavaScript uden JQuery er et mindre mareridt at arbejde med. DOM forskellene i browserne osv. er utrolig fustrerende.

Og mangle på udviklingsværktøjer gør hurtigt C# (SL) / ActionScript (Flash) til mere attraktive udviklingsplatforme.

Hvis HTML5/Canvas skal overtage Flash/Silverlight's roller for spil/ria, så skal der bedre udviklingsværktøjer til end hvad vi har i dag. Specialt profilers vil være yderest relevant , hvis vi også skal optimere til det stigende marked af smartphones.
Gravatar #21 - Justin
4. nov. 2010 11:57
dan1el (7) skrev:
Jeg sad og læste Ars Technicas review af den nye Macbook Air uden flash preinstalleret, de noterede sig 5-6 timers batteri tid uden flash, batteri tid på 4 med flash installeret.

sådanne argumenter vil få flash ned. HTML5 bliver bakket op af flere store spillere på markedet, Apple, YouTube (Google) osv. jeg tror vi vil se meget meget mere HTML5 i de næste par år


var der nogen af testerne der gik ind på sider der havde aktivt indhold i HTML5 for af se om HTML5 gav en bedre eller dårligerer batteri tid ???
Gravatar #22 - spejlkugle
4. nov. 2010 11:57
Windcape (17) skrev:
fidomuh (13) skrev:
#12

Kort kode?
Oh wait, det er noget med at du godt kan lide Hungarian Notations, ikke? :P

Om kode er kort eller lang er 110000% ligegyldigt. Det vigtige er at du formaar at skrive variabel- og funktionsnavne der giver mening.
Det er vigtig at koden er forståelig og læsbar.

F.eks. hvad synes du der er uklart i følgende kode?

var submitButton =
document.getElementById("SubmitButton");

submitButton.OnSubmit = function(event) {
...
}


Det er letlæselig og letforståelig kode. Prøv at sammenligne med f.eks. PHP eller Java, og se hvordan de håndtere events.

Og lidt læsning til jer som ikke forstår closures endnu: http://en.wikipedia.org/wiki/Closure_(computer_sci...


Det er så heller ikke korrekt Hungarian Notation, da du ikke har type bestemmelse på din "knap variabel" :)
Det illustrerer så også et af mine store beefs med JS - nemligt at det ikke er type stærkt ;)
Gravatar #23 - spejlkugle
4. nov. 2010 11:59
#20

Ja, JQuery gør det lidt mindre smerte fuldt at arbejde med :D
Gravatar #24 - Windcape
4. nov. 2010 12:02
spejlkugle (22) skrev:
Det er så heller ikke korrekt Hungarian Notation, da du ikke har type bestemmelse på din "knap variabel" :)
Det illustrerer så også et af mine store beefs med JS - nemligt at det ikke er type stærkt ;)
Jeg bruger ikke hungarian notation. Det er fidomuh's kollegaer som er fortaler for det, og vi har haft en diskussion om det tidligere.

fidomuh er ikke selv udvikler.

Jeg foretrækker at bruge notation på UI elementer. "submit" er for ambigious for en variable af et UI element. "submitButton" er bedre.

Hungarian Notation ville være mere ala. "lbtnsubmitbtn" (local button submit button).
Gravatar #25 - brummie
4. nov. 2010 12:05
Fremtiden for HTML5, Flash og Silverlight er at de vil co-eksistere i den forselig fremtid med mindre Microsoft købe Adobe og stoppe udvikling af enten Flash eller Silverlight. Det er muligvis derfor Microsoft interessere sig for hvad vi udvikler synes om de forskellige teknologier. Der vil gå mange år før HTML5 har en ecosystem så etableret som Flash. På samme tid, arbejde Adobe på en framework sådan at man kan author i Flash og publicere til HTML5. Så i fremtiden en Flashudvikler vil kunne publicere den samme indhold til iOS, swf eller HTML5, ikke for at glemmer AIR, som er noget helt andet til HTML5, en selvstandig program som køre uden browser.

#2 Jeg tror faktisk ActionScript er den mest upopulære sprog blandt programmører, eller dvs. dem som ikke kan det ;-)
Gravatar #26 - spejlkugle
4. nov. 2010 12:10
# 24
Hvis du "camelback caser" den knaps navn, så er jeg helt enig :)

Det jeg mente med type stærkt er mere, at IMO burde man ikke kunne initialisere variabler uden at fortælle hvad for en type det skal være.

Et eksempel:

var foo = 4;
var foo : Int = 4;

Begge dele er fuldt legale i de fleste ECMAScript agtige script sprog. Jeg kan bare bedre lide den sidste udgave ;)
Gravatar #27 - Windcape
4. nov. 2010 12:12
spejlkugle (26) skrev:
Det jeg mente med type stærkt er mere, at IMO burde man ikke kunne initialisere variabler uden at fortælle hvad for en type det skal være.
Jeg ved godt hvad static typing er :p

Men jeg tror ikke det ville give nogen special fordel i JavaScript, i forhold til de ulemper det vil give.
Gravatar #28 - fidomuh
4. nov. 2010 12:12
#17

Men den slags "kort kode" har alle andre sprog ogsaa.
Saa hvad mener du med "kort kode"?

#18

Selvfoelgelig er det ikke det, det var nu mest for at tage en mere praktisk tilgang til maade JS koeres paa.

#24

Jeg bruger ikke hungarian notation. Det er fidomuh's kollegaer som er fortaler for det, og vi har haft en diskussion om det tidligere.


Hverken jeg eller nogen som jeg vil kendes ved er fortalere for HN.
Det er dig der taler om "kort kode". .... :)

fidomuh er ikke selv udvikler.


Jeg er udvikler nok til at hade JS.

Hungarian Notation ville være mere ala. "lbtnsubmitbtn" (local button submit button).


Kort kode! Wee! .......... eller det var ikke det du mente med kort kode? :D
Gravatar #29 - Windcape
4. nov. 2010 12:19
fidomuh (28) skrev:
Men den slags "kort kode" har alle andre sprog ogsaa.
Nej, det har de så ikke. Det er langt fra alle sprog som har closures, og mange af dem har en gyselig bloated syntaks for at gøre det (f.eks. PHP og Java).

JavaScript er dermed ikke grimt, men smukt!

Ellers må du jo give et eksempel på hvad du mener er et smukt sprog.

fidomuh (28) skrev:
Det er dig der taler om "kort kode". .... :)
Kort kode og hungarian notation har intet med hinanden at gøre.

fidomuh (28) skrev:
Jeg er udvikler nok til at hade JS.
Du hader vel alle programmeringssprog så? Ellers må du jo forklare hvad du præcist hader ved JavaScript.

fidomuh (28) skrev:
eller det var ikke det du mente med kort kode? :D
Nej.

Kort og elegant kode er f.eks. at bruge closures til filtering, frem for at skrive en iteration.


var supers = debate.Users.filter(function(user) {
return user.Karma == "Super";
});


Versus:


var superUsers = [];
var i = 0;
for (var user in users)
{
if (user.Karma == "superUsers") {
superUsers[i++] = user;
}
}
Gravatar #30 - spejlkugle
4. nov. 2010 12:21
#27

Njooaaahhh ... Så længe man er fuldstændigt sikker på, hvad for en type objecter man har gang i (eller har lidt fail-safe, med et par type checks og såen), så man ikke komme til at kalde/adde events til ting, der ikke understøtter det, så går det jo fint med Dynamic Typing.

Min personlige mening er bare, at det ødelægger læsbarheden af koden, da man enten skal have et temmeligt godt kendskab til den eller steppe sig frem til hvor ens dynamiske variabel blive brugt, så man kan se hvad det er.

Så kort fortalt vil jeg mene:
Dynamic Typing --> Hurtigere udvikling + Besværlig debugning
Static Typing --> Langsommere udvikling + Mindre besværlig debugning.
Gravatar #31 - Windcape
4. nov. 2010 12:24
#30

Static Analysis kan være en hjælp, men jeg tvivler på det ville gøre den store forskel i det domain javascript benyttes i.

dynamisk typing er heller ikke en hindring for debugging. Se bare dynamic i C#. Fungere fint med Visual Studio's debugger.
Gravatar #32 - spejlkugle
4. nov. 2010 12:32
#31
Dynamic typing i JS fungerer såmen også fint i Visual Studio's debugger.
Lige det eksempel jeg postede, er nok heller ikke så svært at gennemskue. :)
Det langhårede begynder først, når man kaster rundt med instanser af hjemme bryggede klasser og lign ;)
Gravatar #33 - Lynge
4. nov. 2010 12:52
Jeg ved ikke rigtig om jeg hader JS. Jeg kan bedre lide Python, men så slemt synes jeg nu heller ikke JS er. Så længe jeg kan bruge jQuery eller lignende så går det.

Det eneste jeg er stødt på som jeg vil kalde en mangel er:

Ingen support for named arguments. Kun positional.
Og ingen nem måde at have default værdier for de arguments.

Hvis bare JS kunne adoptere de 2 ting fra Python, ville jeg personligt være meget gladere for sproget.
Gravatar #34 - mstify
4. nov. 2010 12:55
#29: Closures er cool nok og findes da også i en eller anden afart i de fleste moderne sprog, men om et sprog understøtter closures eller ej er vel ikke det der afgør om det er et "smukt" eller "grimt" sprog - men det er selvfølgelig meget subjektive udtryk og vi lægger nok mange forskellige ting i de 2 ord :-)

Faktisk mener jeg at closures er med til at gøre et sprog "grimmere", fordi det introducerer flere måder at skrive den samme ting på og kan være en forståelsesmæssig mere kompleks syntax, men det er da en meget lækker måde at skyde genvej på i mange sammenhænge :)

For mig er et smukt sprog et "clean" sprog hvor syntaxen er letlæselig, letgennemskuelig og konsistent og hvor man ikke har rodet en masse koncepter sammen og rystet posen og hvor det er tydeligt at dem der har implementeret det har tænkt sig om hele vejen igennem og ikke bare er sprunget over hvor gærdet var lavest :-)

Som eksempel syntes jeg at første version af C# var et smukt sprog tilbage i år 2001, men siden har man blandet al for mange paradigmer sammen i det og der er kommet al for mange fancy sprogkonstruktioner der godt nok er utrolig praktiske, men som også er med til at fjerne elegancen og simpliciteten i C# 1.0 - det er blevet langt mere rodet og obfuskeret og fået en langt stejlere indlæringskurve i de seneste versioner.

MEN det betyder dog ikke at jeg ikke foretrækker at kode C# 4.0 fremfor C# 1.0 - det er langt mere funktionelt og praktisk anvendeligt, men det er bare ikke helt så smukt længere hvis du forstår :-)

Set i det lys, mener jeg ikke at hverken sprog som Javascript eller PHP for den sags skyld nogensinde har kunnet klassificeres som "smukke" sprog.
Gravatar #35 - Windcape
4. nov. 2010 12:57
mstify (34) skrev:
Faktisk mener jeg at closures er med til at gøre et sprog "grimmere",
Det er jeg så lodret uenig. Closures gør om noget sproget meget smukkere, og mere letlæseligt.

Og C# 1.0 er på ingen måde elegant, i forhold til C# 3 !
Gravatar #36 - mstify
4. nov. 2010 12:59
#35: Det siger nok mest om at vi er uenige om hvad der definerer et "smukt" sprog :-)
Gravatar #37 - Windcape
4. nov. 2010 13:02
#36

Altså , der er jo folk som synes at Lisp er elegant. Og folk der synes at COBOL er smukt.

'nuff said.
Gravatar #38 - ockley
4. nov. 2010 13:08
Den platform der klarer sig bedst i fremtiden, er nok den der kan forholde sig anderledes til problematikken end I gør det i, stort set alle 37 kommentarer indtil nu.

Er der nogen der har nogle mere grundlæggende overvejelser? ;-)
Gravatar #39 - mstify
4. nov. 2010 13:10
#37: Men vi kan vel godt blive enige om at f.eks. generics, lambda expressions, extension methods og LINQ, som er noget af det der er kommet til i de senere versioner er med til at gøre C# til et mere komplekst og mindrer simpelt/letforståeligt sprog?
Gravatar #40 - Windcape
4. nov. 2010 13:13
#39

Nej, det kan vi ikke. Jeg synes overhovedet ikke at generics/expressions/extension-methods eller LINQ som DSL gør sproget mere komplekst overhovedet.

Generic Lists er fuldstændig naturlige. Det er faktisk unaturligt at skulle typecast i første omgang.

Lambda og Closures er grundlæggende matematiske koncepter.

Og extension methods kan betragtes fuldstændig transparent som statiske metoder, men som gør koden mere læsbar, og tillader dig at chaine-statements. Det er langt fra kompleksisteten af monads i Haskell.

Og LINQ er ikke mere forvirrende end SQL. Det jo bare yet-another-dsl.
Gravatar #41 - mstify
4. nov. 2010 13:14
#38: Er man en smule pragmatisk anlagt synes jeg slet ikke det er så svært. Hvorfor satse på én hest, når man uden problemer kan bruge hver af teknologierne til de ting de hver især er gode til?

Det er oplagt at HTML5 kommer til at erstatte mange af de ting som vi idag er tvunget til at bruge Silverlight og Flash for at kunne lave, men HTML5 er samtidig også lidt en "laveste fællesnævner" teknologi, som man har kunnet blive enige om på tværs af en masse organisationer og virksomheder og vil feature-mæssigt aldrig kunne overhale Silverlight og Flash og der vil stadig være ting der kun kan lade sig gøre i en af disse teknologier.

Derudover skal vi liiige have IE9 udgivet og udbredt til en frygtelig masse IE brugere, førend HTML5 overhovedet er interessant til andet end Showcase apps.
Gravatar #42 - ockley
4. nov. 2010 13:47
#41: Det minder meget om min opfattelse af problematikken. HTML vil blive ved med at udvikle sig ... HTML5 er ikke nogen undtagelse på det punkt.

Efterhånden som den udvikler sig, vil den kunne overtage opgaver, som eller har været afhængige af plug-ins. I sin vækst er den må den forholde sig til at den er et opmærkningssprog, og ingen grundlæggende er interesseret i at den har en indflydelse på hvordan indholdet ser ud, men kun hvad indholdet er (canvas-tag er begrebsmæssigt allerede et skråplan) :-). CSS skal så løfte opgaven med at style indholdet og vil derfor skylle ned over siden og "farve" den ind efter de regler der er sat op.

I forlængelse af alt dette kommer JS og tilfører interaktiviteten, der (sammen med andre frameworks) kan/skal puste liv i det hele.

Denne symfoni vil, når den modnes, kunne bringe os smukt layoutede oplevelser på tværs af platforme, men det er et stort skib at dreje, og kravene til alle delkomponenterne stiger, så snart de er ved at opfylde deres mål.

... og det er en af grundene til vi er nødt til at have begge dele, tror jeg
Gravatar #43 - røvskæg
4. nov. 2010 21:59
Windcape (17) skrev:

F.eks. hvad synes du der er uklart i følgende kode?

var submitButton =
document.getElementById("SubmitButton");

submitButton.OnSubmit = function(event) {
...
}


Det er letlæselig og letforståelig kode. Prøv at sammenligne med f.eks. PHP eller Java, og se hvordan de håndtere events.



document.getElementById("SubmitButton").onsubmit = submit;
... bla bla ...
function submit(event) {
...
}


Om kode er let læseligt eller ej, kommer vel an på hvor velbevandret men er i sproget og hvem der har skrevet det.

Windcape (9) skrev:
Problemet er at de fleste udviklere er så utrolig dårlige til closures :p


Kan du(eller anden) komme med et eksempel, hvor brug af closures er nødvendigt, eller bare at foretrække fremfor en anden løsning ?
Gravatar #44 - Windcape
4. nov. 2010 22:04
røvskæg (43) skrev:
Om kode er let læseligt eller ej, kommer vel an på hvor velbevandret men er i sproget og hvem der har skrevet det.
Det er helt rigtigt. Og de færreste er velbevandrede i JavaScript, og vil derfor som fidomuh måske udtrykke at sproget er forvirrende og grimt.

Selv Lisp giver mening, hvis man forstår closures og sexp.

røvskæg (43) skrev:
Kan du(eller anden) komme med et eksempel, hvor brug af closures er nødvendigt, eller bare at foretrække fremfor en anden løsning ?
Jeg synes mit andet eksempel, i #29 , illusterer pointen helt fint.

Det er faktisk bedre performance i sprog der supporter iterators (som f.eks. C#), da du ikke laver en in-memory cache af objekterne medmindre du explicit beder om det.

Derudover kan vi jo vel argumentere for brugen af dem i forbindelse med concurrent-programming.
Gravatar #45 - mstify
4. nov. 2010 22:09
#44:
Det er helt rigtigt. Og de færreste er velbevandrede i JavaScript, og vil derfor som fidomuh måske udtrykke at sproget er forvirrende og grimt.


Vil du også mene at hvis blot man er velbevandret nok i tysk og taler det flydende, så bliver det til et smukt sprog? :-)
Gravatar #46 - Windcape
4. nov. 2010 22:21
mstify (45) skrev:
Vil du også mene at hvis blot man er velbevandret nok i tysk og taler det flydende, så bliver det til et smukt sprog? :-)
Man taler ikke programmeringssprog.

Dårlig analogi! Prøv igen.
Gravatar #47 - røvskæg
4. nov. 2010 22:24
Windcape (44) skrev:
Jeg synes mit andet eksempel, i #29 , illusterer pointen helt fint.


Jeg kan ikke helt følge koden i #29. Kan du ikke prøve at bruge tilsværende variable navne i de to eksempler.

Hvad er debate, Users og filter ? Er filter en JScript function ?
Gravatar #48 - Windcape
4. nov. 2010 22:28
røvskæg (47) skrev:
Kan du ikke prøve at bruge tilsværende variable navne i de to eksempler.
Det gør jeg da allerede!

dog skulle "users" havde været "debate.Users"

debate = liste af indlæg, Users = liste af brugere.

filter skal representere funktionalitet til at filterer en liste for elementer ud fra et predikat. Det kan godt være det er en JQuery funktion, men det ændre ikke på ideen med at bruge closures.
Gravatar #49 - Windcape
4. nov. 2010 22:29
Mere nøjagtig brug af variablenavne:


var superUsers = users.filter(function(user) {
return user.Karma == "Super";
});


Versus:


var superUsers = [];
var i = 0;
for (var user in users)
{
if (user.Karma == "superUsers") {
superUsers[i++] = user;
}
}
Gravatar #50 - røvskæg
4. nov. 2010 22:54
Nå okay ! Nu snakker vi jo både om hvad der er smukkest og hvad der er nødvendigt.
Men hvis man må bruge funktioner der ikke indgår i det "smukke", så vil jeg da mene det smukkeste vil være :

var superUsers = getUsersWithSuperKama( users );


Hvad er forskellen mellem OOP(Obejekter med variable og funktioner) og closures i Javascript ?


function getUsersWithSuperKama(users)
{
var superUsers = [];
for (var user in users)
{
if (user.Karma == "superUsers")
superUsers.push(user);
}
return superUsers;
}

Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login