Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (32)
Emner Dart, GOTO

Dart: Dynamisk Statisk Programmering

Af Patrick Mylund Nielsen 21. maj 2012 kl. 10:00

GOTO Copenhagen er officielt startet, og den første dags keynote kommer fra Kasper Lund, en af udviklerne bag programmeringssproget Dart, "structured programming for the web", der bringer koncepter som classes og et stort standard library til browsere. Det kan køre i browsere med en Dart VM (det vil sige Chrome, i det mindste i starten), men kompileres også til JavaScript.

Et af de aspekter ved Dart, jeg synes er mest interessant, er at det er både dynamisk og statisk, eller "optionally typed", altså at man selv kan vælge om man vil føruddeklarere en variabel foo som en int og bar som en string, eller om man vil lade Dart finde ud af det (hvilket den teknisk set gør ligemeget hvad.) Et af de største argumenter for eller mod et givet programmeringssprog er ofte at det er dynamically typed, og derfor "let"/"meget produktivt at programmere i" (eller "ustabilt"/"urobust"), eller at det er statically typed, og derfor "robust" (eller "for mange linjer kode"), så det er interessant at se et sprog—specielt et webprogrammeringssprog—der tilfredsstiller begge grupper brugere.

Hvad synes I? Er Dart noget, I vil programmere i, specielt når det ændres mindre regelmæssigt? Er dets static typing strengt nok (når type-deklarationer ikke har nogen indflydelse på runtimen—en streng med værdien 42 kan stadig bruges—så de mest er til dokumentations- og advarselsformål.)

Er der nogen, der har prøvet både Google's Go og Dart—og hvis så, hvad synes I om de forskellige modeller (Go's static typing og interfaces vs. Darts optional typing og traditionel OOP.)

Jeg har personligt brugt C, Python, Ruby og Go i mange år, og jeg savner mange af koncepterne fra begge genrer af programmeringssprog når jeg skriver i f.eks. JavaScript, og oplever at jeg bruger lang tid på både at finde ud af hvordan en eksisterende JavaScript-applikation virker, og på at finde mystiske fejl der opstår på grund af JavaScripts mangel på typechecking—så Dart er noget jeg vil eksperimentere med, og det bliver interessant at se hvordan ydeevnen bliver i JavaScript-form i de browsere, der ikke inkluderer en VM.

