De komst van Windows 8 heeft gevolgen voor Windows-ontwikkelaars: die kunnen applicaties schrijven voor de nieuwe Metro-interface en kunnen nu ook html, css en javascript gebruiken. Tweakers.net vroeg enkele ontwikkelaars op Microsofts Build-ontwikkelaarsconferentie naar hun reactie en ontdekten dat ze veelal positief zijn over de nieuwe interface, maar dat ze Metro-applicaties waarschijnlijk met hun oude tools blijven ontwikkelen: webtalen zijn vooral interessant voor nieuwe ontwikkelaars.
Reacties (60)
WinRT is een OO versie van Win32. Bij het ontwikkelen van een applicatie moet straks de keuze worden gemaakt: Of Win32 API of WinRT. Wanneer je voor WinRT kiest kan je dus geen P/Invoke meer doen. Het grote voordeel is dat alles op een OO manier benaderd kan worden, en dat het een naadloze integratie met .Net heeft.
Ook het maken van een GUI zal anders worden, tenminste, voor de gene die nog niet met WPF hebben gewerkt. Het XAML zal nu ook gebruikt gaan worden in C++ applicaties. Zover ik begrepen heb is het geen WPF, maar hergebruiken ze de kennis en technologie van WPF. In de basis is het het zelfde.
WinRT zal het ontwikkelen van applicaties 'makkelijker' maken. Probleem is alleen dat niet de hele wereld ineens overschakeld op Windows 8, dus de echte native Windows 8 / WinRT applicaties zullen nog jaren schaars blijven denk ik.
edit:
Overigens, het HTML5 en javascript is 1 van de opties om een Metro app te maken. Je hebt de keuze uit C++, .Net(C#/VB.Net/etc) en HTML5 met Javascript. Ongetwijfeld zullen andere talen ook beschikbaar komen op termijn.
Het maken van een app met Javascript is overigens niet helemaal het zelfde als een web app. In javascript kan je native het WinRT aanroepen(Windows calls dus). HTML5/Javascript is gewoon een extra mogelijkheid om een Metro app te maken naast C++ en .Net. De mogelijkheden met de verschillende opties zijn, in de basis, het zelfde.
[Reactie gewijzigd door beany op 24 juli 2024 08:31]
Ik weet niet of ontwikkelaars hier heel blij van gaan worden. De WinRT UI laag is inderdaad een afgeleide van WPF en dus niet backwards compatible. Hij is te gebruiken vanuit native applicaties (C++, ect.), .NET en HTML5+scripttalen (nu is JScript tegenwoordig ook .NET dus ik weet niet of je die twee nog los moet zien).
Bestaande codebases kun je waarschijnlijk dus grotendeels weggooien.
Naast Silverlight, WPF (XBAP of desktop) en Silverlight for Windows Embedded (wat ook al zo'n rare XAML/C++ mix is) hebben we nu dus een vierde niet-compatible framework voor UI op windows platforms (even afgezien van de legacy frameworks zoals WinForms en alles daarvoor).
Overigens ben ik zeer benieuwd hoe ze databinding gaan aanpakken voor native apps (als dat uberhaupt al mogelijk gaat zijn vanwege het ontbreken van reflection).
Ben ook benieuwd hoe ze in WinRT de graphics laag hebben vormgegeven. Wellicht krijgen we naast GDI, GDI+, Direct2D, DirectWrite, Direct3D en XNA *nog* een API?
Al met al lijkt Microsoft de ontwikkelaars voor haar plaforms weer eens aan te geven dat ze niet echt zeker zijn waar ze naartoe willen. In plaats van *een* 'unifying framework' met wisselende features voor afwijkende platforms (bijv. geen telefoonfuncties in desktopapplicaties) moeten we nu gaan kiezen tussen een aantal niet verenigbare frameworks. Of je ontwikkelt parallel voor allemaal, maar dat is nogal een investering.
Als Microsoft wil dat Metro (op wat voor device dan ook) een succes wordt dan is het een pre om het bestaande ontwikkelaars gemakkelijk te maken hun applicaties er voor geschikt te maken. Zoals ze het nu aanpakken wordt het een pijnlijk proces.
Nog een kleine correctie: P/Invoke staat los van Win32 (je kan vanuit .NET elke willekeurige DLL invoken). Ook in metro applicaties (mits in .NET) zal je P/Invokes kunnen doen. Nou zijn P/Invokes meestal niet echt handig vanuit een portability-oogpunt dus of het verstandig is is een andere vraag...
[Reactie gewijzigd door Verwijderd op 24 juli 2024 08:31]
Zoals ik het nu begrijp is WinRT in feite WPF 2.0 - combineert (in theorie) alle goede dingen van WPF, Silverlight, WinForms, en HTML5 in 1 library en wordt nu eindelijk *de* nieuwe Windows API.
[Reactie gewijzigd door Dreamvoid op 24 juli 2024 08:31]
Toevallig gisteren gekeken naar een stukje Channel 9 Live waar dit zelfde werd uitgelegd/gezegd.
[Reactie gewijzigd door HolleBolleTeun op 24 juli 2024 08:31]
Wat wel grappig is, is dat de ARM versie van Windows 8 net zo'n 'clean break' met de legacy Win32 API wordt als de ARM versie van OS X was met Carbon. Op iOS is alles Cocoa, op W8-for-ARM is alles WinRT. Dat schept duidelijkheid.
[Reactie gewijzigd door Dreamvoid op 24 juli 2024 08:31]
Het hele functie aanroepen is met WinRT verleden tijd. Dat was meer vanuit C bekeken(en voor die tijd, 1993, ook wel logisch). Nu is het echt OO, en gericht op C++, waarbij .Net een dusdanige architectuur heeft dat het naadloos aansluit.
Als ik mijn front-end in JS zou kunnen scripten, en al mijn calls naar de business laag naar een in C# geschreven deel kan doen, dan zou dat best of both worlds zijn. Is ook makkelijk te migreren naar AJAX en webservices zodat je het ook echt als een webapp in kunt zetten voor tablets en phones.
Ik heb er wel enorm veel zin in!
Een interview met een webdeveloper om te kijken of hij iets zit zitten in Metro is dan veel waardevoller.
Dat gezegd, als verstokt iOS developer vindt ik Metro er wel heel interessant uitzien
Persoonlijk weet ik niet of HTML5 en Javascript zo'n goed idee is in Windows 8. De applicaties die ik nu soms tegen komen geven niet het applicatie gevoel, maar meer een web-gevoel. Je bent vaker bezig met laden en vaak werkt het niet echt smooth zoals een echte applicatie. Voorbeelden hiervan zie je vaak op mobiele apparaten waar applicaties zijn te vinden dat eigenlijk gewoon web pagina's zijn.
Daarnaast ben ik ook totaal geen fan van de Metro interface... voor op een computer. Tijdens de interviews wordt er ook gezegd dat het een goede concurrent is voor o.a. de iPad, en daar ben ik het gedeeltelijk mee eens (een goede concurrent ben je niet alleen vanwege een goede interface natuurlijk), maar ik krijg het idee dat dit ook de standaard interface gaat worden voor Windows 8 met de mogelijkheid om terug te schakelen naar de normale interface die we gewend zijn. Bij MacOSx hebben ze dat ook gedaan met de AppLauncher, daarmee krijg je gewoon een iPad interface waar je al je applicaties kan vinden. Handig voor de niet zo technische mensen, maar voor de experts totaal nutteloos. Gelukkig is het bij MacOSx dan ook gewoon een functie die je kan gebruiken maar niet hoeft te gebruiken, en ik hoop dan ook dat dit ook bij Windows 8 zo gaat worden.
edit: mooi filmpje trouwens, goede presentatie ook wat mij betreft!
[Reactie gewijzigd door Soepstengel op 24 juli 2024 08:31]
[Reactie gewijzigd door chinook op 24 juli 2024 08:31]
Goed nieuws in elk geval voor Javascript developers: ze zijn in 1 klap ook volwaardige developers voor Windows geworden, ipv 'alleen maar' webdevelopers.
Het gevaar voor Microsoft is dat het allemaal niet uitmaakt:
- huidige Windows developers zitten op C# en gaan echt niet naar JavaScript
- Microsoft-haters werken met Java en Obj-C en gaan ook niet naar JavaScript
- web developers die met JavaScript werken bouwen geen Windows apps
[Reactie gewijzigd door Dreamvoid op 24 juli 2024 08:31]
Dit heb je altijd als je crossplatform gaat werken en tegen systeem API's gaat praten. Daar is natuurlijk een heel simpele oplossing voor, een laag er tussen die je platform specifiek maakt. De rest van je applicatie hoeft daar geen weet van te hebben.Ja, je zal veel code kunnen hergebruiken, maar de API's in WinRT zal je niet hebben op andere platforms.
Al 100x gezegd, dat is ook niet nodig. Alle huidige talen blijven gewoon bestaan, misschien tegen die tijd zelfs in .NET 5.- huidige Windows developers zitten op C# en gaan echt niet naar JavaScript
Nou daar zie ik ook geen probleem. Ze haten Microsoft dus waarom zouden ze een App voor Microsoft gaan maken? Als ik Apple haat zit ik ook aan JAVA en Objective-C vast.- Microsoft-haters werken met Java en Obj-C en gaan ook niet naar JavaScript
Ik dus wel, en vast vele met mij. Al haat ik JavaScript en ben ik fan van C#.- web developers die met JavaScript werken bouwen geen Windows apps
Ik zie trouwens geen verschil met het bouwen van een website en een Windows app als het op de zelfde manier gebeurt. In de base spreek je nu tegen de Windows API in plaats van een server API. (Windows is eigenlijk de server).
Zit btw echt niet op een concurrent van de ipad te wachten in de vorm van een desktop pc. Zoals ik ook geen Window Media Center als afspeler gebruik. Misschien ben ik ouderwets, maar ik doe gewoon veel met de "verkenner" (explorer).
[Reactie gewijzigd door Madrox op 24 juli 2024 08:31]
Html5 webapps zoals ze nu op beginnen te komen zijn m.i. dan ook een beter idee; Apps in de browser, ongeacht browser of platform en geen noodzaak om platform specifieke code toe te voegen. Overigens hebben wat mij betreft native apps nog altijd de voorkeur, om snelheidsredenen en het feit dat je niet altijd gebonden wil zijn aan browser chrome. Echter de software voor elk platform onderhouden is een flinke klus voor de programmeur(s).
Overigens kan ik me ook erg vinden in wat één van de geinterviewden aandraagt; Productivity apps zullen waarschijnlijk voorlopig niet/nooit in Metro terecht komen, omdat de interface daar niet voor geschikt is. Deze apps (bv Photoshop, 3d werk, videoediting, etc) zullen waarschijnlijk ook nooit als webapp verschijnen omdat html5/javascript daar simpelweg niet krachtig genoeg voor is.
Verder heb ik uberhaupt mijn bedenkingen bij Metro op de desktop. Ideaal voor touch interfaces op o.a. tablets, voor simpel gebruik als browsing, email, media. Maar niet om echt werk gedaan te krijgen. Met de muis slepen om van window te wisselen? Productiviteit -1000.
@Dreamvoid: Als je tegen de grenzen van html5 aan loopt (zoals zal gebeuren bij veel productivity apps), zul je meer native moeten gaan. Zoals je aandraagt kun je proberen in Javascript te blijven werken en WinRT gebruiken, maar dan verlies je alsnog alle portabiliteit naar andere platformen en kom je nog niet verder dan je zou komen als je native zou programmeren.
[Reactie gewijzigd door geez op 24 juli 2024 08:31]
Maar (los van alle cross-browser incompatibiliteiten): HTML5 is een vrij beperkt platform, als applicatiebouwer loop je al vrij snel tegen de grenzen aan wat je kan/mag doen in de browser. Wat doe je als je meer functionaliteit wil?Html5 webapps zoals ze nu op beginnen te komen zijn m.i. dan ook een beter idee; Apps in de browser, ongeacht browser of platform en geen noodzaak om platform specifieke code toe te voegen.
Het oude antwoord is: je moet de boel compleet herschrijven naar ofwel crossplatform frameworks als Flash (ActionScript), Java en Silverlight (C#), of je gaat native met Cocoa (Obj-C), Dalvik (Java), WPF/.NET (C#) of Qt (C++). Wat Microsoft met WinRT wil, is je de optie geven om native in Windows te gaan werken, maar zonder dat je van Javascript af hoeft.
[Reactie gewijzigd door Dreamvoid op 24 juli 2024 08:31]
Het lijkt er op dat Microsoft toch eieren voor zijn geld kiest na hun eerdere bevindingen dat de PC niet dood bloed. Met Windows 8 ligt de focus op tablets en investeren ze in maar 1 algemeen product dat hopelijk op elk systeem kan draaien ongeacht of het van de markt verdwijnt of niet.
Doet me denken aan die holland casino reclame "verspreid uw kansen".
Wat voor effect dit heeft op mensen die Photoshop en andere prof tools gebruiken, wil ik graag te weten komen
[Reactie gewijzigd door DJMaze op 24 juli 2024 08:31]
[Reactie gewijzigd door Dreamvoid op 24 juli 2024 08:31]
Het is allebei interessant, omdat het hier om desktopapplicaties gaat. En bij Build liepen nou eenmaal weinig webdevelopers rond.Een interview met een webdeveloper om te kijken of hij iets zit zitten in Metro is dan veel waardevoller.
off-topic, volgens mij is die Marcel de Vries een groninger of niet :-) (ik herken mijn 'tongval')
[Reactie gewijzigd door evonck op 24 juli 2024 08:31]
als je het voor desktop gaat gebruik kan je hem dan ook strippen al die tablet apps
waarom maken ze niet een voor de desktop en 1 voor tablet
ik wind het een beetje raar alemaal microsoft
zo vlak en flets ogen. Ze hadden er ook wat verfijndere eyecandy van kunnen maken.
W8 voor tablet okee maar W8 to PC is as chopsticks to soup.
Op dit item kan niet meer gereageerd worden.
:strip_icc():strip_exif()/u/29007/crop592572815b642.jpeg?f=community)
:strip_icc():strip_exif()/u/159004/owl2.jpg?f=community)
/u/1695/jumpman60.png?f=community)
:strip_exif()/u/173923/Byakuyas-Eye.gif?f=community)
:strip_icc():strip_exif()/u/122141/ic.tweakimg.net2.jpg?f=community)
:strip_icc():strip_exif()/u/55093/UPpharoah.jpg?f=community)
:strip_icc():strip_exif()/u/160060/joost.jpeg?f=community)
:strip_icc():strip_exif()/u/23110/mouse3.jpg?f=community)
:strip_icc():strip_exif()/u/49652/HomerInBlack2.jpg?f=community)