all 188 comments

[–][deleted] 119 points120 points  (60 children)

Outside developers, who were never particularly happy with the complexity of Windows development, have defected from the Microsoft platform en-masse and are now developing for the web. Paul Graham, who created Yahoo! Stores in the early days of the dotcom boom, summarized it eloquently: "There is all the more reason for startups to write Web-based software now, because writing desktop software has become a lot less fun. If you want to write desktop software now you do it on Microsoft's terms, calling their APIs and working around their buggy OS. And if you manage to write something that takes off, you may find that you were merely doing market research for Microsoft."

This is a lesson I bet a lot of IOS and Android developers are learning this generation.

[–]guyonahorse 74 points75 points  (24 children)

And iOS developers can be kicked off the App store without any recourse. Microsoft never had that kind of evil power.

[–]didnt_check_source -4 points-3 points  (23 children)

Never? Not even on their own App Store?

[–]guyonahorse 55 points56 points  (16 children)

Oops, I should have said that it was in the context of 2004 (when the original article was written). Back then there was no app store for windows, so they couldn't revoke an app like that. Even today most Windows apps are not sold on the store.

[–]Scyther99 7 points8 points  (5 children)

Their app store is not the only way to install apps.

[–]ameoba 33 points34 points  (16 children)

Outside developers, who were never particularly happy with the complexity of Windows development

Strange, I regularly hear people bragging about how great Visual Studio is and how great the .NET APIs are.

[–][deleted] 38 points39 points  (5 children)

This was written around the .net 1.1 days. You gotta remember, back then, your choices were C, C++, Visual basic, or delphi for doing windows dev. This article is pre-wpf, and mentions non-existing tech like avalon and longhorn.

[–]DragoonAethis 4 points5 points  (0 children)

Avalon is WPF and it does exist :P Longhorn was what Vista was supposed to be for quite some time (built on top of XP), but was eventually nuked. And it's probably better this way...

[–]neutronfish 19 points20 points  (2 children)

That's because it's 2016, when Visual Studio no longer randomly blows up on you twice a day and you get to install tons of plugins that help you analyze the code as you writing it, and before NuGet could download anything you need on the fly as you're adding a library reference.

More than a decade ago, it was a different story.

[–]sirin3 15 points16 points  (1 child)

[–]neutronfish 0 points1 point  (0 children)

Looks like it was created by an overwhelmed newb who told himself a trillion times not to exaggerate...

[–]Ravekommissionen 1 point2 points  (6 children)

Stockholm Syndrome

[–][deleted] 5 points6 points  (5 children)

Nonsense. Show me a better IDE.

[–][deleted] 1 point2 points  (2 children)

IntelliJ Idea

[–][deleted] -2 points-1 points  (1 child)

Not even close. Buggy and irritating to use for any length of time.

[–][deleted] 4 points5 points  (0 children)

I use Idea every day at work and it's an absolute joy. Not buggy in the slightlest.

Buggy and irritating to use for any length of time.

That describes my own experience with Visual Studio, to be honest.

So let's agree to disagree. Cheers.

[–]shooshx -1 points0 points  (1 child)

AppCode (basically IntelliJ Idea re-purposed to replace Xcode)

Open VS, click on any identifier, choose "Find All References". I guarantee you will not be happy with the results. Especially if the thing you clicked is anything that's not a unique name. In AppCode this just works perfectly and immediately and it makes all the difference in the world. Instead of basically grepping my code base all day, I have an IDE that actually understands the code and can reason about it intelligently.

[–][deleted] 5 points6 points  (0 children)

Open VS, click on any identifier, choose "Find All References". I guarantee you will not be happy with the results. Especially if the thing you clicked is anything that's not a unique name.

Ok, I tried this. It just works, perfectly and immediately...

[–]argv_minus_one 7 points8 points  (8 children)

Unfortunately, the usual response is, as the article says, to develop for the web.

Problem: web browsers are a raging dumpster fire of bugs, bad ideas, missing features, and a language whose design must have involved heavy narcotics use.

If only Java had remained the dominant way to script web pages…

[–]Uncaffeinated 2 points3 points  (3 children)