Nogle eksempler på "mystik fra JavaScript" (fra Gary Bernhardt's talk Wat fra CodeMash 2012):

Hvad er resultatet af [] + []?
(tom streng)

Hvad er resultatet af [] + {}?
([object Object])

Hvad er resultatet af {} + []?
(0)

Hvad er resultatet af {} + {}?
(NaN)

Hvad er resultatet af Array(6).join("foo" - 1) + " Batman!"
("NaNNaNNaNNaNNaNNaN Batman!")

Send Tweet
Udskriv
Billede af Patrick Mylund NielsenOm Patrick Mylund Nielsen

Patrick er sikkerhedschef ved Evidon, Inc. i New York, har arbejdet med softwareudvikling, optimering og sikkerhedstesting, men specialiserer sig i dag i app- og netværkssikkerhed, kryptologi, fysisk sikkerhed og social engineering. Patrick blogger om programmering og it-sikkerhed

Follow @pmylund

Kommentarer (32)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Kræn Hansens billede
Kræn Hansen 21. maj. 2012 - 10.31
 
Super interessant og relevant

Jeg glæder mig til at få fingerene i Dart. Det virker som om Kasper og de andre har gjort sig rigtig mange fornuftige overvejelser, også om det komplicerede økosystem som Dart introduceres i. Jeg håber ikke at det ender i en krig imellem giganter der hellere vil holde på markedsandele end at understøtte fornuftige teknologiske løsninger.
Jeg skal i hvert fald hjem og kode Dart ...

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Allan Ebdrups billede
Allan Ebdrup 21. maj. 2012 - 21.18
 
Nej

Chancen for at Dart nogensinde bliver en success er pt. Alt alt for lille, personligt tror jeg ikke meget på projektet. Det afholder mig dog ikke altid for at afprøve nye ting, hvis de tilbyder noget af fantastisk høj værdi. Men so far har jeg ikke hørt andet end at JavaScript er så slemt og med Dart bliver alting meget nemmere.
Hvis man har dygtige programmører og styr på hvad man laver, kan man sagtens bygge store applikationer i JavaScript.
Hvis du ikke kan det med JavaScript, så kan du nok heller ikke med Dart.
Hvis Dart nu tilbød noget andet og mere som jeg syntes løste nogle udfordringer for mig, så ville jeg kaste mig over det. fx havde en tættere integration med DOM'en så alt var observable. Hvis alle dets indbyggede typer var observable. Hvis den havde indbygget understøttelse for undo/redo med command patternet. Så ville min nysgerrighed være vakt.
Men at badmouthe JavaScript er misforstået, ufatteligt uambitiøst og letkøbt IMHO.

  • Stem op 3
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Robert Voje 21. maj. 2012 - 22.55
 
Hvad er relevant her

Jeg startet med Pascal i starten av firserne, gik så over til Delphi, og derfra til en blanding af PHP, Javascript og til dels pascal (freepascal).

Har aldrig haft store problemer med typechecking i JS, eftersom jeg ikke har problemer med at bestemme (og se i min kode) hvad mine typer skal være.
Måske har jeg en for meget objekt orienteret baggrund, men jeg kan slet ikke se problemet.
JS er et scriptsprog, og fungerer fint nok til det det er beregnet til.

For mig ser det ud til, at Google prøver at gøre JS om til et kompileret sprog, men dem har vi sgu nok af fra før. Mere end nok..

Har du problemer med typecheck, så er problemet efter min mening i dit programmeringsmiljø.

Jeg kan være enig i, at du kan have problemer dersom du insisterer på at benytte Notepad til JS programmering.

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jacob Christian Munch-Andersen 22. maj. 2012 - 16.05
 
Re: Nej

Enig Allan

Dart kan muligvis rette op på nogle af JavaScripts lidt mindre heldige sider, primært performance og typningen. Problemet er bare at disse problemer i det samlede webudviklingsbillede er relativt små, det er HTML og CSS der leverer inkompatibilitet, kontraintuitive funktioner, og funktionalitetshuller i hobetal. Inklusive JavaScript (eller Dart) har man 3 forskellige syntakser, hvilket ikke gør sagen bedre.

Kunne vi få HTML erstattet af noget bedre, så tror jeg måske at der er gevinst.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Kristian Dalgård 22. maj. 2012 - 16.16
 
ES.next Harmony

Jeg vil langt hellere satse mine penge på de fremtidige udgaver af JavaScript, som efter alt at dømme kommer til at stå mål med Dart.

Udviklingen inden for JavaScript/HTML5 de sidste to-tre år er noget af det bedste, der er sket for IT nogensinde, godt hjulpet på vej af en voksende bevågenhed omkring design patterns i miljøet, herunder CommonJS.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Nikolaj Brinch Jørgensen 22. maj. 2012 - 16.26
 
JavaScript vs Dart

JavaScript er ikke perfekt, og det bliver Dart heller ikke.
Al den dårlige JavaScript kode der er lavet bliver ikke bedre i Dart. Folk der ikke kan skrive ordenlig kode, om det er i JavaScript eller noget andet, kan heller ikke skrive ordenlig kode i Dart.
Det ændrer ikke noget.
Folk der ikke kunne lave kvalitetsløsninger i Java/JEE, kan heller ikke i Rails eller Grails. (A fool with a tool.....).
Om det er så er mere produktivitetsfremmende at lave Dart i stedet for JavaScript, tja, det vil jeg stille mig tvivlende overfor. Jeg tager hatten af for at Google forsøger at gøre noget ved JavaScript, men jeg tror de forsøger at løse problemet et forkert sted. GWT var i hvert fald helt forkert (og Java som udgangspunkt var også temmelig underligt - meget umoderne og verbose sprog med en noget stagneret udvikling).

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 22. maj. 2012 - 21.13
 
Re: Nej

Hvis man har dygtige programmører og styr på hvad man laver, kan man sagtens bygge store applikationer i JavaScript. Hvis du ikke kan det med JavaScript, så kan du nok heller ikke med Dart.


Man kan ALT med assembler. Your point...??

At facilitere løsningen af opgaver, med et bedre sprog end nuværende status quo, kan alt andet lige kun være et plus, i min bog.

I min optik er Dart interessant fordi:
- Det lover bedre, hurtigere, nemmere og mere robust web programmering end med javascript.
- Det er med vilje lavet meget pragmatisk, således at så mange som muligt, kan springe på så let og så hurtigt som muligt.

Om Dart vil få success må tiden vise. Det er som bekendt langtfra altid de bedste løsninger der "vinder". Men jeg har i hvert fald tænkt mig at prøve det, når jeg får tid... (suk).

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 22. maj. 2012 - 21.16
 
Re: JavaScript vs Dart

GWT var i hvert fald helt forkert


Hvorfor? (ærligt spørgsmål)

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Nikolaj Brinch Jørgensen 22. maj. 2012 - 21.45
 
Re: JavaScript vs Dart

Hvorfor? (ærligt spørgsmål)


En compiler til UI koden, er et tilbageskridt - der har Dart klart fat i den rigtige tilgang.
Java som input, var en løsning der handlede om hvilket sprog mange kendte til, ikke hvilket sprog der var godt til opgaven.
UI beskrives på web deklarativt i en kombination af HTML/CSS, med dynamiske elementer i JavaScript, ikke i JavaScript imperativt i Java. Se hvor lang tid Gmail er om at loade (XML er faktisk ikke så tosset til UI, ligesom det heller ikke er det til dokumenter).
Debugging ender tit i GWT genereret output, hvilket så igen tager uforholdsmæssigt lang tid at rode rundt i.
GWT er meget besværligt at kombinere med andre JavaScript frameworks (JavaScript dårligdom, som GWT ikke løser).
GWT er en tung klods til internet brug (den er bedre til Intranet-brug).
Ingen nogen ordenlig cross browser løsning på styling issues (hvilket er noget af det allervigtigste i web udvikling).

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Nikolaj Brinch Jørgensen 22. maj. 2012 - 22.36
 
Re: Nej

Chancen for at Dart nogensinde bliver en success er pt. Alt alt for lille, personligt tror jeg ikke meget på projektet. Det afholder mig dog ikke altid for at afprøve nye ting, hvis de tilbyder noget af fantastisk høj værdi. Men so far har jeg ikke hørt andet end at JavaScript er så slemt og med Dart bliver alting meget nemmere. Hvis man har dygtige programmører og styr på hvad man laver, kan man sagtens bygge store applikationer i JavaScript. Hvis du ikke kan det med JavaScript, så kan du nok heller ikke med Dart.


Dart tilbyder faktisk en hel del. F.eks. er der konstruktioner som type-check (det er optional med du kan få det). Der er interpolerede strenge. Der er klasser og pakker, interfaces mm.

Du kan sågar oversætte det til JavaScript, således at du kan udvikle i et moderne sprog, hvor der kan ræssoneres omkring hvad programmet gør, og så kan det afvikles i moderne browsere som findes nu.
Det er da godt. :-)
Om programmørene er dårlige eller gode har intet med sagen at gøre, derfor skal man da stadigt prøve at benytte bedre og bedre værktøjer.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Casper Bangs billede
Casper Bang 22. maj. 2012 - 22.47
 
