A few good reasons why OpenGL is not dead

There has been a lot of noise on various news sites and forums concerning OpenGL 3 and how the GL Working Group has killed OpenGL. I consider most of that noise just that, noise. The dissatisfaction of API fanboys that has little to do with the reality of hardware and software vendors.

With that being said, here’s a a list of reasons why OpenGL is not dead:

  • Apple
  • Linux
  • Samsung
  • Autodesk
  • Google
  • Blizzard
  • id
  • NVIDIA
  • AMD
  • Intel
  • Matrox
  • Sony

You get the idea. Microsoft Windows is not the only operating system that needs a 3D graphics API. Are companies like Apple and those that have financial and strategic interests in Linux, or mobile handset manufacturers, really going to say “Oh snap, the fanboys have declared OpenGL dead, so huh… we’re not going to offer 3D hardware acceleration on our platform anymore. Sorry.”?

As for the reason I included Blizzard, id, NVIDIA, AMD and Intel in that list, it should be obvious: they contributed and are contributing massively to the development of OpenGL. Why in the world any company would spend significant man-hours (and hence dollars) on something it plans on killing? Projects do get killed, sure, but I doubt anyone has ever started a project with the intention of killing it from the start.

So to all the of API fanboys out there: beware the CAD monster. As for me, I will be discussing the new specifications over the course of the upcoming days, and am looking forward to OpenGL 3 drivers from the various hardware and software vendors in the industry.

Addendum: please see the comments for a clarification of what I mean by API fanboy. There are some very smart people who have criticized constructively the new specification, but those people have not made emotionally-charged and irrational comments such as “OpenGL is dead”. I am sorry if I offended anyone by not being clear enough the first time.

Tags: ,

  1. Mark’s avatar

    Don’t be an asshole by calling everybody a “fanboy”

  2. Jean-François Roy’s avatar

    Mark: I did not, I specifically referred to “API fanboys”, meaning people who care more about the 3D API they are using than about their own project, or overly emphasize the 3D API, or use the 3D API as an excuse.

    There are people with legitimate criticism which have expressed themselves as well, and those people have not issued overly broad statements such as “OpenGL is dead”.

  3. grumpy’s avatar

    When is an API “dead” anyway? It’s a bit of a silly term. Even if Khronos decided to throw OpenGL in the garbage bin tomorrow, OpenGL would not be “dead”. It’d still be supported in drivers, because the drivers have to be able to run existing OpenGL applications, and as long as it is supported in drivers, there’s nothing to stop developers from writing OpenGL applications.

    However, I think you’re going a bit too far.
    It doesn’t make sense to call an API dead in the first place, but many people who have done so have simply observed that OpenGL is never used by choice. You’re correct, Microsoft Windows is not the only operating system around, but it *is* the only one where a choice exists.

    The fact that people use OpenGL on Linux doesn’t mean OpenGL is in good shape. It just means that so far, these people haven’t been given a choice.

    I think it’s very significant that OpenGL is all but “dead” on Windows. I think that shows very clearly that the only thing keeping OpenGL “alive” is the absence of alternatives. If I want to write 3d-accelerated software to run on a Mac or Linux system, I *have* to use OpenGL. I may not enjoy it, I may not be satisfied with the tools supporting it, I may wish I had an alternative, but as long as none exists, I’m forced to use OpenGL.
    But as soon as developers have an alternative (as soon as they’re developing Windows-only software, or working on games consoles where other proprietary API’s are available), OpenGL starts looking pretty lifeless.
    What would happen if an alternative was created that worked on other operating systems than Windows? How many new OpenGL projects would be started?

    And that is why so many people are unhappy with the 3.0 specs. Because it is unlikely to change this state of affairs. What you call “API fanboys” are actually rooting for OpenGL, and expressing their disappointment that GL3.0 failed to make it competitive in the markets where it doesn’t have a monopoly, where alternatives exist. These are people who *hoped* that OpenGL would become worth using, even when you’re given a choice.

    If an API is never used by choice, if it is abandoned wherever possible, can it be considered to be healthy? It may not be dead either, but for some definitions of dead, it certainly looks like it’s dying.

    I think it’s a shame that what’s left of the OpenGL community would rather throw around empty phrases like “API fanboys” than face up to this serious problem.

    Most of the people who criticise the 3.0 spec are disappointed because unlike the ARB, they’ve noticed that as it stands now, OpenGL is not a competitive option. It’s something you may occasionally have to use, if you’re targeting specific markets, or are maintaining a legacy applications. It’s never something you *choose* to use. And it should be. Perhaps Longs Peak could have made it that, perhaps not. Perhaps 3.1 will achieve it, but I doubt it. But if it doesn’t happen, then *sooner or later*, OpenGL will be dead, no matter how you define the term.
    OpenGL needs to be able to hold its ground, even when alternatives exist. Otherwise, it’s only a matter of time before it’s dead.

  4. Jean-François Roy’s avatar

    grumpy:

    Thank you for your thoughtful reaction. I’ll try to match it as best I can.

    First, on the “API fanboys” controversial topic, I really do think a lot of the negative comments came from them. In general, people who are seriously using OpenGL are fairly happy with the 3.0 specification. Businesses and individuals with shipping products that depend on OpenGL for a part or all of their revenues have not went to the proverbial barricades in any forum or news organization, quite the contrary.

    It therefore seems to me that a lot of the outcry on lack of certain things, for example a new object model, is largely based in wanting bragging rights over Direct3D, with no actual need for such a thing. In other words, it’s purely a marketing issue rather than a functional or performance issue.

    There are legitimate concerns over missing functionality or missed performance opportunities, like uniform buffer objects, but for the most part, the Khronos WG has indicated they will be addressing them.

    Which brings me to your conclusion that OpenGL is not competitive. How are we to define, and therefore judge, competitiveness? If we take a pragmatic approach where we look at the functionality and performance of the API, then OpenGL 3.0 is extremely competitive. With a few select extensions, such as ARB_geometry_shader4, OpenGL 3.0 exposes almost everything defined by DirectX 10 that is actual used in the industry. And with the upcoming integration with OpenCL, OpenGL will indeed be ahead of DirectX 11’s compute shaders.

    If we define competitiveness as the ratio of applications using OpenGL versus all applications released, well we have to look at the platform. On Windows, OpenGL is not competitive, on other platforms it represents the only option. Focusing on Windows, I posit the reason Direct3D dominates is simply because it is a better, more integrated solution for game development, and that most applications on Windows that make use of hardware acceleration are games. In addition, being able to use DirectX on XBOX 360 and Windows is another reason to choose it over OpenGL.

    Finally, if we define competitiveness on perception, that is marketing, then clearly OpenGL is not competitive. This is a very similar situation to that of databases, where Oracle is perceived as the only viable solution, whereas in reality MySQL, PostgreSQL and Microsoft SQL are often times quite viable.

    I argue that all of the above definitions except the pragmatic approach are worthless. Your concern, as an application developer, should be entirely on shipping your application as fast as possible, for the lowest cost as possible, with the highest quality and performance as possible, and with the functionality required or desired by your clients. By the pragmatic definition, OpenGL is quite capable of letting you accomplish this.

    If you have specific examples of problems in OpenGL that prevent you from shipping, or that makes programming less efficient than if you were using Direct3D, I’d be very curious and interest to hear them.