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 (1)
Emner Javascript, Udviklingsværktøjer

Udvikler: Hvorfor eksploderer mine 3 linjer JavaScript-kode til 300?

Afspilning af lydfiler i JavaScript er et godt eksempel på, at moderne webudvikling er langt mere besværligt end nødvendigt, mener udvikleren Rob Ashton.

Af Mikkel Meister Torsdag, 17. januar 2013 - 13:36
Rob Ashton, freelance-udvikler. Foto: Mikkel Meister

At afspille en lydfil i JavaScript burde være så let som at skrive tre linjer kode.

Men i praksis har den slags opgaver det med at eksplodere op i fjæset på den sagesløse udvikler, som gerne vil have skidtet til at virke på tværs af flere forskellige browsere.

Sådan lyder budskabet fra freelance-udvikleren Rob Ashton, da Version2 fanger ham på Microsoft-konferencen Warm Crocodile i København. Han arbejder til daglig med blandt andet udvikling af store JavaScript-applikationer og spiludvikling i HTML5.

Og det er et godt eksempel på et problem med at skrive kode til webbrowsere, hvor producenter som Microsoft, Google, Mozilla og Apple på papiret er enige om standarderne. Og så alligevel ikke er det.

»Mit rant går på afspilning af lyd i JavaScript, fordi det opsummerer alt omkring browsere, som jeg ikke kan lide,« siger Rob Ashton til Version2.

Han uddyber:

»Det burde være tre linjer kode i JavaScript, men sådan er det ikke. Fordi hver browser understøtter forskellige typer af mediefiler, så du ender med at skrive seks eller otte linjer kode for at finde ud af, hvilken du skal afspille,« siger Rob Ashton.

Men her stopper det ikke ifølge udvikleren, der undervejs i interviewet speedsnakker henover en konstant humoristisk undertone:

»Du tror, at det er nok, men så går du over til Apples enheder, og pludselig kan du ikke indlæse en lydfil, med mindre brugeren klikker på en knap. Så det giver dig endnu 25-30 linjer kode for at få det til at virke på iOS-enheder. Men det er stadig ikke nok,« fortsætter han.

»For hvis du skal afspille den samme fil flere gange i spillet, hvilket ikke er utænkeligt, skal du have pools til dine lydfiler for fem forskellige kopier liggende i hukommelsen, så du kan trykke play, og det virker. Du tror, at det nu er nok, men på iOS kan du kun afspille en audiofil af gangen, så hvis du gør det på den måde, virker det ikke på iOS mere.«

»Så du går fra tre linjer kode til at have brug for 300 eller 400 linjer kode. For mig viser det, at det er svært at skrive sådan noget som spil til webbrowsere. For der er standarder, men ingen ser ud til at være enige om implementeringsdetaljerne,« siger Rob Ashton.

Hvad er løsningen på det problem?

»Der er ingen løsning på problemet her og nu. Men det vil gå væk med tiden. Vi må bare finde os i det. Det handler om evolution,« siger Rob Ashton.

Han sammenligner med det kendte JavaScript-bibliotek jQuery, som i dag er et vidt udbredt abstraktionslag til at løse problemerne, der opstod på grund af browseres måde at håndtere forskellige hændelser på i DOM - den grænseflade, der ofte bruges mellem JavaScript og HTML.

På samme måde ser man nye biblioteker pible frem, som eksempelvis gør det lettere at håndtere lydproblemet. Rob Ashton arbejder selv på et, Primo Audio, som spiller sammen med hans 2D spilmotor til HTML5 Canvas, PrimoJS.

»Når du laver en applikation til det moderne web, så skriver du heller ikke kode til DOM direkte længere. Du bruger jQuery, eller hvad du nu har lyst til. Så alt, du skal bekymre dig om, er at bruge et library. Og det er den vej, det går. Standarderne er der, og så lægger vi (udviklere, red.) nogle lag oven på standarderne, som gør, at det pludselig er til at holde ud,« siger Rob Ashton til Version2.

Version2 er mediepartner på udviklerkonferencen Warm Crocodile, der finder sted 16.-17. januar i København. Du kan læse mere om konferencen her.

Læs også

  • Syngende agil-guru: Sådan gør du dine udviklere bedre
Send Tweet
Udskriv

Mere om Javascript

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

Følg dette emne

Firefox får Javascript-baseret PDF-læser indbygget

Udgivet 20. feb 15.51Opdateret 20. feb 15.51

Norsk BankID skeler til danske Javascript-planer - men satser på apps

Udgivet 31. jan 11.35Opdateret 31. jan 12.10

Video: Googles Lars Bak sviner Javascript og drømmer om en Dart-chip

Udgivet 19. okt 2012 15.56Opdateret 19. okt 2012 15.56

Video: Danske kæmper hos Microsoft og Google diskuterer fremtidens Javascript

Udgivet 17. okt 2012 8.55Opdateret 17. okt 2012 8.55

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
IT Chef til Det Grønlandske Sundhedsvæsen
Udgivet 22. apr 15.22
Er java.util.concurrency din ven?
Udgivet 2. maj 15.36
World class front-end developer
Udgivet 1. maj 10.48
C#/.Net software udvikler
Udgivet 14. maj 13.13

Kommentarer (1)

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

Følg kommentarer
Michael Zedelers billede
Michael Zedeler 18. jan. 2013 - 06.00
 
Det er jo kun overfladen, han kratter rundt i

Prøv f. eks. at spole i en lydfil på IOS eller sæt playbackRate på IE8 (eller IE9).

(Skrevet af en af udviklerne af LYT.)

  • 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

Derfor ønsker virksomhederne ikke Windows 8

Udgivet 21. maj 16.03Opdateret 21. maj 16.03

Lenovo lancerer Atom-drevet Android-kæmpe: 5,5 tommer fuld HD-skærm

Udgivet 21. maj 14.41Opdateret 21. maj 14.41

Brug for billed-backup? Flickr giver 1 terabyte gratis lagerplads

Udgivet 21. maj 13.11Opdateret 21. maj 14.00

SAP udbreder dansk succes: Opretter global afdeling for autister

Udgivet 21. maj 11.40Opdateret 21. maj 11.40

Regeringen støtter ny forordning: Brug NemID i hele EU

Udgivet 21. maj 10.46Opdateret 21. maj 13.14

Flere it-nyheder »

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

Whitepapers

Version2 Insight: Softwaretest

Mediehuset Ingeniøren

Mobile Test Service - Device & Test Coverage

Testhuset

Succes historier om OPS – Optimized Print Services

Konica Minolta Business Solutions Denmark

OPS - Optimized Print Services

Konica Minolta Business Solutions Denmark

Mobile Test Service - Device Strategy & Planning

Testhuset
  • Flere whitepapers

Branchenyheder

Lyncs stormløb - høje ambitioner og køb af Skype

GlobalConnect

Redpill Linpro hjælper kunderne ud af IBM Notes' databaser

Redpill Linpro

VP SECURITIES skaber overblik over kunderne med ny Microsoft CRM løsning

ProActive

Johan Ekelund som Business Advisor og Project Manager hos Affecto Denmark A/S

Affecto Denmark

Kom ajour med Windows Azure

ProActive

It-virksomheder

Financys
|
Billys Billing
|
Codecompany.DK
|
2webdesign - Online Marketing
|
Systematic
|
Visma
|
Futurecom Business Solutions
|
Rehfeld
|
Solitwork A/S
|
Edora
|
Nhouse
|
Redweb
 

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