Lovende

Dart er blot den seneste der melder sig under fanen for optional dynamic typing. Inden for de sidste par år er dette også set i bl.a. Fantom og C#.

Og jeg er enig, det er dybt pragmatisk at man nu får mulighed for at være statisk når man kan og dynamisk når man skal. Type-systemet skal være en hjælp, ikke stå i vejen. Denne fejl lider f.eks. Java udpræget af og Scala er nærmest paranoid i dets søgen efter det ultimative type-system (upåagtet af hvor svært det så er at bruge korrekt i praksis).

Ingen tvivl om at Dart vil være JavaScript langt overlegent. Det er ikke svært at forestille sig full-stack udvikling hvor server backend (a la node.js) og klient frontend (browser) smelter sammen og tilvejebringer nye brugbare designmønstre som erstatning for model2, MVC og MVP. Bare at se hvor nemt asynkron fork-join kan foregå, får jo JavaScript og Java versionen til at ligne tortur (C# har dog lignende support for futures).

Eftersom Google kan rulle Dart ud til 33% af alle browserbrugere på en nat, er der vist heller ingen tvivl om at sproget har bootstrappingen på plads. At de fokuserer på cross-compilation synes at være et nødvendigt onde, da de er nødt til at understøtte 100% af markedet.

Udover de lokale danskere er "megastjerner" som Gilad Bracha (medforfatter til Java spec'en) og Joshua Bloch (chef arkitekt på Java libraries) ligeledes involveret. Der må foregå nogle heftige slåskampe imellem disse to, der står diametralt modsat når det kommer til type-system. :)

Dog håber jeg på god interoperabilitet med JavaScript (eller rettere JSON, som er samtlige alternativer underlegent) og en modernisering (eller rettere, simplificering) af DOM. Nå ja, og så kunne det også være interesant at erstatte Java med Dart, på Android.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 23. maj. 2012 - 07.06
 
Re: JavaScript vs Dart

En compiler til UI koden, er et tilbageskridt - der har Dart klart fat i den rigtige tilgang. Java som input, var en løsning der handlede om hvilket sprog mange kendte til, ikke hvilket sprog der var godt til opgaven. UI beskrives på web deklarativt i en kombination af HTML/CSS, med dynamiske elementer i JavaScript, ikke i JavaScript imperativt i Java. Se hvor lang tid Gmail er om at loade (XML er faktisk ikke så tosset til UI, ligesom det heller ikke er det til dokumenter). Debugging ender tit i GWT genereret output, hvilket så igen tager uforholdsmæssigt lang tid at rode rundt i. GWT er meget besværligt at kombinere med andre JavaScript frameworks (JavaScript dårligdom, som GWT ikke løser). GWT er en tung klods til internet brug (den er bedre til Intranet-brug). Ingen nogen ordenlig cross browser løsning på styling issues (hvilket er noget af det allervigtigste i web udvikling).


Foregår måske det meste "webudvikling" ikke i UI compilere, netop for at isolere folk fra HTML (og i mindre grad CSS og javascripts) dårligdomme? ASP.NET? JSP? JSF? Etc...
Jeg troede netop at en af GWT's styrker var at glatte en masse browsernykker ud, tager jeg fejl?
Desuden siger GWT at man kan debugge direkte i java, tager jeg fejl?
Jep, Gmail og lign. tager lang tid at loade. Min fornemmelse er at det gør sig gældende for alle programmer der baserer sig på massive mængder javascript, uden at kunne sige det med sikkerhed.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 23. maj. 2012 - 07.18
 
Re: Lovende

Dog håber jeg på god interoperabilitet med JavaScript (eller rettere JSON, som er samtlige alternativer underlegent) og en modernisering (eller rettere, simplificering) af DOM. Nå ja, og så kunne det også være interesant at erstatte Java med Dart, på Android.


Jeg tror ikke man skal regne med "interoperationalitet" med javascript. Det er to forskellige sprog, og man må vælge det ene eller andet, til non-trivielle opgaver.
Jeg tror nok at der allerede er et JSON library, det er selvfølgelig oplagt (du mente nok overlegent snarere end underlegent).
Mht. til DOM, så er min forståelse at den er W3C herre over, men Dart's DOM api, som man programmere imod når man koder til browseren, "glatter" DOM'en væsentligt ud, og gør den mere behagelig at arbejde med. Jeg mener at deres mentale model her er Jquery som udgangspunkt.
Som jeg læser det, har "mobile" fra starten været en af deres bullits mht. Dart, så mon ikke vi snart ser et Dart VM til en Android browser....

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Casper Bangs billede
Casper Bang 23. maj. 2012 - 08.35
 
Re: Lovende

Jeg tror ikke man skal regne med "interoperationalitet" med javascript. Det er to forskellige sprog, og man må vælge det ene eller andet, til non-trivielle opgaver. Jeg tror nok at der allerede er et JSON library, det er selvfølgelig oplagt (du mente nok overlegent snarere end underlegent).


Godt fanget, jeg mente selvf. overlegent. ;)

Som jeg læser det, har "mobile" fra starten været en af deres bullits mht. Dart, så mon ikke vi snart ser et Dart VM til en Android browser....


Uden tvivl. Jeg tænkte dog mere på at lade Dart erstatte Java som platform sprog. Det er efterhånden meget svært at få øje på Google ingienører i diverse JSR ekspert grupper, hvilket lugter af at Google (ligesom Microsoft iøvrigt) har brændt nallerne rigeligt og istedet ønsker at være herre over egen skæbne. Måske deres drøm er Dart som frontend sprog og Go som system sprog.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Nikolaj Brinch Jørgensen 23. maj. 2012 - 09.47
 
Re: JavaScript vs Dart

Foregår måske det meste "webudvikling" ikke i UI compilere, netop for at isolere folk fra HTML (og i mindre grad CSS og javascripts) dårligdomme? ASP.NET? JSP? JSF? Etc...


Nej det er templating mekanismer der tilbyder en transparent metode til webopbygning, og det er ganske anderledes. Det er stadig en deklarativ tilgang til mediet. Deusden er der total transparens til JavaScript og CSS fra dette lag.

Jeg troede netop at en af GWT's styrker var at glatte en masse browsernykker ud, tager jeg fejl?


Det kan godt være det er en styrke, men det er ikke formålet. Browser-impedans kan klares meget lettere uden en klods som GWT. Men alle frameworks er selvfølgelig nødt til at tilbyde en løsning på browser-impendans. GWT er ikke bedre eller dårligere end nogen af de mange andre libraries der eksisterer.

Desuden siger GWT at man kan debugge direkte i java, tager jeg fejl?


Ja så længe GWT producerer korrekt output. Men da JavaScript har en mange gange meget udefinerbar opførsel, ender man i JavaScript debuggeren alligevel.
Det er sjældent jeg er nødt til at debugge bytekode når jeg udvikler Java ;-)

