Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

ProgrammeringsBaren! Småprat, om det du elsker!


Anbefalte innlegg

Egentlig en ting jeg synes er pussig med utviklingen av internet:

Hvorfor blir det fokusert på å standardisere utviklingsspråk? Hvorfor ikke en virtuell maskin istedet?

Standariserte utviklingsspråk har en tendens til å sørge for at det blir mange utviklere som kan det samme. Da er det lettere å erstatte utviklere i et prosjekt. Det er lettere å selge kurs. Det er lettere å velge verktøy.

Endret av tomsi42
Lenke til kommentar
Videoannonse
Annonse

Egentlig en ting jeg synes er pussig med utviklingen av internet:

Hvorfor blir det fokusert på å standardisere utviklingsspråk? Hvorfor ikke en virtuell maskin istedet?

Vil du utdype?

 

Nå sendes det over ren-tekst (harry nok kalt hyper-tekst) som blir parset, og utført på klientprogrammet. Det som derimot skjer, er at disse kommandoene (HTML, CSS og JavaScript) blir parset, oversatt til instruksjoner for en virtuell maskin, og utført deretter. Istedet for dette mellomsteget, så er klientprogrammene (nettleserene) kun en mottager av instruksjoner for en virtuell maskin.

 

Eksempelvis kan oppsett av det initielle DOM-treet (nå utført ved HTML) være direkte instruksjoner til en virtuell maskin om hva som skal opprettes av objekter, og sammenhengen. CSS kan være en samling av oeprasjoner som skal utføres etter objektet er oprettet, eller referenser til opførsler (event-handlere, property binding) som også kan uttrykkes i den virtuelle maskinen. På toppen av dette kommer scripting oppførsel som nå er JavaScript, men dette kan innlemmes under både opprettelse og styling av DOM-treet. Det er en enkel sak å lage compilere for HTML, CSS og JavaScript som kunne kjørt på dette, men det er også lett å lage helt andre systemer, ettersom webleseren er fullstendig agnostisk i forhold til hvilken utviklingsplattform en har brukt.

 

Lavere båndbreddekrav er et lite poeng, et større poeng er at text-parsing ikke forekommer på klientsiden, som vil føre til en drastisk kortere lastetid.

 

Det som skjer nå, er at nettsiden blir prosessert først i et scriptspråk (PHP for eksempel) som deretter gir ut ny tekst som må parses. Dette dyttes til klientene, som parser teksten, og oversetter til en intern virtuell maskin. I mange tilfeller i dag, vil dette igjen JIT-es til maskinkode.

Lenke til kommentar

Akkurat det er vel prøvd et par ganger allerede? Java på browseren, flash?

Ikke egentlig. Ved siden av å introdusere helt andre språk, med helt andre hensikter enn å lage websider, så var disse også utelukkende annenrangs innbyggere i internett-verdenen. I alle nettlesere er dette plug-ins som fullstendig isoleres fra web-leser-prosessen av sikkerhet og stabilitetshensyn.

Lenke til kommentar

Er det ikke det Google prøver på med NaCl?

 

Der kan du i alle fall sende apper som er kompilert mot prosessoren (x86 / ARM) som kjører med et overhead på 5% i en sandkasse. Dersom du kan kjøre slike apper, er det vel ikke noe problem å implementere din egen GUI, og dermed forkaste hele DOM.

 

Som det står i Wikipedia artikkelen, bakdelen er at du har en kompilert del som er vanskelig å kontrollere, med kompatibilitetsproblemer mellom OS og nettlesere. Sikkerhet vil også være veldig utfordrende.

 

Men skal si meg enig, tenk å kunne skrive hele Web applikasjonen i C# eller Java, også bare sende den til en JITC

  • Liker 1
Lenke til kommentar

Er det ikke det Google prøver på med NaCl?

 

Der kan du i alle fall sende apper som er kompilert mot prosessoren (x86 / ARM) som kjører med et overhead på 5% i en sandkasse. Dersom du kan kjøre slike apper, er det vel ikke noe problem å implementere din egen GUI, og dermed forkaste hele DOM.

 

Som det står i Wikipedia artikkelen, bakdelen er at du har en kompilert del som er vanskelig å kontrollere, med kompatibilitetsproblemer mellom OS og nettlesere. Sikkerhet vil også være veldig utfordrende.

 

