DIKU-ekspert nedsabler Apples kodekrav: Absurd vrøvl
Apple vil ikke have andres kørselsmiljøer på iPhone-platformen. Hvis man skal udvikle programmer i sproget, skal det være platformens eget sprog og udviklingsmiljø, der skal ligge til grund.
Ifølge firmaets topchef Steve Jobs skyldes det, at det altid går galt, når der skydes et nyt lag ind i stakken.
»Mellemliggende lag mellem platformen og udvikleren producerer i sidste ende applikationer under standarden og hæmmer platformens fremskridt,« har han tidligere kommenteret.
Men mellemliggende miljøer så som Java, .Net, Ruby og Python findes til masser af platforme, hvor både programmører og brugere er glade for, at mulighederne findes.
»Det er noget vrøvl« Lektor på Københavns Universitets datalogiske institut og Version2-blogger Torben Mogensen er ikke enig i Steve Jobs bedømmelse.
»Jeg synes, det er noget vrøvl. Det, han formentlig mener, er at Apple har lagt op til en bestemt kodestandard, så applikationer ser ens ud. Apple er så bange for at et mellemlag kan ændre på det, så nogle applikationer ikke følger standardudseendet. Men det skyldes jo ikke at det er et mellemlag, men at udvikleren ikke følger kodestandarden. Det er lidt absurd, at man lægger skylden på et mellemlag.«
Et andet argument imod kørselsmiljøer, som ligger oven på det indfødte system er, at et mellemlag kan gøre applikationer langsommere. Men det afhænger af, hvordan mellemlaget er skrevet, og det behøver ikke nødvendigvis at give en særligt stor ekstra byrde, mener Torben Mogensen.
»Hvis man skaber et mellemlag som et kodegenereringslag, i stedet for at køre en fortolker i mellemlaget, skulle der ikke være nogen betydelige årsager til, at programmerne skulle køre langsommere. Man kan også sagtens skrive langsomme programmer i Objective C, så det skulle ikke være et specielt problem. Som sådan er der ikke nogen lov der siger, at det nødvendigvis behøver at være mindre standardiseret eller ringere af, at man bruger et mellemlag.«
Torben Mogensen tror til dels, at Apples kode-skræk kan skyldes en trang til at holde platformen tæt til kroppen:
»Apple vil måske gerne have, at iPhone-applikationer ikke også kan køre på andre platforme. De vil nødig have, at de er ligegyldigt om man valgte at købe en iPhone eller en Android-telefon, fordi man kunne køre de samme applikationer på alle telefonerne. Så risikerer Apple, at mange folk vælger Android i stedet for.«
Kommentarer (25)
Nu har vi ellers lige set kommentarer i lange baner fra Apple fanboys om at det er for brugernes skyld at Apple gør det ;)
Apple vil måske gerne have, at iPhone-applikationer ikke også kan køre på andre platforme. De vil nødig have, at de er ligegyldigt om man valgte at købe en iPhone eller en Android-telefon, fordi man kunne køre de samme applikationer på alle telefonerne. Så risikerer Apple, at mange folk vælger Android i stedet for.
Det giver jo rigtig god mening det her???
Folk vil vælge Android i stedet for iPhone fordi man kan få en Android app til den iPhone man ikke vil vælge!
Apple og Steve Jobs er blevet arrognate og kæphøje af deres success, og besidder desværre nu er noget ukritisk marked (Apple fanboys og forbrugere der bare ikke ved bedre).
For mange af os har det i langt tid været indlysende, at alt hvad Apple gør er for dem selv og deres aktieinvestorer. De er totalt ligeglad med resten af verden, det være sig kundernes frihed eller de eksisterende teknologier/standarder der nu engang eksisterer uden for Apple's snævre synsfelt.
Alt hvad Steve Jobs siger skal man tage med en gran salt. Hvem husker ikke "multitasking dræner batteriet" vi har hørt på de sidste 3 år, men som pudsigt nok nu med næste iPhone OS er vendt til "vi har fundet en måde at gøre det på".
For at sige det ligeud, Apple trænger til en seriøs afklapsning.
For andre har det i langt tid været indlysende, at alt hvad Apple gør er for dem selv og deres aktieinvestorer. De er totalt ligeglad med resten af verden, det være sig kundernes frihed eller de eksisterende teknologier/standarder.
Og dermed er Apple overraskende som firmaer er flest.
Men ja - kritisk sans er ekstraudstyr som de fleste af dagens forbrugere ikke har villet investere i.
Pointen var, at mellemlag kan gøre det muligt at udvikle applikationer, der kan afvikles både på iPhone, Android og måske flere andre platforme. Det giver god mening for udviklerne, da man ikke skal vedligeholde flere versioner og får de andre platforme med "gratis", selv om man primært udvikler til iPhone. Men så er en applikation ikke en iPhone applikation eller en Android applikation, men en generisk mobiltelefonapplikation.
Hvis de fleste interessante applikationer kører på alle platforme, så er iPhone ikke så speciel, og så vil kunder måske se på, hvad man ellers får for pengene, og der vil iPhone måske ikke være det oplagte valg længere.
Hvis de fleste interessante applikationer kører på alle platforme, så er iPhone ikke så speciel, og så vil kunder måske se på, hvad man ellers får for pengene, og der vil iPhone måske ikke være det oplagte valg længere.
God pointe, jeg tror heller ikke Apple får noget ud af denne yderligere restriktion - det står klart at kampen om mobilers OS skal stå imellem iPhone, Android og måske WinMo7. Og til disse OS'er, vil samtlige større applikationer forefindes.
Som Android ejer håber jeg faktisk lidt at det kan vendes som fordel for mig, eftersom hvis MonoTouch bliver "ulovlig" på iPhone, vil de sansynligvis bruge flere resourcer på MonoDroid (C# på iPhone/Android).
Hvis de fleste interessante applikationer kører på alle platforme, så er iPhone ikke så speciel, og så vil kunder måske se på, hvad man ellers får for pengene, og der vil iPhone måske ikke være det oplagte valg længere.
Du har ret. Hvis ikke applikationerne er skræddersyet til platformen er platformen ikke speciel, og kunderne fravælger den måske. Har du prøvet at opholde dig i den virkelige verden, hvor indtjening er afhængig af at man kan sælge et produkt?
Resultatet er så:
1) Færre penge i kassen hos Apple
2) Brugere der får en suboptimal oplevelse
2 er netop Steve Jobs pointe, 1) er selvfølgelig også en del af hans dagsorden. Apple lever af tilfredse og glade brugere.
Det kan da kun være udtryk for et snævert sind, ikke at ville godtage at argument der samtidig indeholder en økonomisk gevinst for den der fremkommer med det.
Desværre er det ikke en sjælden set holdning her i landet.
For mange af os har det i langt tid været indlysende, at alt hvad Apple gør er for dem selv og deres aktieinvestorer. De er totalt ligeglad med resten af verden, det være sig kundernes frihed eller de eksisterende teknologier/standarder der nu engang eksisterer uden for Apple's snævre synsfelt.
Jeg tvivler nu på de er ligeglade med deres kunder.
Alt hvad Steve Jobs siger skal man tage med en gran salt.
Hvorimod du har altid har ret?
...Hvem husker ikke "multitasking dræner batteriet" vi har hørt på de sidste 3 år, men som pudsigt nok nu med næste iPhone OS er vendt til "vi har fundet en måde at gøre det på".
Hvis Apple havde implementeret multitasking på iPhone OS som det er implementeret på desktop OS´er ville det dræne batteriet. Det har de ikke.
Hvis Apple havde implementeret multitasking som Google har gjort det på Android, eller RIM på Blackberry, ville det dræne batteriet. Det har de ikke.
Apple har valgt en anderledes implementering, der ifølge dem selv, er baseret på en analyse af behovet for multitaksking på en mobil platform. Det kaldes innovation.
Det er klart at Apple forsøger sig med hvad som helst for tiden. Det er netop nu ret spændende hvad der sker i den store internationale tele-verden hvor google og microsoft nu har taget kampen op. Mvh. http://www.cbb.dk/info/taletidskort/
Som har været i debatten er at Apple gerne vil have et veldefineret grundlag for hvilke tool-chains som har været brugt i udviklingen. Det gør at de kan skifte CPU-platform senere uden for meget bøvl, fordi de har styr på deres Tool-chain. Med andre ord vil de ikke have for komplekse Bratman-diagrammer fordi de ikke kan kontrollere tool-chainen.
Hvis et givet program er "låst" til en given arkitektur, så kan det på en eller anden vis bremse nye iPhone-arkitekturer fordi et program ikke er at finde til den nye iPhone-variant endnu.
Hvis eksempelvist flash kan eksekveres på iPhone som en native app er problemet det at Apple nu pludselig er afhængig af Adobe i deres upgrade-path. Det lyder som en meget dum forretningsstrategisk beslutning fordi Adobe helst bare vil lave "commoditization" af alle smartphones.
Teknisk set er argumentet dog ret diffust og jeg er helt enig med Torben: Det holder ikke en meter.
Teknisk set er argumentet dog ret diffust og jeg er helt enig med Torben: Det holder ikke en meter.
Det er muligt det virker diffust når man ser på software generelt. Men når man fokuserer på MMI intensive applikationer på en embedded platform synes jeg bestemt det diffuse bliver mere klart.
Derimod falder Torben Mogensens argumenter til jorden når man ser på den konkrete problemstilling istedet for den generiske.
Der er himmelvid forskel på en Ruby server applikation på den ene eller anden platform og på en MMI intensiv applikation på en specifik platform.
I øvrigt fungerer Ruby applikationen på både Unix og Win32, bare man ikke roder sig for langt ud i filsystem eller process manipulation (kan i høre Steve Jobs??)
En opfordring til alle de bedrevidende her: Lav en applikation baseret på et intermidate lag (eller et scripting sprog) til Android og Iphone, vis så at den virker "native" på begge platforme og fuldt ud udnytte mulighederne på begge platforme. Lad den for eksemplets skyld bare præsentere årets Roskilde program.
http://www.theregister.co.uk/2010/04/16/does_apple_code_translation_ban_...
Artiklen analyserer dels, hvad begrænsningen rent teknisk betyder og hvilken indflydelse den vil have på markedet.
Jeg tvivler nu på de er ligeglade med deres kunder.[quote] Lad mig omformulere, de er ligeglad med deres kunders behov udover hvad Apple lige synes der skal til. [quote]Hvorimod du har altid har ret?
Nej, har du? Pointen (som du nægter at tage stilling til med dit lille angreb her) er at Steve har bevist igen og igen, hvorledes misinformation benyttes. Før iPhone hed det også "No one wants to watch movies on a phone".
Hvis Apple havde implementeret multitasking på iPhone OS som det er implementeret på desktop OS´er ville det dræne batteriet. Det har de ikke.
Desktop OS? Den må du selv stå til regnskab for, iPhone OS og Android er opbygget fra grunden af til at køre på telefon og ikke desktop. Det er en af de grundlæggende årsager til at de begge er WinMo 6 langt overlegen.
Hvis Apple havde implementeret multitasking som Google har gjort det på Android, eller RIM på Blackberry, ville det dræne batteriet. Det har de ikke.
Apple's nye multitasking til iPhone virker næsten 100% lige som på Android. iPhone har iøvrigt altid haft multitasking, det har bare kun været forbeholdt Apple. Således har det f.eks. være umuligt at bruge GPS navigation i praksis, da et telefonopkald vil lukke programmet. Ligeledes har det været umuligt at lytte til Last.fm, Pandora eller andre netradio af samme årsag. Men Apple's egen musikafspiller dræner måske ikke batteriet?
Apple har valgt en anderledes implementering, der ifølge dem selv, er baseret på en analyse af behovet for multitaksking på en mobil platform. Det kaldes innovation.
Ja det er jo altid sundt at stole på hvad en producent siger om sig selv! :p Prøv at spørge en neutral bruger hvad han synes om måden events (opkald, SMS, twitter...) håndteres på i hhv. Android og iPhone. Her brillierer iPhone med sit modal verdensbillede som vi også havde i Windows 3. Ja det er satme innovation.
Sidst men ikke mindst, husk at DRAM celler har samme strømforbrug hvadenten RAM udnyttes eller ej. Det er en af årsagerne at man på Android tillader mange programmer "samtidigt" Det er langt billigere at flytte en instruktionspointer til et andet sted i RAM og fortsætte eksekvering, end det er at genindlæse et program fra start af. En sovende process koster meget lidt i en moderne Linux kerne.
Desktop OS? Den må du selv stå til regnskab for, iPhone OS og Android er opbygget fra grunden af til at køre på telefon og ikke desktop. Det er en af de grundlæggende årsager til at de begge er WinMo 6 langt overlegen.
Skal jeg selv stå til regnskab for, at Apple ikke har implementeret multitasking for 3. parts udviklere på en måde der er anderledes end multitasking på dekstop OS´er??
Apple's nye multitasking til iPhone virker næsten 100% lige som på Android. iPhone har iøvrigt altid haft multitasking, det har bare kun været forbeholdt Apple.
iPhone OS multitasking adskiller sig fra Androids. Android bygger på en client/server model til at skabe reelle baggrundsprocesser - iPhone OS tillader at den primære applikation kan køre i baggrunden hvis der er behov. Det er ikke "næsten 100%"
Ja det er jo altid sundt at stole på hvad en producent siger om sig selv! :p Prøv at spørge en neutral bruger hvad han synes om måden events (opkald, SMS, twitter...) håndteres på i hhv. Android og iPhone. Her brillierer iPhone med sit modal verdensbillede som vi også havde i Windows 3. Ja det er satme innovation.
Prøv at sæt dig ind i emnet før du angriber på den måde du gør. Jeg videregiver ikke hvad Apple siger om sig selv, men hvad jeg selv har erfaret og sat mig ind i.
At events, SMS og opkald håndteres som de gør er usability beslutninger - og har intet med multitasking at gøre.
<sarcasm>
Ligesom Wifi, bluetooth og GPS formentlig heller ikke bruger batteri på iphone, modsat andre telefoner.
</sarcasm>
Skal jeg selv stå til regnskab for, at Apple ikke har implementeret multitasking for 3. parts udviklere på en måde der er anderledes end multitasking på dekstop OS´er??
Du kommer med hvad der i argumentationsteknik kaldes for en "red herring" ved pludseligt at dreje samtalen hen på desktop OS. Hvilket er absolut irrelevant, eftersom hverken iPhone eller Android er et sådant.
iPhone OS multitasking adskiller sig fra Androids. Android bygger på en client/server model til at skabe reelle baggrundsprocesser - iPhone OS tillader at den primære applikation kan køre i baggrunden hvis der er behov. Det er ikke "næsten 100%"
Faktisk vil jeg mene det er omvendt. Hvis en applikation skal kunne køre i baggrunden på Android, kræver det man har lavet en speciel service med relevant prioritet og politik - altså at den har sin egen process. Det samme vil gøre sig gældende med iPhone OS 4, bortset fra at services her er begrænset i funktionalitet til lyd, VoiP eller GPS.
Vil man noget andet, skal det ske via notifications, en slags grøn tråd [http://bit.ly/green-thread], hvor en server poller klienter periodisk lokalt eller sågar over netværk via Apple's Push Notification servere.
Men jeg er sikker på du vil bestride dette, så prøv at læse følgende analyser af emnet [http://bit.ly/ai-mt-gruber], [http://bit.ly/ai-mt-comp], begge skrevet af tredjeparter uden for Google og Apple.
Prøv at sæt dig ind i emnet før du angriber på den måde du gør. Jeg videregiver ikke hvad Apple siger om sig selv, men hvad jeg selv har erfaret og sat mig ind i.
Ah jo det gør du jo, du skriver højere oppe "...der ifølge dem selv, er baseret på en analyse af behovet for multitaksking på en mobil platform".
Og med al respekt, eftersom iPhone OS 4 ikke er frigivet, har jeg svært ved at tillægge dine egne erfaringer større vægt. Det håber jeg du kan forstå.
Crossplatform værktøjer er i sagens natur nød til at indrette sig efter laveste fællesnævner, og det påvirker selvfølgelig kvaliteten - der er en grund til at Photoshop ikke er programmeret i Java.
Det eneste der er noget absurd vrøvl er at en såkaldt ekspert kan finde på at modsige noget der burde være logik for burhøns.
Faktisk vil jeg mene det er omvendt. Hvis en applikation skal kunne køre i baggrunden på Android, kræver det man har lavet en speciel service med relevant prioritet og politik - altså at den har sin egen process. Det samme vil gøre sig gældende med iPhone OS 4, bortset fra at services her er begrænset i funktionalitet til lyd, VoiP eller GPS.
Du mener forkert, som jeg skrev laver Android baggrundsprocesser via en client/server model.
Under iPhone OS4 kan applikationen køre videre i baggrunden, men med begrænset funktionalitet (deraf de kategorier man har hørt om). Man skal derfor ikke lave nogen speciel service, og applikationen kan fint køre uden denne baggrundsproces (hvis enheden ikke supporterer multitasking eller andet)
Og med al respekt, eftersom iPhone OS 4 ikke er frigivet, har jeg svært ved at tillægge dine egne erfaringer større vægt. Det håber jeg du kan forstå.
Den kan jeg ikke forstå. Som registreret udvikler har jeg kunnet køre iPhone OS 4 i nogen tid nu.
Med fare for at gentage mig selv så burde den kære DiKU professor holde sig til at udtale sig udelukkende om datalogi... Måske kunne version2 lave en online debat med et panel bestående af en datalog, en foretnings jurist og en fra CBS der ved noget om økonomi og virksomhedsdrift...
Enjoy nu i rerun
flash flash flash flash flash
Adobe CD5 iPhone flash App converter
metaplatform = > apps der ikke udnytter enkelte platformes
specifikke features
For at lukke for flash App converter er det nødvendigt med 3.3.1
utilsigtet skade ved 3.3.1 < fordel ved ikke at ha flash
flash på nogen mobilplatform er dårlig.
easy peasy
Hvis man påstår at flash er godt på desktoppen, så har man det åbenbart fint med 100% lockin til Adobe og så er man ikke interesseret i et internet der er baseret på åbne standarter så som HTML5 CSS3 og JavaScript.
Noget som alle burde ha interesse i og ikke bare på mobil platformen.
Det hænger alt sammen sammen, jo størrere udbredelse flash får jo mindre udbredelse får HTML5/CCS3/JavaScript. Derfor er Adobes forsøgte annektering af iPhonen og andre mobil platforme en direkte udløber af deres succesrige strategi med at placere et adobe meta lag mellem designer indhold og kode på alle internet sites med noget medie indhold.
Adobes metalag er direkte antagonistisk ifht et åbent standartbaseret medie rigt internet (animationer, menysystemer, video osv). Men det er åbentbart mere interessant at bashe Apple for at de forsøger at udbrede det standartbaserede internet, end fx at indse at Android heller ikke burde acceptere flash hvis de vil opretholde nogen konkkurancemægsig fordel for devices med Android.
Men Google er vel ligeglade hvem der sælger hardwaren, sålænge det ikke er bing der laver søgningerne eller iAd der presentere reklamerne...
Hvilket bringer os til den mystiske skillevej som Google befinder sig i pt. Skal vi satse på flash eller åbne standarter..... tænke tænke tænke...
For Google har bragt sig i alliance med to antagonistiske platforme:
På den ene side HTML5/CSS3/JavaScript gennem deres store arbejde med webkit og standart udvalget og deres HTML5 video service på YouTube og på den anden side Adobe med propietær platformen flash...
Så i nær fremtid vil vi se om Google vælger at spille på begge heste og om det er muligt eller hvilken side de vælger...
/Jakob
PS! lad os spole tilbage og huske hvem der først fik youtube til at encode i h.264.... iPhone YouTube App der kom med den første iPhone... The start of the end of the flash domination of the intertubes.
PPS!
linux: platform open standarts open
windows: platform closed standarts closed
Android: platform open standarts open
(unless mobile operator wants platform closed, then platform closed)
iPhone: platform closed standarts open
Mac OS X: platform semiclosed (many core parts open) standarts open
Where you wana go today ? tomorrow ?
IPhone OS er en variant af mac os x så derfor giver det mening ikke bare at ha aktiveret den almene desktop multitasking model.
Apple har ikke kommet med noget argument for, at der er en teknisk grund til at applikationer bliver dårlige ved metalag... Det er fordi metalagene vil ikke udnytte de nyeste funktioner i noget os så metalag er universelt dårlige.
Som Steve Jobs selv refere til med ref til John Gruber.
At antage at der er en teknisk begrundelse for en teknisk beslutning er netop det. En antagelse og en antagelse der er svær at underbygge.
Det er en foretningsmægsig årsag til denne beslutning som giver god mening, man vil ikke ha flash på iPhone OS da det vil give adobe beslutningsmagt hvor Apple ikke vil ha de har det (læs hele den lange flash for mac os saga og nedprioteringen af mac os x versionen af CS).
Det giver god mening, at der så er nogle utilsigtede der bliver ramt af de vandtætte prargraffer er sørgeligt men sen en tak til adobe på den konto for det var dem der ikke ville acceptere et nej.
Du mener forkert, som jeg skrev laver Android baggrundsprocesser via en client/server model.
Nu er client/server jo et voldsomt overloaded udtryk, men var det ikke på tide med nogle faglige referencer for din påstand? Android (der bygger på Linux) er ikke fuld POSIX ligesom iPhone (der bygger på BSD), men alle applikationer starter som en fork af Zygote processen og får deres helt eget uid og VM instans. Men er dette ikke en rimelig irrelevant detalje, eller hvor vil du hen med din client/server snak?
Den kan jeg ikke forstå. Som registreret udvikler har jeg kunnet køre iPhone OS 4 i nogen tid nu.
Jo tak, i en beta udgave og på en taknemlig emulator.
Nu er client/server jo et voldsomt overloaded udtryk, men var det ikke på tide med nogle faglige referencer for din påstand?
Jeg synes nu ikke det er overloaded, og da slet ikke hvad en applikation og dens support processer angår. Derfor mener jeg heller ikke det er på tide med faglige referencer for nogen påstand. Det er almen kendte fakta jeg fremfører her.
Men er dette ikke en rimelig irrelevant detalje, eller hvor vil du hen med din client/server snak?
Der blev påstået at iPhone OS 4 multitasking var næsten 100% lig Android, som "bevis" på at Steve Jobs og dermed Apple har villedt og for længst burde have tilladt multitasking.
Jeg fremførte så den modpåstand, at der skam er stor forskel på Android og iPhone multitasking. Jeg mener samtidig at Apple´s multitasking model er Android´s overlegen - og det er netop et resultat af, at den er det mere gennemtænkt p.g.a. "forsinkelsen".
Så der vil jeg hen med min client/server snak, nemlig at vise en af forkskellene på Android og iPhone OS.
Jo tak, i en beta udgave og på en taknemlig emulator.
Nu er 4.0 jo ikke releaset endnu, så det er rigtig nok i en beta version.
Men den kører på min iPhone 3GS, og ikke nogen taknemlig emulator.
For mit vedkommende stopper denne tråd her, jeg har svært ved at se perspektivet i at fortsætte.
jeg syntes det er imponerende at man kan bruge både
Det er almen kendte fakta jeg fremfører her
og
Derfor mener jeg heller ikke det er på tide med faglige referencer for nogen påstand
i samme sætning.
Men jeg ville også finde det svært at finde fakta på at de features som apple først er forsinkede med, pludselige er "innovate" og "nyskabende" når apple lancerer dem. Gælder det mon også klippe/klistre?
Fra iPhone OS 4.0 keynoten:
ligsom med Cut and paste var vi ikke først med multitasking. Men vi mener at vi har udviklet en løsning der er bedre end de andre løsninger med hensyn til at bibeholde batteriliv og preformance.
Groft oversat....
Så lad os holde os til virkeliheden. Tak
Det er ikke et teknisk argument... FFS.
Det er et platformspolutisk argument.
Og Det holder. Flash er en cancer på alle mobilplatforme
på et mellemlangt perspektiv .
