Metal for IntelliJ Platform
blog.jetbrains.com
blog.jetbrains.com
- Apple ID
- Apple Online Store
- App Store
- Bug Reporter/Radar
- iCloud Apps e.g. Mail.
- iTunes Connect
- iTunes Store
- WWDC
Pretty much all of the internal apps will be in Java unless they are using off the shelf software e.g. discussions. In addition you would have all of the companies they acquired and whatever tech stacks they use e.g. Siri.
I have no idea where the idea of Java 6 being in use comes from.
Possibly from confusion with the last time Apple actually shipped a JDK/runtime to the public. They used to produce their own optimized distribution, which had better Cocoa widgets among other things. It was part of the original big push to get decs on OSX, it’s mentioned in Jobs’s keynotes etc. They later deprecated it once they reached critical mass, and discontinued it; if i remember correctly, the last jdk they shipped was a v6.
i.e. it's probably more about fostering great UIs for the end customers rather than curbing Java altogether as a platform.
Somewhere along the way, this part of Apple culture got lost. I think Apple's commercial success is part of the reason. The traditional Mac user base got diluted by lots of newcomers who didn't have the same high expectations and requirements for good and consistent user interfaces. The traditional Mac developers got diluted by programmers from other platforms, who – although not being technically inferior in any way – did not have the same passion or understanding of Apple's UI philosophy, often not even bothering to study the Human Interface Guidelines.
Funny thing is that those are both products that many are reaching for alternatives to whenever viable. As powerful as they may be as tools, there's quite a lot that's throughly mediocre or even bad about them.
There are examples of truly great apps that use their own look and feel, but I don't think either of those are among them.
They don’t want to be running around making Swing and SWT and Qt and Gtk work well on macOS. They offer their own and you can take it or leave it. I guess this lets them simplify and focus. It obviously works for them.
So it's more a case of they built the API for themselves first and then made it available for developers.
They also have power consumption and mobile performance as being their highest priorities which may not align with Vulkans.
This isn't really something that helps or hinders locking consumers into their ecosystem.
It is not in any ways better than Metal. And when you design your own Hardware, it makes much sense to own your API design for maximum performance.
What other platforms? The only ones I see adopting Vulkan are Desktop Linux and some newer Androids. The first effectively doesn't even matter.
The games consoles don’t use Vulkan either. It’s a niche API.
https://github.com/KhronosGroup/MoltenVK
Battery life might be a good reason
And it's hard to imagine Java2D would have more complex requirements for Metal than the games that are already using MoltenVK.
Of course, they could go full dx12 on Windows, Vulcan on Linux and Metal on Mac, but precisely because their needs are not that demanding in the graphics department, I imagine the incentive is to keep it simple
And if their Mac client base is not big, it should make even more sense to experiment with MoltenVK (lower risk).
Anyway, they probably have good reasons for that choice. Just wondering what those are. Perhaps Oracle is not big on relying on community projects like MoltenVK?
I would have expected a performance increase to be honest
Or maybe they push the limits of POSSIBLE perf because of the JVM, i guess that's why performance gain can't be perceived, no matter what, the JIT and GC has to constantly work..
- write garbage-free code (reuse objects and byte buffers, allocate memory off the Java heap and store the pointers in `long`s)
- use a GC that doesn't pause and carefully profile the app to ensure the GC can keep up with the rate of memory allocation
- turn off the GC and cross fringers if the app crashing is considered better than not responding
It's just difficult because most software is written using software patterns that require a GC, which is perfectly fine for many domains.
I tried this Metal build and it doesn't make it any faster. Pretty sure it's all of the background indexing and compilation it is doing because there is no app that can push all of my cores to 5GHz like IntelliJ can.
It would be nice if they could start working on supporting Wayland and in turn HiDPI on modern desktops.
"Please don't cancel the project! You'll own it all anyway!"
*Lanai is the Hawaiian island that Larry Ellison owns