Ask HN: Microsoft from non Webdev perspective?

Okay, so if you've ever done any extensive frontend development, you probably hate IE. To put it bluntly Microsoft's browser platform sucks from a developer perspective. You make your app it works cause you know your W3C specs, etc, then you go to IE and no addEventListener or indexOf, or HTML comments (yes an IE6 bug) blows up your awesome app. Then you try to debug and get incredibly descriptive notices like [Object object] or just nothing.

So MS has failed badly for the webdev community, my real question is, what is it like developing with Microsoft tools for non-web apps, say Desktop or Mobile Apps? Do the tools make the grade of the GCC/Linux toolchain? Does everything fallapart for cross-platform Apps?

  • I'd contest that argument. I'd agree perhaps with IE 8 being a PITA, but you can't reaaaaaaaally blame Microsoft for IE 6. It's not like google existed in its magnitude back then or even mozilla. Back then there wasn't much stability either i.t.o market leaders (if I remember correctly netscape escaped roundabout that time and opera didn't have much market stake).

    If you check IE 9 developer tools, you can't even 'switch back' to IE 6 anymore (well, atleast not in x64 mode).

    There's a reason why you should opt to use 'cross-browser' libraries such as jQuery. Google chrome has a couple of bugs and even firefox. Not all problems have solutions - take for example styling of 'web' controls. IE renders native controls, browsers render their specific controls - some allow text-indent while others don't.

    In terms of application development - as far as I know all non .NET tools have pretty much be phased out (ie. VB6 etc.).

    You essentially face the same problem to some degree (ex. users that still run with IE 6 are probably like to be running .NET 2.0 or none at all).

    I think at the moment Microsoft is opting for cross-platform apps via web and wcf/web api services. You can also use Mono, but it's generally at least one major version behind (couple of years) and doesn't fully support everything the .NET framework does.

    When talking about 'cross-platform' apps, people are rather quick to forget that applications are written during certain time periods. It's easy to support users who are using 10 year old software/hardware (ex. windows xp 32) with 10 year old software (.NET 1.0).

    I reckon it's about the same effort to force a user to install 'open source' libraries such as open-gtk as it is to force the user to use a different browser or install the .NET framework if they're on windows.

    I'm actually hoping that all the legacy windows operating systems get upgraded to Windows 8 when it gets released. Microsoft is running a campaign where you pay 30$ or something to upgrade a Windows XP+ OS to Windows 8. Windows 8 also boasts quite a bit of improved performance and less resource usage - which makes it perfect for all that legacy hardware (I reckon most PCs built the last 12 years should be able to run it). This would also pave the path to better HTML standards support with IE 10 and better .NET framework support (4.5).

    In regards to the tools - I reckon if you're going a C#.NET route with professional+ visual studio with other addons, then I'd say the dev environment greatly surpasses that from what I've seen on linux (visual studio pro ~ $400 USD, addons are free and priced - I use resharper, mindscape web workbench and tangible t4 daily).

    You could always go Java route if you don't like the .NET framework.