Jep, Gmail og lign. tager lang tid at loade. Min fornemmelse er at det gør sig gældende for alle programmer der baserer sig på massive mængder javascript, uden at kunne sige det med sikkerhed


Nemlig, og det kunne jo lugte af, at det måske ikke lige var sagen når nu de fleste browsere er bygget til hurtigt at kunne håndtere UI's lavet på en måde med XHTML, CSS og JavaScript og ikke 100% bygget i JavaScript med DOM-manipulation.
GWT er interessant, da det viser hvor meget man kan opnå ad den vej. Men til udvikling af ret store UI's er det meget svært at ræssonere omkring UI, da det ikke er erklæret, men interativt programmeret.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Nikolaj Brinch Jørgensen 23. maj. 2012 - 09.49
 
Re: Lovende

Uden tvivl. Jeg tænkte dog mere på at lade Dart erstatte Java som platform sprog. Det er efterhånden meget svært at få øje på Google ingienører i diverse JSR ekspert grupper, hvilket lugter af at Google (ligesom Microsoft iøvrigt) har brændt nallerne rigeligt og istedet ønsker at være herre over egen skæbne. Måske deres drøm er Dart som frontend sprog og Go som system sprog.


Heri er jeg helt enig, for Scalas inferiøre type-system, som kun lader 10% (måske højt sat) af udviklere være produktive, kan ikke overvinde Java (min egen holdning naturligvis, men når jeg ser folk sidde i timer og slås med type checkeren, så er det altså meget uproduktivt).
Dart rammer sweet spot med optional dynamic typing, og en meget hurtig specialiseret VM.

  • Stem op 1
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Allan Ebdrups billede
Allan Ebdrup 23. maj. 2012 - 22.10
 