Men skal si meg enig, tenk å kunne skrive hele Web applikasjonen i C# eller Java, også bare sende den til en JITC

Som sagt så kan det fortsatt være HTML, CSS og JavaScript, men at istedet for å standardisere at nettlesere må være istand til å lese HTML, CSS og JavaScript, så må den kunne lese et binært byte-code format og utføre dette.

 

Kompatibilitet ville vært et vesentlig mindre problem enn det er i dag, og det har historisk vært et ganske stort problem. Det kunne gjort at folk kunne forket HTML, CSS og JavaScript uten å tenke på å bryte støtte med forskjellige nettlesere.

Lenke til kommentar
Gjest Slettet+9871234

Internett, HTML og tilhørende teknologier er ganske langt fra en ideell verden. Tilfeldigheter har ført oss hit. Men vil det overhodet være mulig å noen gang bli enige om noe annet?

Med Living HTML blir det sikkert bedre:

 

http://www.webproworld.com/webmaster-forum/threads/113123-HTML5-and-CSS3-Is-there-a-Web-standards-divergence

 

Merk at sidene man utvikler nå lett kan gjøres synlige i eldre nettlesere og andre verktøy (antar jeg) ved å installere JS bibliotektet:

 

http://www.modernizr.com/

 

Se kildekoden til DigitalPunkt.no i min signatur. De andre sitene er ikke HTML5 gyldige.

 

Ytterligere informasjon:

 

http://www.oopschool.com/phpBB3/viewtopic.php?f=46&t=227

 

Jeg vet ikke om modernizer gjør at ens siter vises lettere i andre medium som mobile plattformer og screenreaders da jeg ikke har prøvd det og ikke har lest nok om bibliotektet.

 

Snart er forhåpentligvis IE og andre hacks historie.

 

Med jQuery er vi jo forbi stadiet med browser sniffing.

 

Internett teknologiene har malt seg selv inn i et hjørne på dette, så det gjør nok ikke det.

 

Eller ut med nyere teknologier. HTML5 som ikke lenger har noe versjons nummer da det nå er en levende standard er svært fleksibel og prgamatisk. Se lenke ovenfor.

Endret av Slettet+9871234
Lenke til kommentar

Internett, HTML og tilhørende teknologier er ganske langt fra en ideell verden. Tilfeldigheter har ført oss hit. Men vil det overhodet være mulig å noen gang bli enige om noe annet?

Med Living HTML blir det sikkert bedre:

 

http://www.webproworld.com/webmaster-forum/threads/113123-HTML5-and-CSS3-Is-there-a-Web-standards-divergence

 

Merk at sidene man utvikler nå lett kan gjøres synlige i eldre nettlesere og andre verktøy (antar jeg) ved å installere JS bibliotektet:

 

http://www.modernizr.com/

 

Se kildekoden til DigitalPunkt.no i min signatur. De andre sitene er ikke HTML5 gyldige.

 

Ytterligere informasjon:

 

http://www.oopschool.com/phpBB3/viewtopic.php?f=46&t=227

 

Jeg vet ikke om modernizer gjør at ens siter vises lettere i andre medium som mobile plattformer og screenreaders da jeg ikke har prøvd det og ikke har lest nok om bibliotektet.

 

Snart er forhåpentligvis IE og andre hacks historie.

 

Med jQuery er vi jo forbi stadiet med browser sniffing.

 

Internett teknologiene har malt seg selv inn i et hjørne på dette, så det gjør nok ikke det.

 

Eller ut med nyere teknologier. HTML5 som ikke lenger har noe versjons nummer da det nå er en levende standard er svært fleksibel og prgamatisk. Se lenke ovenfor.

Men dersom det hadde vært en virtuell maskin, kunne flere faktisk konkurrert med HTML5 på et mer realistisk nivå. Slik det er nå, er det ikke rom for konkurranse med kjerneteknologiene. Enten bruker du HTML, JavaScript og CSS, eller du kan finne på noe annet.

Lenke til kommentar

@GeirGrusom: Hvordan mener du egentlig det skulle fungere?

 

For at nettet skal fungere må alle bli enige om en standard. Blir vi ikke enige om en standard er det ikke konkurranse, men et monopol der alle må benytte nettleser fra den leverandøren som har valgt den mest populære løsningen. Da havner vi fort i en IE6 situasjon, der utviklingen stopper fordi det ikke er konkurranse lengre.

 

