You don’t need to be an Apple evangelists / fanboy/ loonatic/ moron to acknowledge the elephant in the room
OpenGL is a piece of crap
Now that statement above may seem like a clickbait or flamewar material , unfortunately the evidence is overwhelming in support of the above statement
Let’s start examining this evidence , here is a “small” tutorial of making a triangle on OpenGL 3.3, the version is no accidental, its probably the most popular OpenGL version and the one that is the minimum supported for Blender 2.8
Evidence:
(1) The Elephant room . Its the WTF element. I once read a post by a developer that said that you can judge the quality of the design of an API or software by the amount of WTF moments per hour while reading its documentation or using it. OpenGL 3 explodes the WTF/h meter like no tommorow. Absolutely nothing about this makes any logicial sense.
(2) OpenGL does not use OOP , the reason for this is that it still wants to be a C library. Problems is as much as dear Linus may think C++ is a crappy language , and I completely I agree with him, when it comes to graphics of any sort OOP is the way to go and the graphics field is dominated by C++. Blender code may originated as a pure C project but even Blender has turned to C++ more and more , with C++ making around 1/3rd of its code base. As a matter of fact going back down the C route force you to do what Blender has done, reinvent OOP , problem is that like Blender , OpenGL does that in not such a nice way and hence this huge pile of mess. I completely agree that a fixed line pipeline is an even worse idea but this mess does not make it any less… a mess. Sure C is still a very popular language, but computer graphics is not the reason.
(3) Documentation. We are in 2018 and its still extremely hard to find up to date documentation for new OpenGL, its as if people have stopped using it. A walk in the forums which are not many and can be counted in the fingers of one hand tells a similar story. So you end up with a crappy designed API that becomes even harder to understand because of how hard it is to find proper documentation. No Kronos official ref docs wont cut it even if they were much better written
(4) Of course the above is just the warm up , the truth is far bitter for dear OpenGL with the tiny fact that there are not that many using it because of the tiny fact how extremely popular Unreal and Unity have become as well as the army of other open source graphic and game engine libraries. Now you may fall into the trap of assumption that because those engines rely on OpenGL they happen to be more higher level than it or more focused on game development that generic graphics. Unreal in particular is far more than that , with active support for Metal and Vulkan but also support for a ton of other APIs that go far lower level than OpenGL and those APIs are not even graphic centered. For crying out loud Blueprints, a node based visual language that Unreal users who “do not want to code” use have access to those APIs as well.
(5) the quick embrace of Metal. iOS and Mac devs have jumped on it on heartbeat and you may assume that is because its the new shiny thins and we all love new shiny things. And while that may be partly true Swift the new official language of Apple have not enjoyed a similar fate which also happens to be open source. Objective C is still very , very popular, probably more popular than Swift, although even if that is the case obviously Swift is the future.
It’s not that Apple does not care about OpenGL anymore, its the fact that developer’s dont care about it.
Period.
There is still some that use it , because it offers a more lightweight solution that having to rely on a graphic engine that can add a lot of baggage and make compilation more complex. But lets be realistic, game and graphic engines are all the rage for over a decade now.
Now if I am dead wrong , what better way for life to prove me wrong other than reimplementation of OpenGL on top of Vulkan. It’s not even hard to do if OpenGL is so popular as some assume it is. Unfortunately the story is about it is even worst than Twilight
But it is not and the fact that OpenGL has been abandoned by Apple for years now and we still have to see a small team of open source developers step in like valiant knights of the round table jump in using Vulkan to make an implementation for the Apple platforms , speaks volumes about the reputation of OpenGL.
On the other hand Unreal is not only more cross platform than OpenGL ever was, it does not only go far more low level than OpenGL ever went, it’s also far more actively developed and unlike OpenGL it may not have “Open” in its name but is truly open with a vast community of developers contributing to its code base that would put even Blender community to shame. If you think Blender is moving fast forward, Unreal will blow your skull off.
The only reason why OpenGL remained relevant until today is because of Apple, it was because Apple was stupid enough to underestimate the power of games. When iOS came out , it exploded the popularity of OpenGL because it used OpenGL ES ( a mobile version of OpenGL made to consume less battery power and be more low spec friendly) and then Apple found the hard way, especially Steve Jobs rumoured to not be a fan of games, that people did not want to use smartphones for “serious stuff” and instead wanted to play candy crash saga and with the rise of Unity sortly followed by the rise of Unreal its became clear the OpenGL could not cut the cake and of course they booted , by Apple first leaving the Kronos board , the team of companies behind OpenGL , later one by dropping supporting for it after version 4 and finally deciding to do the inevitable thing of completely removing it.
It was not a murder, it was a mercy killing at worse.
Of course its easy to claim that Apple is the reincarnation of Satan , a company so obsessed with closing its systems in the name of greed.
The truth is always far from the stereotype. Not only Apple was the driving force and the main supporter of OpenGL and the main reason behind its one upon a time enormous popularity. Mainly because of the massive success of iPhone.
Apple has been an active supported of open source technology for decades now.
We should not forget the mayhem of vitriolic posts Apple caused when it announced kicking Flash out of iOS.
A “clear evidence” of a company closing its platform, even though the more clear evidence that Apple embraced and supported HTML5 as a replacement for Flash , a true open source alternative , an insanity that many question but much more embraced. They even allowed user to save web pages as “native apps” on the iOS , for easy access. But hey who cares, obviously they want to destroy the open source world, that’s more fun theory to believe anyway.
Nowdays none gives a damn about Flash , especially a year after when Android smelled the roses and kicked Flash out too. Ironically with even Adobe the creator of Flash acknowledging its crappiness and recommending people to use HTML5/JS instead.
Ignoring the evidence that MacOS has been shipping with a ton of open source technologies, offering native support for them and even creating some like WebKit , that played a crucial role into modern development. Very recently they offered native support for Gitlab, a true open source alternative to Github and the right time when Microsoft gets its ugly fingers on it. They also supported X11 for years, to make it easy for linux apps to port to MacOS even though Linux is an extremely unpopular OS , with only 1/10th of the popularity of MacOS and of course MacOS shares a similar fate against Windows.
I don’t have an issue of being called an Apple fanboy by fanatic haters fulled by their own massive ignorance and I never had an issue of heavily criticising Apple for its many mistake and stupid decision.
But Apple always put design first and they have earned my respect by kicking out Flash , now they enhancing it with kicking out OpenGL.
I laugh when people self proclaimed the doom and gloom of Apple back then, I laugh when people fall into the same trap once again. Ignorance can be very entertaining.
Yes Apple is evil greed, I have news flash for you. All companies are.
All companies do it for the money.
But to make money you have to make customers happy, you make customers happy you have to offer high quality or low price or something in between. People dont buy crap because of idiotic advertisment that promises magic and the holy grail. They do it because they actually enjoy using the product.
I know may of you want to believe that marketing is all , and cosumer and mere morons, especially the ones buying Apple products. But an army of flopped insanely highly budget Hollywood films or software and hardware companies that used to be giants tells a very similar story. Ironically even Apple almost suffered the same fate at some point , it was so bad that they were forced to fire Steve Jobs.
You cannot polish a turd. As much money you throw on it. You need quality, you need something that people enjoy using.
To do that you have to put the effort and sacrifice what does not work. You have to invest on research , do your homework and when necessary embrace what the majority shows the middle finger and show the finger to what the majority embraces. Then let your competition and haters believe that none will bother buying an overpriced product that they actually enjoying using without killing their inner child. Take a busload of popcorn sit back and enjoy the spectacular gory show of hater heads explode in frustration and retreating back to the shadows they came from. make billions and create more haters. Rinse and repeat.
That has been the recipe of success for Apple , not marketing and on that recipe alone, OpenGL has to go, yesterday.
Apple is evil , Apple is closed , but in the end , as many other things in life, its a lot more complex than that.
Goodbye OpenGL and never come back and thank you Apple
Your sincerely
A not so fanatic fan
PS: keep the hate coming, its entertaining even though I am running out of pop corn
PS2: I am going to blown your minds by stating the obvious, iOS is a MacOS fork. It’s basically MacOS modified to run on top of iOS devices. You think I am an idiot that lost my mind, that’s ok, go watch the introduction of iPhone by Steve Jobs , he is an idiot that lost his mind too. But what he knows, he was only the leader of Apple and the driving force behind its massive success. No iOS cannot replace MacOS, anymore than MacOS can replace… well… MacOS