Re: Nej

Man kan ALT med assembler. Your point...??


Min pointe er at jeg har meget svært ved at få øje på noget der gør at Dart rent faktisk kan holde hvad Google lover. Hvis de skulle holde det skal der noget meget mere ambitiøst til en en erstatnig for JavaScript.

Jeg køber det slet ikke. JavaScript er et ret godt programmeringssprog. Jeg tester en teori for tiden og spørger folk der udtaler sig kritisk om JavaScript om hvad det er de ikke kan lide ved det. Og på et meget lille grundlag viser det sig tit at problemerne har noget med DOM'en, HTML, CSS og crossbrowser-issues at gøre, mere end det er JavaScript. Det løser Dart ikke.

At facilitere løsningen af opgaver, med et bedre sprog end nuværende status quo, kan alt andet lige kun være et plus, i min bog. I min optik er Dart interessant fordi: - Det lover bedre, hurtigere, nemmere og mere robust web programmering end med javascript.


Kodeordet her er lover. Så længe ingen har gjort det i praksis er det et håb. Jeg kan ikke få øje på det der skal indfri dette løfte når jeg kigger Dart spec'en igennem. (se i øvrigt citater nedenfor on hvorvidt Dart er godt)

- Det er med vilje lavet meget pragmatisk, således at så mange som muligt, kan springe på så let og så hurtigt som muligt. Om Dart vil få success må tiden vise. Det er som bekendt langtfra altid de bedste løsninger der "vinder". Men jeg har i hvert fald tænkt mig at prøve det, når jeg får tid... (suk).


Lidt citater fra: http://en.wikipedia.org/wiki/Dart_(programming_language)