Ja, vi kan finne opp en annen markup, sende binærkode framfor ren tekst, kompilert kode framfor scripts, men vi må uansett ha noe som vi er enige om som fungerer i alle nettlesere.

 

Eller mener du å sende en full virtuell maskin for hver side? Da faller jeg tilbake på Flash og Silverlight, som du tidligere har avvist. Med slik teknologi ville du også være avhengig av kode virtuelle maskiner og større kunnskap hos utviklere, for leverandøren av nettleseren kan ikke gjøre så mye for å optimalisere koden inne i den virtuelle maskinen.

 

(Jeg prøver bare forstå hvor du vil.)

Lenke til kommentar

Jeg tror ikke en slikt VM løsning løser noe som helst. I dag er båndbredden god nok til å overføre data/kode i ascii. JIT kompilatorene har blitt gode, og så har man caching løsninger.

 

At ting er rotete, er en konsekvens at veien har blitt til under ferden, og ikke planlagt.

 

Det ser ut for meg at man har fått mange standarder allerede, kanskje for mange. Men jeg er ikke sikker på om det er problemet er. Mye treg kode i dag forårsakes av fjas og glitter og generell dårlig programmering.

Lenke til kommentar

Jeg tror ikke en slikt VM løsning løser noe som helst. I dag er båndbredden god nok til å overføre data/kode i ascii. JIT kompilatorene har blitt gode, og så har man caching løsninger.

 

At ting er rotete, er en konsekvens at veien har blitt til under ferden, og ikke planlagt.

 

Det ser ut for meg at man har fått mange standarder allerede, kanskje for mange. Men jeg er ikke sikker på om det er problemet er. Mye treg kode i dag forårsakes av fjas og glitter og generell dårlig programmering.

Det er også et problem, at internettsider faktisk er delegert til et såpass stor mengde med useriøse aktører. Du ser mye forbanna bedriten PHP kode.

Men allikevel så er web-programmering en plattform som er faktisk tilbakestående sammenlignet med resten av industrien. Jeg jubler ikke når HTML5 erstatter Flash. Jeg har ikke noe til overs for Flash, men jeg har heller ikke noen spesielt mer positiv mening om HTML5.

HTML fungerer fint utelukkende fordi nettleserne er laget for det, og de har brukt snart 30 år på å få det til, og det er fortsatt ikke det minste imponerende hvor langt de har kommet.

  • Liker 1
Lenke til kommentar

Det er også et problem, at internettsider faktisk er delegert til et såpass stor mengde med useriøse aktører. Du ser mye forbanna bedriten PHP kode.

Men allikevel så er web-programmering en plattform som er faktisk tilbakestående sammenlignet med resten av industrien. Jeg jubler ikke når HTML5 erstatter Flash. Jeg har ikke noe til overs for Flash, men jeg har heller ikke noen spesielt mer positiv mening om HTML5.

HTML fungerer fint utelukkende fordi nettleserne er laget for det, og de har brukt snart 30 år på å få det til, og det er fortsatt ikke det minste imponerende hvor langt de har kommet.

Slik har det nok alltid vært. Det som man ender opp med ser ut som et helvete. Men det for jobben gjort. Nå.

 

Jeg synes det er et større problem at alle skal ha løsningene sine på web, også når de ikke egner seg til det. Noen ganger så er det bedre et skikkelig program som kjører lokalt.

Lenke til kommentar
Gjest Slettet+9871234

Men dersom det hadde vært en virtuell maskin, kunne flere faktisk konkurrert med HTML5 på et mer realistisk nivå. Slik det er nå, er det ikke rom for konkurranse med kjerneteknologiene. Enten bruker du HTML, JavaScript og CSS, eller du kan finne på noe annet.

Er det det som, er problemet. Tog går på skinner eller magnetputer, mens biler går på veier. Hypertekst begynte med lenking av dokumenter. Disse dokumentene er node trær og web'en en stor grafe. Andre datastrukturer kan selvsagt tenkes. Om de er bedre egnet til å hypelenke dokumenter er et annet sprøsmål.

 

Ja, vi kan finne opp en annen markup, sende binærkode framfor ren tekst, kompilert kode framfor scripts, men vi må uansett ha noe som vi er enige om som fungerer i alle nettlesere.

