Hur man utformar ett operativsystem för framtiden

Skriven av Oscar Karlsson - April 08, 2018

Hur man utformar ett operativsystem för framtiden Föreställ dig att i dagens värld hade vi bara två typer av bilar, Ford och Chevy. Alla Ford-bilar fungerar endast på Ford-vägar, och alla Chevy-bilar fungerar bara på Chevy-vägar. Om du vill öppna ett företag måste du bygga en för varje typ av väg. Det är ganska mycket vad vårt nuvarande smartphone appekosystem är som just nu, och det är verkligen ingen mening. Förhoppningsvis kommer sakerna inte att stanna så länge längre. Just nu närmar vi oss slutet av informationsåldern för den mänskliga civilisationen. Vissa kallar den närmaste åldern av mänsklig evolution, "Augmented Age". För många använder vi redan tekniken för att öka vår utveckling och framtiden ser verkligen ut som om vi lägger till artificiella intelligenta konstruktioner till vår förstärkning ännu mer. Vi har redan många varianter av smal intelligens integrerad med våra telefoner, datorer, spelkonsoler, högtalare, bilar och hushållsapparater. Problemet är att våra nuvarande datorer och smartphones operativsystem (Windows, Linux, MacOS, IOS, Android, etc.) verkligen inte är utformade för att tillgodose ökad utveckling på ett positivt eller effektivt sätt. Jag vet inte riktigt något om att programmera ett operativsystem eller till och med en smartphone app från början, men som användarupplevelse kritiker / konsult i ca 20 år och en webbutvecklare i över 20 år vet jag mycket om vad bra human-computer interaktionssystem ser ut ur användarens perspektiv. Lär dig från webben Vet du vad som var utformat för att tillgodose ökad utveckling på ett positivt och effektivt sätt? Samma sak som pressade oss så snabbt in i informationsåldern! Det är rätt, internet ... eller närmare bestämt World Wide Web-delen av internet. Webben byggdes på ett sätt där alla webbplatser och sidor är avsedda att levereras i ett standardformat till en webbläsare. Allt vi får tillgång till på nätet levereras i hypertext markup språk. Det är väldigt enkelt. I webbläsaren hanteras innehållet och användargränssnittet så att människor kan använda det. Jag kan bygga en webbplats och varje webbläsare i världen kan visa innehållet. Ja, okej, vissa människor bryter sina egna webbplatser när de ses i vissa webbläsare eftersom de inte förstår graciös nedbrytning eller progressiv förbättringsutvecklingsteknik, men det är bara för att vi är lata människor. Allmänt sett har varje interaktivt element en ankaremärke med en referensegenskap för hyperlänkar och all text, bilder och annat innehåll är märkta med motsvarande hypertextmarkup. Jag kan bygga en webbplats och alla webbläsare som någonsin skapats kommer att kunna göra det i någon kapacitet. Din telefon och dataprogram är inte alls byggd. Jag kan bygga en webbplats och alla webbläsare som någonsin skapats kommer att kunna göra det i någon kapacitet. Det är inte sant med appar på iOS, Android, Windows, MacOS, Linux, etc. alls. Vad vi har som datoperativsystem och applikationer just nu är relaterat till världens tidiga dagar där företag som AOL och Prodigy behöll vissa delar av webben som är specifika för sina kunder. Eller som hur webbläsare som Internet Explorer 4-6 hade mycket specifika funktioner som bara fungerade i Microsofts webbläsare. Det som gjorde informationsåldern lyckades var samarbete om standarder och konkurrerande utöver dem, inte konkurrens mellan egna ekosystem. Artificiell intelligens Eftersom webben är byggd på ett sådant konsekvent sätt är det väldigt enkelt att bygga konstruktioner av artificiell intelligens som kan läsa och interagera med allt på webben. Det gör Siri, Google, Alexa och Cortana redan. Dessa tal UI-system läser webben och bearbetar informationen mycket enkelt eftersom allt är väsentligen strukturerat på exakt samma sätt. Det är lätt att förstå, för det är allt detsamma. Andra AI-konstruktioner interagerar med saker som twitter eller email eller SMS eftersom det är enkelt för alla att plugga in. Vill du ha din AI-konstruktion för att interagera med iTunes eller iMessage eller Facetime eller Snapchat eller Facebook Messenger eller WhatsApp? Lycka till med det! Vem som helst kan bygga en webbläsare som skapar röstkommandon för att interagera med webbsidor eller leta efter information och läsa det högt ... och vem som helst kan skapa en AI-konstruktion som behandlar webbsidans innehåll för lärande och utveckling. Det här är inte alls sant med program som körs på dagens operativsystem för operativsystem för operativsystem. Vill du ha din AI-konstruktion för att interagera med iTunes eller iMessage eller Facetime eller Snapchat eller Facebook Messenger eller WhatsApp? Lycka till med det! Eftersom varje app på varje plattform är skriven och utformad annorlunda är det inte enkelt att skapa en enda artificiell intelligenskonstruktion för att interagera med dem alla samtidigt. Intelligent användargränssnitt Dessutom är det väldigt enkelt att en intelligent webbläsare eller AI konstruerar för att återanvända eller öka innehållet på webbplatsen för att passa in i ett annat användarscenario. Någon webbläsare kan enkelt helt omformatera en webbsida baserat på användarens preferens eller den aktuella uppgiften. De flesta webbläsare har idag en "läsningsläge", men andra webbläsare i det förflutna låter dig faktiskt åsidosätta formatering av webbsidor i formatering av webbsidor med ditt eget stilark. De tidiga mobila webbläsarna hade intelligenta zoomfunktioner som låter dig fokusera på specifika innehållsområden väldigt enkelt eftersom webbläsare och webbutvecklare då inte var så bra att omformatera innehåll för mindre skärmar. De flesta aktuella datoperativsystem är utformade för att vara helt dumma. Framtidens operativsystem ska kunna skapa intelligenta grafiska användargränssnitt tillsammans med intelligenta användargränssnitt. (Se även "När kommer smartphones att vara intelligenta?") För närvarande har ingen av de mobila eller stationära datorkososystemen intelligenta användargränssnitt alls. Faktum är att de flesta är utformade för att vara helt dumma. Till exempel sätter alla operativsystem i smarttelefonen interaktiva element längst upp på skärmen där en mänsklig hand inte kan nå dem medan du håller telefonen. Det är en extremt dum design överlag från när smarttelefon skärmar var generellt bara 3,8? diagonalt. Det är bara ett exempel! Många smartphoneappdesigners använder sig av helt tvetydiga oförståeliga ikoner som vanliga människor och artificiella intelligenta konstruktioner kommer att ha stor svårighet att förstå. I många fall kan bara den person som skapade ikonen ana vad det betyder. Om alla våra applikationer utformades som webbsidor där alla element och kontroller taggades på samma sätt, skulle en intelligent GUI enkelt kunna visa dessa kontroller på ett sätt som är meningsfullt för varje enskild enskild användare eller externt system. Om du gillar ett renare användargränssnitt med ikoner som du redan har lärt dig att förstå kan en Intelligent GUI ändra alla dina appar för att visa den typen av användargränssnitt för dig. Om en nybörjare inte förstår en utvecklares galna ikondesign eller vill öka kognitiv lätthet, kan en Intelligent GUI ändra den för att visa textetiketter som användaren direkt kan förstå. Detta skulle vara enormt för att öka användbarheten och effektiviteten i åldern för augmentation! Konsistens Tyvärr, du är fast med den hemska designen som apputvecklaren plockade ut. Vet du vad människor älskar att interagera med saker? Konsistens. Vi älskar det när vi går in i en byggnad eller går in i bilen och allt fungerar bara. Dörrarna fungerar på samma sätt, lamporna fungerar på samma sätt, allt ser ut som det tillhör exakt var det är. Tyvärr är konsistensen extremt sällsynt i dagens datormiljö. Även inom din egen smartphone finns det stora mängder inkonsekvens! Varje app du öppnar har ett helt annat färgschema och navigationsmetod. Om du är en iOS-användare vet du att vissa appar har bakåtknappar, vissa gör det inte. Ibland sveper kanterna i en app, ibland gör det inte. Mänskliga dators interaktionsdesigners kan inte ens göra det mest grundläggande av sidokontroller konsekvent! Rullningslister! Seriöst, titta bara på Windows 10. Inom det enda ekosystemet finns det många många olika stilar på rullningsfältgränssnitt utan någon bra anledning alls. Om ett operativsystem utformades som en webbläsare, där varje app taggade alla delar av dess gränssnitt i enlighet därmed och behöll sin egenutvecklade programmering separat, kunde ett intelligent operativsystem enkelt tvinga konsekvens i varje användares enhet enligt användarens preferenser. Om du dekorerar ditt hem kommer du förmodligen att välja möbler och väggfärger som följer ett visst tema. Kanske ska du måla väggarna eller möblerna själv för att göra sakerna konsekventa. I dagens datorsystem och appekosystem är det inte möjligt. Du är fast med den hemska designen som apputvecklaren plockade ut. Systemteman En gång i tiden var det väldigt enkelt att skapa anpassade teman för operativsystem som Windows 95 och till och med Windows Mobile (Pocket PC 2002-6.5) där de färger du valde och de tweaks du skapade i utseende kontrollpanelen skulle gälla för alla dina applikationer, vilket ger en extremt konsekvent och sammanhängande erfarenhet. Om våra moderna operativsystem och datortekosystem hade planerat sig rätt skulle vi fortfarande ha global UI-designkontroll och Artificial Intelligence-konstruktioner skulle kunna utnyttja det för att styra designkonsistensen för varje användares preferenser. Tyvärr är det inte case. Det skulle bli så mycket bättre om våra datorer skulle kunna ändra apps enligt våra önskemål. Om alla våra applikationer hade sina gränssnitt på gränssnittet på samma sätt, precis som hur webbsidor märker deras användargränssnitt och kontroller, kunde vi enkelt ha systemövergripande artificiella intelligenskonstruktioner som skulle kunna kontrollera och ändra användargränssnittet för varje app. Inte bara kan det här användas för temainställningar, men också användningsinställningar (vilka funktioner behöver varje person snabbast tillgång till?) Även saker som smarta högtalare som inte har skärmar kan byggas för att hämta uppbyggnadsmärkning av varje app och överfatta ett talanvändargränssnitt för att interagera med dem automatiskt! Tangentbordsgenvägar och röstmeddelanden kan enkelt tilldelas av antingen en användare eller de artificiella intelligenskonstruktioner som installerats i operativsystemet. Prioritetsfunktioner som den specifika användaren behöver snabb åtkomst till skulle uppvisas vara mest framträdande på alla användarens enheter medan mindre använda funktioner skulle vara dolda i överfyllningsgränssnittet. Naturligtvis har vi också det här konsistensproblemet med att utforma språk också, och det är ett problem Intelligent Tal User Interfaces måste också lära sig om. Det finns stora grupper av människor som talar och förstår helt olika språk och dialekter. Vi har många överflödiga ord på denna jord full av människor. Låt oss äntligen titta på webbplatser igen ... eftersom de är alla taggade på samma sätt på framsidan med hjälp av hypertext markup-språk, är det mycket enkelt att översätta webbsidor till olika språk. Vem som helst kan bygga en webbläsare som gör det automatiskt och faktiskt vi har massor av plugin-program för webbläsare och andra webbtjänster som bara gör det. Vad händer om du vill översätta en smarttelefons dåligt utformade GUI till något som du kan förstå? Det kommer inte att hända, eller hur? Även utvecklare som utformar appar och program måste faktiskt göra olika versioner för varje språk manuellt (om de till och med använder aktuellt språk istället för färdiga ikoner som ingen förstår). Då måste användaren specifikt välja att installera språkversionen som de vill ha. Det är inte effektivt! Det skulle vara så mycket bättre om våra datorer kan ändra apps enligt våra preferenser på samma sätt som våra webbläsare kan ändra webbsidor enligt våra preferenser. Med en universell frontänd kan ett tal UI-tema negera behovet av bildskärmar, vilket möjliggör smartphones med hörsel. Vi behöver samarbetsregler för att växa snabbare Varje stort hopp i utvecklingen av den mänskliga civilisationen möjliggjordes genom att man överens om en slags samarbetsstandarder och regler. För världsomspännande webbläsares informationsålder var det en vanlig form för att betjäna webbsidor till webbläsare över ett standardprotokoll och uppmuntra dessa webbläsare att göra dessa webbsidor konsekvent. Tidigare har vi standardiserat på saker som telefon. En vanlig vanlig telefon kan kommunicera med någon annan telefon runt om i världen. Elektricitet distribueras runt elnätet utan några kompatibilitetsproblem. Tågspår är alla samma så att tåg kan komma över dem. Under Romens tid för tusentals år sedan byggdes vägarna på ett konsekvent sätt som foder upp hjul mellan benen på två hästar som stod sida vid sida så att alla vagnar och vagnar kunde röra sig effektivt (och moderna tågspår var ens utformade för att matcha den bredden). När vi lärde oss att bygga en brand eller göra ett hjul, lärde vi oss tekniker till andra så att de skulle veta hur man gör det rätt. I dagens ekosystem för programutveckling och datorsystem för operativsystem har vi knappast några omfattande samarbetsregler, och det kommer att göra hoppning till "Åtgärdens ålder" mycket svårare. Varje stort hopp i utvecklingen av den mänskliga civilisationen möjliggjordes genom samarbetsregler. Låter bekant? Några av dessa idéer om att ta lektioner från webbutveckling och tillämpa dem på applikationsutveckling kanske låter bekanta. Det finns faktiskt redan lite arbete på området "Progressive Web Apps". Relativt nyligen har webbplatser (i vissa webbläsare) fått möjlighet att lägga till funktioner som normalt var reserverade för inbyggda appar. Till exempel kan webbplatser nu programmeras för att svara på inmatning från en enhetens GPS-mottagare och accelerometer och pekskärm. De kan även fungera offline i vissa fall och kan till och med tillhandahålla push-meddelanden. Google har börjat investera i dessa och Microsoft nyligen tillkännagav att PWA är tillgängliga i Windows Store. Medan jag inte är säker på om uppgraderingen av världsomspännande webben till ett världsomspännande applikationsekosystem är exakt det rätta att göra,det låter som om den riktningen kan bli riktigt bra om vi får det rätt. Microsoft hade också en liknande idé i deras "Universal Windows Platform" -initiativ där denna nya typ av applikationsutveckling skulle göra det enkelt att skriva program för alla operativsystemplattformar och skapa program som svarade på varje enhetens skärmstorlek och kapacitet. Tyvärr har det inte blivit mycket bra alls. Microsofts egna utvecklare kan inte göra Windows 10-appar som följer någon form av konsekvent GUI-design. Ingen av dem har ett korrekt åtkomstnyckelgränssnitt eller globala röstkommandokontroller eller till och med en anständig temastruktur. Om vi ​​kan standardisera en gränssnitt för GUI-märkning och avlasta UI-designformatering och talgränssnitt till operativsystemet och / eller tematilläggstillägg, kan det vara riktigt bra för konsistens och systemövergripande artificiell intelligent konstruktionsintegration. Och precis som på webben kan frontändkoden fortfarande genereras av någon form av back-end-kod du vill använda. Jag kan skriva en fullständig HTML5-kompatibel webbsida som genereras med hjälp av gammal ASP-server-kodning. Back-end-kodningen för vårt moderna operativsystem i framtiden kan fortfarande vara någonting, och borde antagligen vara modulärt på samma sätt som webbservrar. Om du vill koda i PHP, brukar du lägga till det här stödet i din webbserver. Varför kan inte våra datoperativsystem vara den flexibla och plattformsagnostiska? De borde verkligen vara. Jag behöver egentligen inte ett specifikt operativsystem eller webbserverprogramvara för att kunna programmera en webbplats i PHP eller ASP.NET eller Perl eller vad som helst. Jag behöver bara den bakåtvända utvecklingsmiljön installerad. Så ska ett framtidsoperativsystem fungera. Vill du köra en Win32 app? Låt operativsystemet installera Win32-delsystemet automatiskt. Universal Front End Självklart behöver denna nya idé om att designa applikationer där fronten-GUI eller tal-gränssnittet styrs av användardefinierade teman som är installerade i operativsystemet behöver ett namn. Jag föreslår "Universal Front End". Det får poängen över att vi vill att detta ska vara något som kan modifieras universellt intelligent av antingen artificiella intelligenta konstruktioner eller användargenererade teman. Vi kan kalla markeringsspråket som används i Universal Front End-designen något som "UFEL" (Universal Front End Language). Sätt mer utrymme för innovation Om vi ​​kan separera användargränssnittet från den bakåtliggande programmeringen av våra appar och göra enhetens operativsystem driva gränssnittet på ett konsekvent sätt öppnar vi stora möjligheter till innovation. Du kan skapa en ny telefon med en cirkulär skärm som innehåller ett användargränssnitt som ändrar alla befintliga appar med en ny konsekvent användargränssnitt. Eller du kan skapa en smartphone utan skärm alls och ett systemtema som konverterar alla användarkommandon till talkommandon. Eller du kan göra en stor bildskärm med ett systemtema som konverterar alla användarkommandon till Kinect / "Minority Report" stil handbevakningar. Eller du kan skapa ett temat virtuellt / augmented reality system som ändrar alla appkommandon för att dyka upp i ett 3D-utrymme. Eller du kan skapa ett systemtema som gör att alla appar ser ut som om de körs på Mac OS 8.1. Eller du kan skapa ett systemtema som gör att allt ser ut som Star Treks LCARS-system. Möjligheterna öppnas så mycket när du inte behöver begränsa appar till hemska små rektangulära pekskärmar som vi gör idag när det gäller iOS och Android. Genom att ta ansvaret för bra GUI-design bort från enskilda utvecklare (vem, låt oss möta det, är det hemskt) kan vi öppna en marknad för systemomfattande designers. Det kommer att generera innovation i användargränssnittet som gäller för hela enheten på ett konsekvent sätt baserat på individens preferens. Det kommer också att öppna upp innovation i artificiell intelligensdesign som återigen interagerar med alla andra appar och kringutrustning som ägs av användaren på ett konsekvent sätt. Alla dessa saker är enorma positiva för åldern av augmentation. Utforma ett operativsystem för framtiden Om användargränssnittet för allt var bara ett tema kunde vi ha mycket innovativa formfaktorer som helt enkelt använder sig av ett annat tema. Kom ihåg var du kom ifrån Jag tror att ett annat stort problem med dagens programutvecklare och röra av mobilappar, stationära appar, VR-appar och smartwatch-appar är att många av dagens utvecklare och användarupplevelsedesigners inte har hunnit följa med databashistoriken. Om all kunskap om hur något byggdes för 30 år sedan är borta, är det ett stort problem som saktar ner vår tillväxt ... speciellt om den lösningen från det förflutna kunde ha hjälpt oss i nuet. Snart kan det vara omöjligt att lära sig om eller använda original Palm OS, Blackberry OS, Psion, Windows CE, Web OS och olika versioner av Symbian, och det är synd eftersom många av systemen hade innovativa funktioner som fortfarande saknas i dagens mest populära operativsystem. Så, framtida operativsystem borde absolut kunna simulera historien om databehandling! I vissa fall är detta redan väldigt enkelt. Jag kan installera Windows 3.0 på en Hyper-V virtuell maskin. Jag kan köra några ursprungliga Xbox-spel från 18 år sedan på en modern Xbox One. Jag kan spela antika videospel från 80-talet på en NES Classic Mini. Ta tillbaka Windows ME så att du kan lära av det! World Wide Web är som det antika Alexandria-biblioteket i romerska Egypten för tusentals år sedan där forskare skulle kopiera varje bok som de kunde ta hand om för spridning av kunskap. När vi förlorar dessa arkiv av kunskap till bränder eller serverns stängningar, är vi dömda att upprepa våra misstag. Detsamma är sant eftersom vi förlorar förmågan att lära av tidigare och tidigare program och operativsystem. Slutsats De nuvarande teknologihögtalarna som Apple, Google, Amazon och kanske Microsoft vill inte investera i en öppen samarbetsstruktur för programvara, teman, artificiell intelligens och operativsystemutveckling. Dessa företag kommer sannolikt att vara mer intresserade av att äga användare, låsa dem in i specifika ekosystem och utnyttja dem för vinst. En sammansatt uppsättning regler för att utforma framtida datorsystem för operativsystem skulle troligen behöva komma från någonstans annat som World Wide Web Consortium eller någon annan typ av standardutvecklingsorgan. Många utvecklare skulle behöva gå ombord men jag tror fast att något som detta skulle återuppliva innovation och konkurrens inom teknikvärlden som helhet samt förbättra konsumentansökan. Kanske skulle det vara klokt för de stora OS-företagen att spearhead några samarbetsregler trots allt.

mobil abonnemang