Apple engineer Oliver Hunt, working on the WebKit project (which powers both Safari and Google's own Chrome browser) has stated:

Adding an additional web facing language (that isn't standardized) doesn't seem beneficial to the project, if anything it seems harmful (cf. VBScript in IE).

Mozilla's Brendan Eich, who developed the JavaScript language, has stated:

I guarantee you that Apple and Microsoft (and Opera and Mozilla, but the first two are enough) will never embed the Dart VM. So 'Works best in Chrome' and even 'Works only in Chrome' are new norms promulgated intentionally by Google. We see more of this fragmentation every day. As a user of Chrome and Firefox (and Safari), I find it painful to experience, never mind the political bad taste.

Det korte af det lange: Dart er en dødssejler som erstatning for JavaScript. Men det kommer nok til at leve et liv som GWT. Så er det bare ærgeligt for de virksomheder der er hoppet med på vognen når Google stopper support for GWT og senere Dart. Man må håbe de har fået værdi nok ud af deres produkt og er klar til at investere i en omskrivning.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 23. maj. 2012 - 22.34
 
Re: Lovende

Måske deres drøm er Dart som frontend sprog og Go som system sprog.


Jeg ved ikke om "drøm" er det rigtige ord, men ideen virker da plausibel, og de snakker da også om de to sprog i den kontekst. Synes forøvrigt også Go er et temmeligt spændende sprog, som ikke bare er "system" længere.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 23. maj. 2012 - 22.43
 
Re: Nej

Min pointe er at jeg har meget svært ved at få øje på noget der gør at Dart rent faktisk kan holde hvad Google lover. Hvis de skulle holde det skal der noget meget mere ambitiøst til en en erstatnig for JavaScript


Lad os nu se, det er early days. Jeg er helt enig i, at noget som på sigt er Chrome-only, IE-only, eller noget-som-helst-andet-only ikke er vejen frem. Det er jo også derfor det første de producerede var en javascript compiler, ellers ville sproget aldrig komme ud. Det er helt sikkert at massen af kørende javascript i dag, er en stor mur at overvinde. Men man har set underligere. Kan du huske pre-ios-og-android dagene, med Windows Mobile? Hvor lang tid er det nu det er siden? Massive teknologi-skift sker jævnligt i IT branchen, sådan er det, og intet er umuligt. Man skal heller ikke undervudere, at de fleste nok ville mene at Dart er teknologisk og brugsmæssigt bedre end javascript, og at mange dagligt bander javascript til helvede. We'll see....

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 23. maj. 2012 - 23.16
 
Kaspers slides

fra hans Goto talk: http://gotocon.com/dl/goto-cph-2012/slides/Keynote_Dart.pdf

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Baldur Norddahl 24. maj. 2012 - 08.27
 
Re: JavaScript vs Dart

Ja så længe GWT producerer korrekt output. Men da JavaScript har en mange gange meget udefinerbar opførsel, ender man i JavaScript debuggeren alligevel. Det er sjældent jeg er nødt til at debugge bytekode når jeg udvikler Java ;-)

Det er s*u også sjældent når man bruger GWT. Faktisk er det ikke sket for mig endnu. Jeg ved ikke hvad du har haft rodet dig ud i, men GWT er efterhånden rimelig modent. Jeg vil sige at i vores projekter virker det bare.

Det er lidt overraskende med alt det GWT hate man læser her. Koder i alle i GWT dagligt og hader det, eller snakker i om noget i har prøvet engang for flere år siden?

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Casper Bangs billede
Casper Bang 24. maj. 2012 - 09.19
 
Re: JavaScript vs Dart

Koder i alle i GWT dagligt og hader det, eller snakker i om noget i har prøvet engang for flere år siden?

Jeg skriver i øjeblikket GWT til daglig, og min holdning er splittet.

På den ene side, er paradigmet fantastisk; at man i sit favorit Java IDE kan udforske API'er og genkende patterns fra andre UI toolkits (editors, renderers, formatters etc.) hvor man rent faktisk kan skrive komponenter og genbruge disse igen senere! Udviklingsmodellen minder meget om Wicket, med den forskel at state holdes på klienten, hvor den efter min overbevisning også hører til. GWT er uden tvivl langt bedre end JSF og lignende overkomplicerede templating teknologier, ingen tvivl om det.

På den anden side, så er omkostningen ved GWT bl.a. at man bliver enddog meget afhængig af sine værktøj, så hver gang Firefox f.eks. opdaterer automatisk (sker en gang om måneden i disse dage), skal man ud og lede efter (eller bygge) en kompatibel Development plugin. Kompilering kan også ende med at tage oceaner af tid. Det største problem er dog nok, at det er enormt svært at integrere et CSS design (man f.eks. har fået stillet tilrådighed af en designer) med GWT/Java komponenter. Og man skal helt sikkert holde sig til standard GWT, og ikke rode sig ud i SmartGWT og GXT der har alt for meget overhead med sig og andre ulemper.

Så GWT er smart, og programmer er nemme at vedligeholde, men det virker nok bedst for større dynamiske data-drevne sider med rigt UI.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Palle Simonsen 24. maj. 2012 - 09.44
 
Kan Dart dette ?

http://eloquentjavascript.net/chapter6.html

Hvis ikke - nothing to see here.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Baldur Norddahl 24. maj. 2012 - 10.34
 
Re: JavaScript vs Dart

Jeg er ikke nogen fan af UI-delen af GWT så det bruger vi ikke i vores projekt. I stedet er vores brugergrænseflade opbygget i ren HTML og CSS - det er sådan vores designere kan lide det (og det eneste de kan finde ud af...). Vi tilføjer så funktionalitet til HTML'en således:

val widget = new HTMLPanel(html)  
RootPanel.get.clear  
RootPanel.get.add(widget)  
val journal = new TextBox  
journal.addChangeHandler{Window.alert("New journal: "+journal.getText)}  
widget.add(journal, "journal_textbox")

Hvor vores HTML-designer har markeret et html element med id="journal_textbox" der hvor han gerne vil have en sådan textbox.

Det genialle er netop at man kan holde state på klient samtidig med at man kan programmere server og klient i samme sprog og som en helhed. Vi har udviklet et JSON API til server-klient kommunikation. Samme API kan også bruges af vores kunder til server-server kommunikation. Det er to fluer med et smæk.

Selve UI design-API'et er der så mange forskellige meninger og religioner om at vi aldrig får det eneste rigtige. Det vil være meget naivt at tro at Dart kan ændre på det faktum. Der findes flere forskellige bud inden for GWT på alternative UI API'er. Jeg er som sagt til KISS og det virker godt for os.

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 25. maj. 2012 - 07.18
 
Re: JavaScript vs Dart

På den anden side, så er omkostningen ved GWT bl.a. at man bliver enddog meget afhængig af sine værktøj, så hver gang Firefox f.eks. opdaterer automatisk (sker en gang om måneden i disse dage), skal man ud og lede efter (eller bygge) en kompatibel Development plugin.


Uha, det lyder ikke så godt, og overrasker mig. Hvordan hænger det lige sammen? Browserversioner i koden...??

Det største problem er dog nok, at det er enormt svært at integrere et CSS design (man f.eks. har fået stillet tilrådighed af en designer) med GWT/Java komponenter.


Hmm, det lyder heller ikke så godt. Havde indtryk af at det kunne lade sig gøre, og var meningen at man nemt kan gøre det. Er det forskellen på virkeligheden og papiret?

Så GWT er smart, og programmer er nemme at vedligeholde, men det virker nok bedst for større dynamiske data-drevne sider med rigt UI.


Jeps, det var også mit indtryk, og det er helt fint. Nogen af os sidder jo og kæmper med sådan nogen systemer dagligt :-)

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Lars Bjerregaard 25. maj. 2012 - 07.22
 