Einstein sa

 

Make it simple, as simple as possible, but no simpler.

 

Eller mener du å sende en full virtuell maskin for hver side? Da faller jeg tilbake på Flash og Silverlight, som du tidligere har avvist. Med slik teknologi ville du også være avhengig av kode virtuelle maskiner og større kunnskap hos utviklere, for leverandøren av nettleseren kan ikke gjøre så mye for å optimalisere koden inne i den virtuelle maskinen.

Er det slik:

 

http://snow.cs.uit.no/

 

du vil ha det?

 

For å vise dette innholdet må du installere Microsoft Silverlight? Klikk her for å installere.

Det er grunn nok til at mange aldri vil se innholdet på den siten. Takke meg til enkel html markup.

 

Det er også et problem, at internettsider faktisk er delegert til et såpass stor mengde med useriøse aktører. Du ser mye forbanna bedriten PHP kode.

Hvem skal bestemme hvem som er seriøse aktører? Trenger man være en god programmerer for å levere bra innhold (mellom hyperlenkede dokumenter i en grafe)? Snarere tvert imot er min erfaring. Gode programmerere og matematikere er ofte dårlige forfattere.

 

Men allikevel så er web-programmering en plattform som er faktisk tilbakestående sammenlignet med resten av industrien. Jeg jubler ikke når HTML5 erstatter Flash. Jeg har ikke noe til overs for Flash, men jeg har heller ikke noen spesielt mer positiv mening om HTML5.

HTML fungerer fint utelukkende fordi nettleserne er laget for det, og de har brukt snart 30 år på å få det til, og det er fortsatt ikke det minste imponerende hvor langt de har kommet.

Jeg personlig synes det er glimrende når HTML markup ikke trenger Flash for å vise video. Canvas elementet vil nok utvikles til noe bedre i den nå levende standarden.

 

Studer kildekoden til denne http://thehtml5herald.com/ siten. Det skraper overflaten på de nye HTML elementene.

Endret av Slettet+9871234
Lenke til kommentar

@GeirGrusom: Hvordan mener du egentlig det skulle fungere?

 

For at nettet skal fungere må alle bli enige om en standard. Blir vi ikke enige om en standard er det ikke konkurranse, men et monopol der alle må benytte nettleser fra den leverandøren som har valgt den mest populære løsningen. Da havner vi fort i en IE6 situasjon, der utviklingen stopper fordi det ikke er konkurranse lengre.

 

Ja, vi kan finne opp en annen markup, sende binærkode framfor ren tekst, kompilert kode framfor scripts, men vi må uansett ha noe som vi er enige om som fungerer i alle nettlesere.

 

Eller mener du å sende en full virtuell maskin for hver side? Da faller jeg tilbake på Flash og Silverlight, som du tidligere har avvist. Med slik teknologi ville du også være avhengig av kode virtuelle maskiner og større kunnskap hos utviklere, for leverandøren av nettleseren kan ikke gjøre så mye for å optimalisere koden inne i den virtuelle maskinen.

 

(Jeg prøver bare forstå hvor du vil.)

Alle nettlesere i dag benytter virtuelle maskiner for HTML, CSS og JavaScript. Alle sammen. Uten unntak. Virtuelle maskiner brukes overalt også, operativsystemet ditt er fullt av det. TrueType font rendering er et eksempel på en virtuell maskin du sitter og stirrer på resultatet av akkurat .

 

Fordelen med en virtuell maskin er at de er veldig mye mer fleksible i oppførsel, og det er ganske lett å isolere dem. Og som sagt: nettleseren din benytter også en virtuell maskin for denne nettsiden akkurat nå!

Idéen er at istedet for å standardisere programmeringsspråk, så standardiserer en et instruksjonssett for en virtuell maskin. Det er opp til nettleserutviklerne å implementere den virtuelle maskinen effektivt (eksempelvis med JIT eller direkte oversetning).

En må selvsagt også standardisere et API-bibliotek.

 

Det er ikke akkurat en nyvinnende tankegang, det blir gjort i alle mulige andre sammenhenger... bortsett fra Web. Jeg tror det er helt fullstendig historiske grunner til at det ikke er implementert slik i dag.

  • Liker 1
Lenke til kommentar
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...