Komponenter

Den mytiska "Vista-applikationen"

Splunk timestamp extraction to epoch | How to extract year, date, time using strftime and strptime

Splunk timestamp extraction to epoch | How to extract year, date, time using strftime and strptime
Anonim

Jag älskar analytiker. Oavsett om det förutsäger morgondagens nästa stora sak eller låter dödsklingan för gårdagens branschvarvtagare, går analytiker aldrig på nya sätt att få fel.

Fall i punkt: Windows Vista och "app gap". Evans Data Corporation (EDC) , skriver mindre än 10 procent av utvecklarna för Microsofts nuvarande toppmoderna teknik. Majoriteten (49 procent) skriver fortfarande för XP, medan en liten, men växande, kontingent (13 procent) fokuserar på Linux. Under tiden fortsätter de otaliga stora medierna att avkalla bristen på nya Vista-applikationer. "Det är OS som ingen vill," säger de och utvecklarna "reagerar i enlighet därmed." Det är klart att de har fel. Igen.

[Ytterligare läsning: Våra bästa Windows 10-tricks, tips och tweaks]

Du ser, det finns inget sådant som en Vista-applikation. Precis som det inte finns något sådant som en XP-applikation. Eller en Windows 2000-applikation. Utvecklare som skriver för Windows riktar sig sällan till en specifik version. Snarare väljer de ett visst API-ramverk - till exempel MFC / ATL eller.Net - och fortsätt därifrån. Huruvida den resulterande applikationen körs på en viss Windows-version beror på vilka, eventuella, versionsspecifika API-förlängningar som utvecklaren använder i sitt projekt.

För de flesta applikationstyper är detta en nonissue: De använder generiska API-funktioner, vilket gör det möjligt för dem att springa över vilken version av Windows som helst som stöder den här ramen. Och eftersom Microsoft gör ett bra jobb med att återställa nya ramar till sina äldre operativsystem, utvecklas sällan ett val mellan rich API-funktionalitet eller en bred installerad bas (det anmärkningsvärda undantaget är videospelutvecklare, för vilka hävdar DirectX 10 begå sig till Vista).

Så hela Vista-app gap gapet är lite av en halm man. Den verkliga frågan bör vara: Varför utvecklar inte utvecklarna de olika iterationerna av. Net-ramen? Som alla som följer Microsofts utvecklingskarta kommer att bevisa att det mesta av företagets banbrytande API-utveckling äger rum inom. Net. I själva verket när "experterna" pratar om nya programmatiska resurser i Vista - Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) och så vidare - de talar verkligen om.Net Framework 3.0. Och eftersom.Net 3.0 finns på plattformar på nivån (som Windows XP), ringer argumentet runt om till en fråga om.Net-acceptans bland utvecklare - och varför har de hittills inte tagit bort det.

The svaret är dubbelt: För det första gillar utvecklarna inte att rikta in sig på API: er som inte är allmänt tillgängliga över den installerade basen. Trots Microsofts aggressiva stöd av versioner på nivån är det fortfarande en stor skillnad mellan "tillgänglig" och "tillgänglig efter att ha laddat ner 20 MB plus av komplexa bibliotek och att ha dem installerade över olika delar av ditt system." Faktum är att.Net inte skickas som en del av Windows XP, och det betyder att utvecklare måste övertyga användare att först installera den nödvändiga versionen av. Net-ramverket innan de kan installera en mjukvara - inte alltid en enkel försäljning, särskilt i den låsta IT-branschen.

Som det första OS som ska skickas med.Net-ramverket som standard installerat, skulle Vista uppmuntra till utveckling av.Net 3.0-applikationer. Men eftersom det också stöder äldre Win32, COM, ATL, MFC och down-level. Net ramverk, finns det ingen verklig brist på Vista-program. Faktum är att om du inte bara behöver den senaste och bästa WPF / WCF-ramfunktionaliteten, är det lite att motivera dig, utvecklaren, att göra hoppet till.Net 3.0 eller till och med 2.0. Om du antar att du inte stöter på UAC-mekanismen (User Account Control), ser ditt "gamla" Windows-program förmodligen ut och fungerar bra under Vista, som det är. Jag vet, för det var fallet med min egen kod: Några tweaks för att rymma UAC (för det mesta flytta några temporära filer bort från nyskapande katalogstrukturer) och mina program och tjänster körde som champs under Vista - precis som de gör under Windows XP, Server 2003 och Windows 2000. Varför fixa det när det inte är brutet?

Den andra anledningen till att utvecklare har shunned. Net är att det är långsamt. Många vanliga funktioner tar helt enkelt längre tid än.Net, vilket tvingar utvecklare att välja mellan API-sofistikering och råprestanda. Inte överraskande, de flesta utvecklare väljer sistnämnda, som jag en gång var tvungen att göra när jag upptäckte att.Net-ekvivalenten Prestationsdatahjälpen (PDH) var allt utom oanvändbar för realtidsprovtagning av Windows-prestandatältdata. Som ett resultat är jag tvungen att behålla en åldrande (ungefär 1997) Visual Studio 6-kodbas medan jag väntar på att Microsoft slutligen effektiviserar.Net till en punkt där det är ett genomförbart alternativ. Det är en gammal historia och alldeles för vanligt bland Windows-utvecklare.

Bottom Line: När analytiker (och deras mediakompisar) avkänner bristen på "Vista-applikationer", trumpeterar de bara sin egen okunnighet.

Jag antar att det är en Mac sak: Så många av mina samtidiga har blivit upptagna i fältet för verklighetstvridning att tanken på en länk mellan API-funktionalitet och OS-version har blivit en accepterad del av den konventionella visdomen. Det är ett ärligt misstag, som motsvarar Apples arkaiska patchwork av versionsberoende till Microsofts ofullkomliga, men mycket mer flexibla API-spridning.

För mycket frukt kommer det att göra för dig.