Re: Kan Dart dette ?

http://eloquentjavascript.net/chapter6.html Hvis ikke - nothing to see here.


Er det sådan noget her du mener: http://expertstalk.org/post/11600649189/foreach-method-in-dart ?

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Palle Simonsen 25. maj. 2012 - 07.50
 
Re: Kan Dart dette ?

Close but no cigar ;)

Det er sådan noget som dette:

forEach(replacements, function(replace) {  
    text = text.replace(replace[0], replace[1]);  
  });  
  return text;  
}

og dette:

function negate(func) {  
  return function() {  
    return !func.apply(null, arguments);  
  };  
}
  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Casper Bangs billede
Casper Bang 25. maj. 2012 - 10.52
 
Re: JavaScript vs Dart

Uha, det lyder ikke så godt, og overrasker mig. Hvordan hænger det lige sammen? Browserversioner i koden...??


Versionsstyring er jo tricky. Plugins skrives konservativt til og med én browser version. Hvis så pluginen er henvendt 11, men browseren nu er 12, ja så bliver pluginen slået fra. Dette gælder både Firefox og Chrome, de eneste browsere jeg bruger.

Hmm, det lyder heller ikke så godt. Havde indtryk af at det kunne lade sig gøre, og var meningen at man nemt kan gøre det. Er det forskellen på virkeligheden og papiret?

Ja det er nok meget godt formuleret. Faktisk er jeg ikke sikker på der er nogen som helst imperativt UI bibliotek, der løser dette problem. Styling via CSS sker jo via DOM selectors, som man jo netop abstraherer fra (jeg plejer at tænke på det som bottom-up der skal snakke med top-down).