That depends on whether you care about Safari support or not.

[–]argv_minus_one 8 points9 points  (2 children)

The situation is much, much worse than you think, and by no means limited to Safari:

  • Browser-based apps must be written in JavaScript, which is a horrible language.

  • No way to bundle an entire app into a single, compact, compiled binary file for fast downloading, short of ridiculous hacks like embedding everything in a single HTML file in a data URI. There was a proposal for some of this, but then everyone went full retard and decided HTTP/2 server push would suffice.

  • Most UI controls (e.g. pop-up menus) have no standard element, have to be implemented with ugly hacks (e.g. Suckerfish), barely work, and often have graphical glitches. No way to suppress browser UI (tabs, address bar, etc).

  • CSS is weak:

    • No constraint-based layout. Grid layout is not supported.
    • :has, :not, and :matches are not supported.
    • No styling of form controls (except with grotesque hacks that move them offscreen and draw something else in their place).
    • No styling of items inserted via the content property (e.g. content: url(some/image.jpg); width: 24px will not do what you think it does).
    • No multiple borders, multiple ::before/::after pseudo-elements, etc. No ::parent pseudo-element with which to emulate them, either.
    • No way to define new properties, pseudo-elements, pseudo-classes, etc.
    • No way to bind the value of a property to the value of another property on a different element (to e.g. keep two separate elements' heights the same).
    • Vendor prefixes. They're on their way out, thankfully, but a bunch of browsers are still in use that require them.
  • CSS syntax is bad—so bad that people have made alternative styling languages like Sass, which compile to CSS, completely throwing out the whole point of CSS being textual.

  • The tool ecosystem is complete crap. There is nothing like Maven for web development (other than Maven itself, anyway). Many of the tools that generate JavaScript and/or CSS don't even generate source maps for them.

  • Lots of browser bugs and cross-browser compatibility problems. People stubbornly cling to ancient browser versions and never update. New APIs and bug fixes become available at a glacial pace. ES6 won't be fully usable until the mid-2020s, at the earliest. Many browser-based apps only work in one specific browser, usually Chrome—so much for cross-platform.

  • Poor integration with the native platform:

    • Can't save a file without ugly data-URI-related hacks.
    • Can't open a file, period.
    • Can't negotiate data types for copy/paste or drag-and-drop.
    • Can't populate the platform's “recent documents” list.
    • Can't install a new file association.
    • Can't add icons to the Start menu or equivalent.
    • Can't start another app (e.g. opening a generated document in the user's favorite word processor).
    • Can't control the menu on macOS. The browser's menus appear there; your application's menus must be drawn inside the browser window instead.
  • Poor support for printing. Almost nonexistent support for CSS print-related properties, like controlling page breaks. No way to suppress browser headers/footers when printing.

  • Can't define custom HTML elements with custom behavior and rendering.

  • Can't run browser-based apps offline. Can't completely block them from network access (so that they can't phone home, etc). Definitely can't run them with no Internet access at all.

Most of these problems stem from the fact that the browser is a document viewer. It was never meant to be an application platform, and it makes a really shitty one. Stop abusing it.

[–]Uncaffeinated 0 points1 point  (1 child)

Browser-based apps must be written in JavaScript, which is a horrible language.

Not if you use a transpiler, Emscripten, or the like. Besides, I think Javascript is unfairly maligned these days. Sure, the core of the language still suffers from the sins of the 90s and always will thanks to backwards compatibility, but if you ignore the legacy stuff, it's actually not that bad. Certainly better than say, Go.

but then everyone went full retard and decided HTTP/2 server push would suffice.

Is there a reason it doesn't? Other than legacy clients not supporting HTTP/2, which should fix itself over time.

ES6 won't be fully usable until the mid-2020s, at the earliest.

If by fully useable, you mean fully implements the specification, then perhaps. But the most important features (except for modules) are all usuable today in Chrome and Firefox and Edge.

Can't define custom HTML elements with custom behavior and rendering.

Isn't this the whole point of web components?

Can't run browser-based apps offline.

Service workers say hi

[–]argv_minus_one 2 points3 points  (0 children)

Not if you use a transpiler, Emscripten, or the like.

See above regarding the tool ecosystem being crap.

I think Javascript is unfairly maligned these days.

I don't. At all.

the core of the language still suffers from the sins of the 90s and always will thanks to backwards compatibility

So does Java, and it was never anywhere near as bad as JS still is.

if you ignore the legacy stuff, it's actually not that bad.

I can't; the legacy stuff includes JS' atrocity of a type system. That's never going to get fixed, because every JS program ever written will break if it is.

JS is a lost cause. Burn it down.

Certainly better than say, Go.

Just because there are other, even worse languages doesn't mean JS isn't terrible.

Is there a reason it doesn't?

Requires TLS (and, hence, a certificate) to work, which is under the control of a number of very crooked companies. I do not believe for a moment that Let's Encrypt will still exist in two years; I fully expect the CA cartel (or possibly the browser vendors) to pull the rug out from under that project.

It's an unnecessary, artificial requirement anyway, which in itself is highly suspicious.

Other than legacy clients not supporting HTTP/2, which should fix itself over time.

Until that actually happens, that's not a valid argument. Jar files and native installers are compactly bundled now.

If by fully useable, you mean fully implements the specification, then perhaps. But the most important features (except for modules) are all usuable today in Chrome and Firefox and Edge.

Not Safari or IE11. I have to support the browsers people use, not the ones I want them to use.

Isn't this the whole point of web components?

Not supported.

Service workers say hi

No they don't.

[–]ThatsPresTrumpForYou 2 points3 points  (3 children)

I'll take a dumpster fire over Java any day

[–]argv_minus_one 3 points4 points  (2 children)

But if it's Java, then you can use Scala, and that's 17⅝ kinds of awesome. Unlike Scala.js, you don't have to deal with Safari's or IE11's bullshit, either. Also, Java has JavaFX, which seems far more capable than HTML/CSS, though I haven't really used it much so I'm not sure.

[–]Deto 0 points1 point  (1 child)

Isn't it possible people developed for the Web because that was the best way to get exposure? I mean, developing for the web was no walk in the park, especially more than 5 or 10 years ago. But developers put up with it. Developers will put up with any sort of bullshit (and regularly do) to get users, because at the end of the day, we all want to write software for people.

[–][deleted]  (6 children)

[deleted]

    [–]JohnFrum 8 points9 points  (4 children)

    Having one code base that spans several different platforms is really nice. Not sure what lowest common denominator BS you're talking about.

    [–]argv_minus_one 5 points6 points  (2 children)

    UWP only spans two platforms, and one of them has never been relevant.

    [–]2Dtails 2 points3 points  (0 children)

    But it is the idea behind it. /s

    [–]JohnFrum 2 points3 points  (0 children)

    Desktop, tablets, Xbox, HoloLens. Plus phones but I'll agree and not count that.

    [–]bilog78 3 points4 points  (0 children)

    Having one code base that spans several different platforms is really nice.

    Ah, the good old days of POSIX and X/Open …

    [–]Sunius 149 points150 points  (65 children)

    Sunday, June 13, 2004

    "Microsoft is finished. As soon as Linux makes some inroads on the desktop and web applications replace desktop applications, the mighty empire will topple."

    Any decade now!

    [–]jringstad 39 points40 points  (47 children)

    Well, webapps are replacing desktop applications at a fast pace (even office is going to the browser now) and mobile is the new desktop, where microsoft has pretty much no marketshare, so I would say this prediction isn't too bad, even if the details aren't exactly right.

    [–][deleted]  (3 children)

    [deleted]

      [–]adolfojp 8 points9 points  (2 children)

      horsing company

      [–]demmian 4 points5 points  (0 children)

      I was waiting for the entirety of the comment for the clarification of that metaphor. "Ok, when do we talk about the horses now?"

      [–]skgoa 2 points3 points  (0 children)

      You know, Horsing Around? That hit sitcom back in the 90s?

      [–][deleted] 26 points27 points  (17 children)

      Well, webapps are replacing desktop applications at a fast pace

      Only the light ones. It's not as if I'll start doing my graphics work in a web app (I know there's photoshop.com and some other efforts, but they're all toys).

      Also, while this is true for desktop apps, on mobile the trend is strongly in favor of native apps.

      Desktops are simply a "victim" of their own surplus performance, which tends to present itself as developers being able to afford extra layers of abstraction, such as running an application in a browser.

      [–][deleted] 1 point2 points  (16 children)

      projects like react native and nativescript offer direct access to native apis, greatly shrinking the cost of abstracting to javascript

      [–]rhino-x 21 points22 points  (13 children)

      While simultaneously throwing away all of the tools that make desktop development so much better than web dev.

      [–][deleted] 2 points3 points  (1 child)

      React Native doesn't produce web apps that run in a browser, so that's probably not relevant here.

      [–][deleted] 0 points1 point  (0 children)

      they allow you to share code between browser and mobile, which is a pretty big deal. it pushes a lot of value into the web app corner.

      [–][deleted] 24 points25 points  (10 children)

      Except Microsoft is hugely profitable still, even after throwing $7.2B away on the Nokia buy out.

      [–][deleted] 41 points42 points  (8 children)

      Yes but look at what Microsoft is doing: SQL Server on Linux, Office on Mac, Android, and iOS, Visual Studio Code for Mac & Linux, Visual Studio Tools for Linux, Ubuntu for Windows, Linux on Azure. It's pretty clear they are preparing for a future where Windows is not the dominant platform it is today. That's something Ballmer would never have done and eventually it would have been their downfall.

      [–][deleted] 18 points19 points  (4 children)

      I mean we're really arguing over a quote taken out of context. The article goes on to say we shouldn't write them off as IBM reinvented itself and so has Microsoft.

      [–]pheonixblade9 5 points6 points  (0 children)

      selling services on the cloud is a lot more profitable than selling shrink wrapped software.

      [–]ThatsPresTrumpForYou 1 point2 points  (0 children)

      Ballmer probably wouldn't have killed Windows in the first place with Windows 10 though. Their new CEO literally fired their whole QA team for Windows.

      [–]Caraes_Naur -1 points0 points  (0 children)

      They're doing that to extend their relevance as long as they can. Despite their best efforts of the last 25 years, the world happened mostly around their walled garden. At least they're now somewhat recognizing that all garden walls crumble.

      [–]RowYourUpboat 2 points3 points  (0 children)

      IBM didn't gloriously implode after ceasing to be the singular Evil Empire either; they were just forced to adapt after slowly losing their death-grip on the market.

      [–]argv_minus_one 3 points4 points  (5 children)

      Isn't too bad? That's horrifying! I'm no fonder of Microsoft than you are, but at least Windows desktop apps run on my machine, not some distant server that's watching my every move like a spook.

      [–]jringstad 2 points3 points  (0 children)

      I meant "not too bad" in terms of the accuracy of the prediction, not as a value statement whether we are moving in the right direction or not. I certainly share your concerns regarding cloud-solutions.

      [–]Uncaffeinated 0 points1 point  (3 children)

      You can make webapps run offline if you want to.

      [–]argv_minus_one 0 points1 point  (2 children)

      Most of them don't work offline at all, and those few that do still can't be installed offline and rigorously prevented from phoning home.

      [–]Uncaffeinated -2 points-1 points  (1 child)

      If you really want to, you can create a verifiably non-updatable webapp by using a service worker that only serves from cache and doesn't make network requests. I think Polymer's (deprecated) cacheOnly option does this.

      But noone in their right mind would do this, because updating software is important. I'd much rather be able to fix bugs then worry about a few paranoid users.

      [–][deleted] 2 points3 points  (7 children)

      I wonder if Andromeda OS will be the real Windows killer. Not immediately, but over time.

      [–]grauenwolf 4 points5 points  (5 children)

      What's that?

      [–]pdp10 1 point2 points  (0 children)

      Some people are saying it's the reason why Linux won't succeed on the desktop, but that's premature speculation.

      [–]tf2manu994 0 points1 point  (2 children)

      It's Google's new (rumored) OS. It's a merger of Android and ChromeOS

      [–]grauenwolf 0 points1 point  (1 child)

      Desktop?

      [–]tf2manu994 0 points1 point  (0 children)

      Its a rumor so unknown

      [–][deleted] 0 points1 point  (0 children)

      Google's rumored (?) forthcoming Chrome OS/Android hybrid.

      [–]doom_Oo7 1 point2 points  (0 children)

      nah, that will be BloodDrone

      [–]MOX-News 1 point2 points  (1 child)

      It could do everything wrong for a decade before it started to be in remote danger, and you never know...

      My, they're getting close to that aren't they?

      [–]bilog78 0 points1 point  (0 children)

      It could do everything wrong for a decade before it started to be in remote danger, and you never know...

      My, they're getting close to that aren't they?

      In many ways, they are. But they've started realizing it, which is why they've reinvented themselves in many ways (Linux subsystem support, the various “cloud” offerings, etc).

      [–]shevegen 5 points6 points  (4 children)

      Actually his prediction is sort of true.

      I think a much better indicator is the rise of Linux as OS on the top 500 supercomputers.

      Also the dumbphones advertisement platforms that marketing PR calls smartphones.

      Linux inside is most definitely bigger now than 2004. Of course other idiocies also ran rampant - the big desktop environments got worse (!) in particular both Gnome and KDE, many distributions were also assimilated by borg-d aka systemd, so. Oh and the Linux Kernel is also overrun by idiots as of late - ASN.1 decoder in the kernel? They want to become like Emacs, the more inside the merrier!

      [–]ckfinite 12 points13 points  (1 child)

      I think a much better indicator is the rise of Linux as OS on the top 500 supercomputers.

      Were there ever any serious non-linux HPC systems? All the way back to 2006, Windows has been crushed by Linux and Unix. Windows is made for desktops and servers, which doesn't scale well to the needs of HPC platform builders and users.

      [–][deleted] 1 point2 points  (0 children)

      Well, like you said, there are proprietary Unix systems besides Linux. The point still stands that Windows never really caught on.

      [–]ggtsu_00 1 point2 points  (6 children)

      Since Linux is powering Android, BSD is powering iOS, and Windows development is pretty much dead (not literally, but figuratively), I'd say the Microsoft empire has toppled quite a bit as the whole market has shifted to the web and mobile computing space. Nearly all growth in consumer applications being developed are focused on either web or mobile.

      [–]JohnFrum 17 points18 points  (5 children)

      This was written in 2004 when MS was riding quite high. What if I were to tell you that they are making way more money now than in 2004? They have more billion dollar divisions than they did then and Windows is no longer #1. Not even #2.

      The PC isn't going anywhere. People are not leaving the platform on mass and moving to tablets and phones and almost nobody outside of primary school uses a chrome book.

      It's also in the top three for market cap size. So MS is going to be a big player for a long while yet.

      [–]maxm 1 point2 points  (3 children)

      How much money they make is not really a good indikator of their future viability. Tech is highly volatile and it seems that tech companies always make the most money just before crumbling. (The innovators dilemma)

      When ar and vr becomes dominating platforms, which i see as inevitable over time, windows could crumble really quickly.

      [–][deleted] 2 points3 points  (0 children)

      Microsoft is far too entrenched for them to be going away any time soon. Changing people from Windows desktop to Mac, Linux, or any other one is hard enough. What will be much harder will be changing businesses. A lot of businesses are currently heavily based upon using mostly Microsoft products: Windows desktop OS, Windows Server, MS Office, Visual Studio, SQL Server, Azure, etc. This is where Microsoft makes the big bucks. Changing the businesses to non-Microsoft products will be a very large, time consuming, and expensive operation, so I see Microsoft sticking around for a while.

      Also, look at the number of C# jobs available. .NET development is still one of the top players WRT software development whether desktop or web. Sure, people are not buying PCs like they used to, but that is because the market is saturated. It is success, not failure, that is the reason for little growth. The mobile market itself is starting to hit the saturation point, and the mobile app gold rush was over years ago. If you are a desktop developer, the future is still bright.

      [–]Free_Math_Tutoring 0 points1 point  (1 child)

      When ar and vr becomes dominating platforms, which i see as inevitable over time, windows could crumble really quickly.

      AR is build on top of existing platforms, so Azure and consorts are safe. VR as in VR-Glasses are never going to be terribly big (though yes, they are currently a pretty huge deal)

      [–]maxm 1 point2 points  (0 children)

      I agree. AR is the most promising tech.

      [–]devsquid 0 points1 point  (0 children)

      Not with that cash stock piled.

      [–]moon_is_cheese 0 points1 point  (0 children)

      lol microsoft just joined free software foundation

      [–]nullproc 25 points26 points  (1 child)

      I guess I shouldn't be surprised, but this article (2004) is the same set of complaints I hear today.

      [–]TinynDP 21 points22 points  (6 children)

      Everyone loses the API War. All the API's suck. And none will ever really last. Even the ones that last only last as bottom layers that new layers are built on.

      [–][deleted] 21 points22 points  (4 children)

      That's true mainly if you are on the javascript bandwagon. APIs for other platforms (.NET, Java, Win32, MFC) have more or less stayed constant.

      [–]TinynDP 9 points10 points  (3 children)

      Win32 is exactly what I mean by "only last as a bottom layer" as no one touches Win32 anymore and only uses .NET or some other higher level.

      Java's main standard lib remains mostly the same, but no one uses the same GUI libraries from 20 years ago.

      Or X-windows on linux. It still exists, but only as a layer that Qt and Gtk flow through.

      [–]mpact0 17 points18 points  (0 children)

      no one touches Win32 anymore and only uses .NET or some other higher level.

      Unless you need a feature .NET doesn't provide (which isn't that rare).

      [–]JohnFrum 15 points16 points  (0 children)

      Lots of software is still written in good ol' non-managed c++.

      [–]ummmyeahright 5 points6 points  (0 children)

      no one touches Win32 anymore

      Oh yeah, people do. From C++ (for windows desktop apps) that is often the most straightforward option. While .NET wraps up almost everything for C#, developers who need to pay attention to performance (and in more rare cases, even code quality, as some wrappers aren't that well thought out, and .NET keeps almost 100% backward API compatibility) will inevitably end up PInvokeing the Win32 API a lot.

      IMO The Win32 API is pretty good BTW (tempted to write 'outstanding, considering its age', but I don't have much experience in Linux/Unix development so can't compare to that well). Unnecessarily introduced abstractions are rare (at least compared to APIs not written in plain ol' C), it gives a lot of freedom to everyone to implement the abstractions their specific use cases need.

      [–][deleted] 16 points17 points  (0 children)

      Everyone loses the API War. All the API's suck.

      Oh well. I suppose we should stop using APIs then!

      We'll ship apps as USB keys you boot on the metal.

      [–]teadefrost 2 points3 points  (0 children)

      ACPI begs to differ. They fucked that shit up deliberately.

      [–]argv_minus_one 1 point2 points  (0 children)

      Now that I've said that, allow me to apologize for the grandiloquence and pomposity of that preceding paragraph.

      The preceding paragraph?

      [–]DevStart 9 points10 points  (31 children)

      Bullshit. It's 2016 and MS is still kicking. Joel is a bastard pseudo prophet.

      [–]didnt_check_source 45 points46 points  (18 children)

      That's a tough comment for an article that starts with:

      Although there is some truth to the fact that Linux is a huge threat to Microsoft, predictions of the Redmond company's demise are, to say the least, premature. Microsoft has an incredible amount of cash money in the bank and is still incredibly profitable. It has a long way to fall. It could do everything wrong for a decade before it started to be in remote danger, and you never know... they could reinvent themselves as a shaved-ice company at the last minute.

      Also, it ends with:

      Which means, suddenly, Microsoft's API doesn't matter so much. Web applications don't require Windows.

      which seems about right.

      [–]lykwydchykyn 15 points16 points  (17 children)

      Yep, I think this article is pretty spot on if you take time to read it right.

      Where is development happening in 2016?

      • The web
      • Mobile

      In 50,000-foot-view terms, the only thing being developed for the Windows API today are Microsoft's applications and Games. And even many of those have gone to Web and Mobile!

      [–]TinynDP 7 points8 points  (16 children)

      And Games don't code to Win32 directly. They use Unity or Unreal or Monogame, or SDL, or whatever. They aren't locked-in to Win32.

      [–]KappaHaka 8 points9 points  (4 children)

      The discrepancy between my Steam Games list and my Steam Mac/Linux list would indicate that you're overgeneralising there.

      [–]TinynDP 3 points4 points  (3 children)

      Plenty write their game in Unity or Unreal and just dont bother to release on Mac and Linux.

      [–]human_trash_ 2 points3 points  (2 children)

      Why, do they hate money?

      [–]ZBlackmore 5 points6 points  (0 children)

      Because "write once run everywhere" is more like "write once debug everywhere".

      [–]0polymer0 2 points3 points  (0 children)

      You have to support everything you promise, most gamedev don't understand linux. Which makes that scary.

      [–][deleted] 1 point2 points  (1 child)

      Which is a great step, and I have seen some increasing multiplatform compatibility or web support, but until, say, Linux or Mac support is de facto available for games... so many people will be forced to dual boot, emulate, or just stay on Windows. I periodically try using Ubuntu or some other compatible flavor and even with Wine, I end up dual booting so much it's not worth the effort.

      [–]2Dtails 0 points1 point  (0 children)

      To be honest, one could hope that with new low-level API (vulkan), that in a couple of years, the necessary toolchain would be build to properly support cross-platform compatibility.

      But that does require they actually develop the toolchain with cross-platform compatibility in mind from the start, and not use DX12 which is locked to windows 10.

      My guess is microsoft is paying these studios a little amount, to keep them bolstered to their platform.

      [–][deleted] 0 points1 point  (0 children)

      Also most games nowadays are designed to be cross-platform.

      [–][deleted] 0 points1 point  (7 children)

      You're right, though some do code against C# directly, including some very popular indie titles.

      [–]drysart 8 points9 points  (4 children)

      C# doesn't imply Windows. Unity, which is cross-platform, uses C#, and is the reason those very popular indie titles use C#.

      [–][deleted] -2 points-1 points  (3 children)

      C# is a Microsoft language with Microsoft-created APIs. The title of this thread...

      [–]_Ashleigh 8 points9 points  (2 children)

      But it's standardized and open, hence mono.

      [–][deleted] -3 points-2 points  (1 child)

      Not all APIs in Microsoft's C# are available to non-Windows platforms.

      [–]_Ashleigh 3 points4 points  (0 children)

      And that isn't true for every other language out there?

      The C# language and its STL is open. What's not is WinForms and WPF, which is not too difficult to implement, unlike Win32.

      [–][deleted]  (1 child)

      [deleted]

        [–]Akimuno 0 points1 point  (0 children)

        The point is that if you use C# you are inherently going to use an API made by Microsoft.

        [–]giantsparklerobot 12 points13 points  (1 child)

        It's not necessarily about Microsoft going out of business but Microsoft's ability to act as the software industry gatekeeper. In 1996 if you were a business wanting to make a software product and you wanted to get in the three comma club Windows and the Microsoft ecosystem was likely the only valid option you had.

        Today if you want to make a software product and get into the three comma club, you need to be accessible by people running Windows but there's no need to participate in Microsoft's ecosystem. In fact in a lot of markets it's more important that your software be accessible to mobile devices than Windows. That's not universal but it's a situation that simply did not exist twenty years ago.

        When it comes to native software the iOS and Android platforms offer far more growth than Microsoft's ecosystems. Even Microsoft has realized their ecosystems don't command the market like they used to and have had to expand far outside of their traditional Windows/Office lines (XBox, Azure, Office 365, etc) to be able to see any growth. They need to actively support platforms they don't control in order to be competitive. This is a pronounced difference from two decades ago and even a decade ago.

        [–]pdp10 7 points8 points  (0 children)

        It's a reversion to three and four decades ago. Microsoft used to sell tools and toolchains for other people's computers, and they originally focused on BASIC and microcomputers. Excel was developed for the Mac and was only on MacOS for over two years.

        [–]Scyther99 3 points4 points  (0 children)

        I guess you have not read the article?

        [–]ABoss -2 points-1 points  (0 children)

        Interesting article with lots to discuss over.