8 ms·
Well, there are a few good reasons for that: coding for WinRT is harder than it should be, and the developers are not fans of the WinRT UI (so they don't use it
by jbk 14y ago
Well, there are a few good reasons for that: coding for WinRT is harder than it should be, and the developers are not fans of the WinRT UI (so they don't use it).
I am in this very situation, with an app with has dozens of millions of users on Windows (and millions daily).
The first reason is the most important. WinRT requires a lot of rewrites of your code. (and the rationale behind some limitation are often political), and Microsoft is not helping or making it easy for you Notably for networking and multimedia.
Networking: everyone uses the BSD sockets, Win32, Linux, OSX, iOS, Android, Symbian, Bada, etc... And you cannot use them on WinRT. There is a very high chance that your code or one of your library uses it, of course.
But the bad part is that Microsoft does not make easy with a wrapper exposing WinSock-like API based on their new API. Not even a wrapper than does 80% of the needs.
Multimedia and Games: your videogame that works with a C++ engine and OpenGL ES for casual games that works on iOS, Android, Bada,... does not work under WinRT, because OpenGL is not allowed... And I don't even speak about Video acceleration.
Yes, they need to do a massive change in their APIs, but helping the transition would have been a good idea...
So yes, writing yet another Twitter client is easy on WinRT, for more complex applications, well, it is way too hard and difficult to do it this fast.
- bornhuetter 14y agoDo you think that WinRT will cause anything important to be broken in VLC, or is it just making your life harder to get it working?
- jbk 14y agoWell, outputting video and audio should not be too hard to adapt (almost work out of the box). Decoding does not do system calls, except for hardware decoding, so no worry. File input is worrying because of the sandbox, but should be doable with some work. But networking is a nightmare. 20 libraries are using WinSock2 (including some codecs like FLAC), plus libVLC's core. Sure HTTP access is fine, but RTP, RTSP, FTP, HTTPS, multicast UDP are weirder beasts... To add it to the pain, VLC is a mostly C99 project, but C99 is too new a standard for Microsoft to implement it :)
- chj 14y agoMissing c99 support is really a pain in the ass. I can't believe they don't care about it.
- stonemetal 14y agoI can't believe they don't care about it. Considering the last time MS released a C compiler I can fully believe it.
- pjmlp 14y agoMicrosoft cares about C++, which already includes most of the C99 changes. GCC has recently migrated to C++ and CLang is developed in C++. So Microsoft reasoning is that C89 is good enough for them, and you are free to buy a compiler from another vendor if you really want to use C99.
- pjmlp 14y agoOoops, I pissed off the C fanboys!
- bornhuetter 14y agoMicrosoft seems to have borderline personality disorder when it comes to supporting developers and standards. Good luck with it – I’m sure you know it’s one of the Killer Apps on any platform.
- jbk 14y agoThanks.
- masklinn 14y ago> To add it to the pain, VLC is a mostly C99 project, but C99 is too new a standard for Microsoft to implement it :) Hah, better than that, Herb Stutter explicitly stated they don't give a flying fuck about C99: http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and... > If you really need [...] features in C95/C99/C11 that are not part of ISO C++[, use] a different compiler
- davedx 14y ago> because OpenGL is not allowed Wow. That's pretty ridiculous. So DirectX is allowed? OK if you're a triple A studio with a cross-platform engine. Show stopper for most other devs.
- jbk 14y ago> Wow. That's pretty ridiculous. So DirectX is allowed? DirectX11 with 2 compatible modes (D3D9 and D3D10)
- mtgx 14y agoI didn't even think of that, but all mobile games on iOS and Android are done with OpenGL ES, and Microsoft doesn't even support it. That could be a major problem for Microsoft.
- pjmlp 14y agoMost game engines support multiple graphics APIs. Contrary to popular belief by many geeks, game consoles do not support OpenGL as well. When they do, like the PS3, is a kind of subset that most studios avoid using anyway, and prefer to make use of the lower level APIs.
- trotsky 14y agomaybe someday microsoft will be able to build its own stable of titles if these xbox and direct x projects ever take off
- supersaiyan 14y agoI'm surprised they didn't release an updated version of XNA for windows 8, that's by far one of the best game dev tools out there.
- tluyben2 14y agoDisclaimer: I have no clue about Win specific game development, but I thought this would be interesting for others. I read in a lot of places recently (this year) that XNA is 'dead' (search Google for instance). Is this true? What replaces it?
- aschearer 14y agoMonoGame replaces it and is available now for Windows 8. In fact I've completed two games using MonoGame which run using 95% the same code on Windows XP, Vista, 7, and 8. Pretty soon there will be a Linux and Android version as well. If you want to see what's possible you can check them out: 1) Adlib: http://apps.microsoft.com/webpdp/en-US/app/adlib/9cc0809e-b054-4533-b28d-9c600e5b0ff8 http://apps.microsoft.com/webpdp/en-US/app/adlib/9cc0809e-b0... 2) Petunk http://apps.microsoft.com/webpdp/en-US/app/petunk/c03ecbca-4cc3-4d9a-9191-888e1f5f8fb3 http://apps.microsoft.com/webpdp/en-US/app/petunk/c03ecbca-4... You can also read a great deal more about the process as well as watch me convert a game live here: http://www.reddit.com/r/windows8/comments/10g4r2/check_out_my_two_new_games_for_windows_8/ http://www.reddit.com/r/windows8/comments/10g4r2/check_out_m...
- tluyben2 14y agoI was looking for an 'official MS technology' replacing it. I know monogame. I wouldn't think anyone NEW to game dev would start with it; it's for XNA devs wanting a life after, right?
- pavlov 14y agoYou can use the ANGLE library [1] to translate OpenGL ES to DirectX. It's used by both Chrome and Firefox, so it's widely deployed and also tested for OpenGL ES conformance. Re: networking, you are of course right. At the same time, I can sympathize with Microsoft's decision to abandon Winsock. Cross-platform use of BSD sockets is mired in a deplorable mess of #defines and '90s incompatibilities. For new code, the non-blocking WinRT API is a million times better -- the question is, what can Microsoft do to make porting easier? [1] http://code.google.com/p/angleproject/ http://code.google.com/p/angleproject/
- jbk 14y ago> Re: networking, you are of course right. At the same time, I can sympathize with Microsoft's decision to abandon Winsock. Cross-platform use of BSD sockets is mired in a deplorable mess of #defines and '90s incompatibilities. For new code, the non-blocking WinRT API is a million times better -- the question is, what can Microsoft do to make porting easier? That is not a reason to not code and offer a code wrapper for BSD-sockets-like API based on WinRT sockets. Of course, no need to cover 100% of the API and they could use lots of warnings to force developers to slow transition.
- melling 14y agoIsn't DirectX part of a walled garden? If more games are written in OpenGL, for example, they will be easier to port to Android, Linux, Mac OS, and even the iPhone. A decade ago, it looked like OpenGL was dead. I, for one, am glad to see its resurgence.
- mtgx 14y agoOpenGL ES 3.0 and OpenGL 4.3 are going to be even more interesting in regards to that, as developers can write OpenGL ES 3.0 games for iOS and Android devices, and then do a 1:1 port to OpenGL 4.3 PC's, without further modifications, because OpenGL 4.3 fully incorporates OpenGL ES 3.0. What I find mind-blowing, though, is that Intel's new architecture Haswell which will come out mid 2013, and is supposed to be even more GPU-oriented than previous chips, will only support OpenGL 3.2, which will be 4 years old by the time the chip launches (some sources say OpenGL 4.0 - still 3 years old though)...and yet it will support DirectX 11.1. I find that incredibly disappointing. I guess Intel just doesn't care about OpenGL. I'm not sure how they are supposed to make us believe that they are serious about entering the mobile market with that kind of attitude towards OpenGL.
- sageikosa 14y agoVisual Studio 2008 to Visual Studio 2010 Professional upgrade price: $249. Visual Studio 2010 Professional to Visual Studio 2012 Professional upgrade price: $499.
- Ntrails 14y agoEyestrain within 8 minutes of looking at VS2012: Priceless
- bunderbunder 14y agoWell, there are a few good reasons for that: coding for WinRT is harder than it should be A lot of us haven't even gotten far enough to figure that out. Microsoft just switched us all over to a new UI toolkit (Windows Presentation Foundation) with the release of .NET 3 five or so years ago. We've invested a lot of time and money into getting up to speed with this new technology. And now we're already being asked to migrate away from it and onto yet another Next Big Thing. Meanwhile, Microsoft zinged its mobile developers (the very ones they're so desperate to court) even harder by deciding that the new mobile platform they brought out only two years ago would not be compatible with the new mobile platform they're bringing out now. It was twelve years ago this month that Steve Ballmer did his famous monkey dance while repeatedly shouting "Developers!" and apparently slipping into some sort of fugue state. Well, it turns out that all those developers he wanted to make such a big deal of saying are such a big deal? They're are all kind of pissed off and disgruntled right now.
- pjmlp 14y agoMetro is WPF based.
- mariusmg 14y agoTechnically. In reality WinRT is missing A LOT of stuff from WPF (heck WinRT doesn't even reach parity with Silverlight). Simple stuff la x:Static, x:Array are not available. WinRT 1.0 is basically a subset of Silverlight with a few specific controls thrown in.
- beagle3 14y ago> heck WinRT doesn't even reach parity with Silverlight That reminds me: WPF is not even a superset of Silverlight; There's functionality I need in Silverlight (regarding media codecs) which is not available in WPF, and my only way to get it is to instantiate a browser, run a silverlight app inside, and somehow bridge it all underneath in my app. Pure madness.
- bunderbunder 14y ago
- radicalbyte 14y agoFunny, I have exactly the opposite opinion: because Metro supports html + javascript it's very easy to get data-driven apps out with very little effort. Of course if you're doing anything interesting then it's probably a nightmare.. but the vast majority of applications aren't doing anything interesting, so Win RT is great for them.
- andywhite37 14y agoFrom what I understand, the HTML+Javascript WinRT APIs are really only supported on the "full" Windows RT/Metro environment, not Windows Phone 8. Windows Phone 8 supports C#/VB+XAML, C/C++, and you can use HTML and Javascript, but only in a web browser control, which is not the same as a true Javascript API with hooks into lower-level constructs. Apparently, you can also run legacy Windows Phone 7 Silverlight apps on Windows Phone 8 as well, but that is just a stopgap to not completely cut ties with the legacy apps.
- riviera 14y agoMy guess is that PhoneGap is going to be massively successful with WP8 apps, if the platform is ever to take off.
- partisan 14y ago"So yes, writing yet another Twitter client is easy on WinRT, for more complex applications, well, it is way too hard and difficult to do it this fast." Almost every Metro style application demo I've seen is some variant of a "social" app. Do they really think that the millions of windows developers all suddenly started working on social apps? Every one of the pivots that they have made in the past few years has been in reaction to some external threat and the developers are in the crossfire. Windows developers are too weary to be excited about yet another wide ranging change.