Det skal dog retfærdigvis siges at UIBinder (GWT markup direkte i HTML, lidt ligesom Wicket), som er noget af det nyere, forsøger at råde bod på det.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Baldur Norddahl 25. maj. 2012 - 11.17
 
Re: JavaScript vs Dart

Uha, det lyder ikke så godt, og overrasker mig. Hvordan hænger det lige sammen? Browserversioner i koden...??

Det er kun udvikleren selv der har problemet. Det er en browser plugin der bruges når man vil debugge. Personligt bruger jeg den slet ikke.

Slutproduktet virker i alle browsere.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Casper Bangs billede
Casper Bang 25. maj. 2012 - 14.53
 
Re: JavaScript vs Dart

Det er kun udvikleren selv der har problemet. Det er en browser plugin der bruges når man vil debugge. Personligt bruger jeg den slet ikke.

Det tager 3-4 minutter at compile et af vores projekter, kun til én permutation (typisk Firefox). Så hvis vi ikke brugte development mode, ville vi ikke lave andet end at vente på compileren. Det må være nogle meget små projekter du har gang i så.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Baldur Norddahl 25. maj. 2012 - 15.27
 
Re: JavaScript vs Dart

slettet - dobbelt indlæg.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Baldur Norddahl 25. maj. 2012 - 15.27
 
Re: JavaScript vs Dart

En hurtig computer kan oversætte mit projekt på ca. 1 minut. Ja det er irriterende. Jeg kompenserer ved at lave mere før jeg går i gang med at teste :-).

Man kunne ønske at de arbejdede lidt på oversætter-hastighed herunder iterativ oversættelse. Det er jo ingen naturlov der siger at det skal tage 50 gange længere at lave javascript end det tager at lave bytecode.

Det er nok eksistensen af dev mode der gør at ingen har brugt tiden på at optimere oversætteren.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Politiken lancerer online-betalingsmur: Hullet som en si

Udgivet 22. maj 17.28Opdateret 22. maj 17.41

Chefredaktør om hullet betalingsmur: »Vi er fuldstændigt klar over, at det kan omgås«

Udgivet 22. maj 17.26Opdateret 22. maj 17.43

Firefox vil blokere cookies som standard - men teknikken driller

Udgivet 22. maj 15.49Opdateret 22. maj 15.49

40.000 digitale afgangsprøver blev rettet automatisk i år

Udgivet 22. maj 14.50Opdateret 22. maj 14.50

CSC indgår millionforlig i sag om regnskabssvindel

Udgivet 22. maj 13.34Opdateret 22. maj 13.34

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. Markant færre netbankindbrud i 2013: Kun 380.761 kroner er stjålet

    7 comments.
    Last update 2 minutter 26 sekunder
    Skrevet af Finn Christensen
  2. Politiken lancerer online-betalingsmur: Hullet som en si

    17 comments.
    Last update 17 minutter 7 sekunder
    Skrevet af Finn Christensen
  3. 40.000 digitale afgangsprøver blev rettet automatisk i år

    6 comments.
    Last update 1 time 3 minutter
    Skrevet af Finn Christensen
  4. Haves: Skod ADSL linje. Ønskes: Virtuel server

    37 comments.
    Last update 2 timer 1 minut
    Skrevet af Esben Madsen
  5. Ny Xbox One kører spil og Windows på Hyper-V

    16 comments.
    Last update 2 timer 53 minutter
    Skrevet af Troels Henriksen
  6. Eks-telechef: Stop nu nytteløs sessionslogning

    38 comments.
    Last update 5 timer 14 minutter
    Skrevet af Johannes Aagaard
  7. New Zealand dropper softwarepatenter

    18 comments.
    Last update 5 timer 18 minutter
    Skrevet af Kristian Beyer
  8. Dell lancerer gamer-pc med Ubuntu

    11 comments.
    Last update 5 timer 35 minutter
    Skrevet af Lasse Enevoldsen

Mere debat »

It-virksomheder

Prolog Development Center A/S
|
ITX
|
Pixelmade
|
Bownty ApS
|
Jayway
|
2webdesign - Online Marketing
|
EVRY Danmark A/S
|
Avenida
|
CODEWIRE.NET
|
Esec
|
Deltek Danmark
|
solvo it
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Cookie- & privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Business Intelligence
  • Cloud computing
  • Intranet
  • It-sikkerhed
  • NemID
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu
  • Virtualisering
  • Windows 8
  • Windows Server 2012
  • iOS 6
  • iPhone 5

Tjenester

  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Trekronergade 26 2500 Valby
  • Tlf. work 33265300