5 ms·
They definitely have opened some things up, like a full C++ interface to Metal. I think the idea with this current effort is kind of the opposite though - not t
by stephen_g 3y ago
They definitely have opened some things up, like a full C++ interface to Metal. I think the idea with this current effort is kind of the opposite though - not to encourage more use of C++, but to start writing new features of C++ projects in Swift (the presenter at the C++ Now 2023 talk [1] goes into this). I expect WebKit is a big target for them, I think they eventually want to replace all their C++ with Swift gradually (instead of trying to do ground-up rewrites, where you dedicate a team to doing that for years and you have a replacement at the end with fewer features than the old project).
1. https://www.youtube.com/watch?v=lgivCGdmFrw https://www.youtube.com/watch?v=lgivCGdmFrw
- pjmlp 3y agoDue to game industry pressure, although the Metal C++ bindings are a subset of Objective-C implementation. If you're want to have access to everything, Objective-C++ is easier. Where C++ reigns in Metal is being the shading language.
- londons_explore 3y agoI'm surprised they don't try to just push Metal/objective-c/Swift and other Apple tech onto windows and linux and make them the new de facto standard.
- astrange 3y agoSwift does run on other platforms. Though I don't know how it does on Windows. Metal on Windows would not help much because the GPU hardware is what's different.
- londons_explore 3y ago> Metal on Windows would not help much because the GPU hardware is what's different. A metal compatibility layer would encourage developers to start using it for games etc. Doesn't really matter if it performs a little worse - it just has to work.
- pjmlp 3y agoThey already use it, most middleware engines have Metal support.
- curling_grad 3y ago> Metal on Windows would not help much because the GPU hardware is what's different. Apple shipped Intel Macs with Intel/AMD GPUs until quite recently, so hardware might not matter significantly.
- FpUser 3y agoSure. And the rest of software developer's world is waiting in trepidation for Apple to tell them how to do things.
- pjmlp 3y agoWhy should they bother? Even Microsoft efforts with .NET are half hearted, with the goal to sell Azure, Windows and Visual Studio licences. Using .NET outside Windows means leaving behind several frameworks that will never be ported, a VSCode subpar experience vs VS (unless you buy Rider instead), relying on the community for GUI frameworks,...
- jayd16 3y ago>Why should they bother? So they get better libraries (from more dev usage) and more native software on macos. The knock against .NET is strange. Does Google need to make a cross platform GUI framework in Go for Go to not be half-hearted?
- pjmlp 3y agoThe knock isn't against .NET team. Go did not start as a Linux only product for 15 years, and then only got ported half the ecosystem to other platforms, while keeping the key IDE, the one with experience to rule them all, Linux only. Rather Microsoft's upper management, see the hot code reload attempt removal from dotnet watch, the new .NET plugins for VSCode with the same VS license, or the recent killing of VS4Mac. Microsoft's management is also on the record in a couple of places, that VS Code will never have feature parity with VS, or that the best dev experience is VS/Windows.
- klodolph 3y agoMy impression is that Metal was a massive that succeeded because it was limited in scope to Apple platforms. It then put a bunch of pressure on Kronos to push out Vulkan. Prior to Metal, we thought that the future of OpenGL was newer versions of OpenGL. I get a headache even thinking about projects that affect, like, three different teams within my own company. I can’t imagine the kind of migraine I’d get from trying to push a completely new standard out to multiple CPU architectures, operating systems, and GPU vendors across multiple companies.
- jorvi 3y agoMetal is younger than Mantle. Vulkan is based on Mantle. If anything, Mantle inspired Apple.
- pjmlp 3y agoVulkan only exists because AMD was nice and gave it to Khronos. As Long Peaks experience has shown, had not been for AMD, and Khronos would still be wondering how OpenGL vNext was supposed to look like. This is why Apple has issues with Khronos, they didn't like what happened to OpenCL after giving it to Khronos.
- klodolph 3y agoYes, Mantle is older. But after Mantle came out, my impression is that the OpenGL committee intended to deliver a new version of OpenGL, rather than rewrite it. I think of the timeline like this: Mantle comes out and it shows that you can deliver performance improvements with a new API that more closely reflects the hardware. Microsoft goes off and starts working on DirectX 12, to bring those benefits to DirectX. OpenGL starts working on a new version of OpenGL, to bring those benefits to OpenGL, but the progress is somewhat slower. Apple works on Metal internally, so it doesn’t have to wait for a new OpenGL and doesn’t have to deal with committees. Khronos sees that they’re being left behind, and kicks off OpenGL Next. Rough timeline: 2013: AMD makes Mantle (no GA). 2014: OpenGL AZDO talks. Apple delivers Metal 1.0. Khronos kicks off the Vulkan project, then named OpenGL Next. 2015: OpenGL Next renamed as Vulkan. Microsoft delivers DirectX 12. 2016: Vulkan 1.0.
- nxobject 3y agoAs an aside, I do find it funny to think about presenting “successor languages” in a con that’s meant to showcase the vitality of the current languages. Call it CppNotForever, maybe.
- tialaramex 3y agoUltimately all of these conferences are for people. Languages don't attend conferences. If the audience at Goose Con thinks your talk about Hedgehogs is great, that's not the wrong talk for Goose Con. Maybe it means "Wildlife Con" is a better name, but, maybe that talk, on that subject, at that time, was perfect and there's no wider lesson.